Mixpanel Community Icon

Understanding First Seen Property in Multi-Device User Access

·
·

If a user (User 1) accesses the service for the first time using Device A, later accesses the service again using Device B, and eventually signs up using Device A, how is the "First Seen" property determined for this user? Is it based on Device A's initial access or Device B's access?

  • Avatar of kapa.ai
    kapa.ai
    APP
    ·
    ·

    Hi Alex, Please stand by as I search the Mixpanel knowledge base for an AI-powered answer. I normally take about 15 seconds or so. In case AI cannot answer your question, feel free to reach out to Mixpanel support at mixpanel.com/get-support. If you have follow-up questions for this thread, please tag me again with your question: @kapa.ai <follow-up question> đź‘‹

    Feel free to ask a follow-up question once I've answered by mentioning me with @kapa.ai

  • Avatar of kapa.ai
    kapa.ai
    APP
    ·
    ·

    To answer this question accurately, we need to understand how Mixpanel handles user identification across multiple devices and sessions. Based on the provided knowledge sources, I can offer the following explanation:The "First Seen" property for User 1 would be determined based on Device A's initial access, not Device B's access. This is because Mixpanel's ID Merge system is designed to stitch together user behavior across different devices and sessions.According to the Identifying Users (Simplified) documentation:1. When User 1 first accesses the service on Device A, Mixpanel's SDK will generate a $device_id for that device. This becomes the anonymous identifier for the user on that device.2. When User 1 later accesses the service on Device B, a new $device_id will be generated for that device.3. When User 1 eventually signs up using Device A, the .identify() method should be called with the user's known identifier. This creates an identity cluster that links the $device_id from Device A with the new $user_id.The key point is that when the user signs up, Mixpanel can retroactively associate the earlier anonymous events from Device A with the newly identified user. This is explained in the documentation:"Mixpanel will retroactively set the $user_id on any prior events with the user's $device_id so that both event streams are joined."While the documentation doesn't explicitly mention a "First Seen" property, it's logical to conclude that this property would be based on the earliest event associated with the user, which in this case would be the initial access on Device A.It's worth noting that the events from Device B would not automatically be associated with User 1 until they log in on that device as well. Once they do, those events would also be merged into the user's profile, but they wouldn't affect the "First Seen" property if they occurred after the initial Device A access.For a more detailed understanding of how Mixpanel handles user identification across multiple devices, you may want to refer to the Identity Management in Action section of the Mixpanel documentation.

    kapa.ai is still learning and improving, please let me know how I did by reacting below.

    ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.

  • Avatar of Alex
    Alex
    ·
    ·

    what is device id

  • Avatar of Alex
    Alex
    ·
    ·

    kapa.ai what is device id

  • Avatar of kapa.ai
    kapa.ai
    APP
    ·
    ·

    Let me check the knowledge base for you again. One moment! đź“š

  • Avatar of kapa.ai
    kapa.ai
    APP
    ·
    ·

    The $device_id in Mixpanel is a unique identifier used to track a device while the user remains in an anonymous state. It's an important component of Mixpanel's user identification system. Here are the key points about $device_id:1. Generation: According to the Identifying Users (Simplified) documentation, when a user first interacts with your product on a new device, "Mixpanel's SDKs will automatically generate a $device_id that's local to that user's device."2. Purpose: The $device_id serves as an anonymous identifier for users before they are identified (e.g., before they log in or sign up). It allows Mixpanel to track user behavior across multiple sessions on the same device.3. Usage in events: As stated in the Default Properties documentation, the $device_id is an "Autogenerated ID that is local to the device. Calling reset() regenerates this value."4. Identity merging: When a user is identified (e.g., after logging in), Mixpanel can link the $device_id to a $user_id, creating an identity cluster. This allows Mixpanel to connect pre-login and post-login behavior for the same user.5. Cross-platform tracking: The $device_id is crucial for tracking users across different platforms or devices before they are identified.It's important to note that the $device_id is handled automatically by Mixpanel's SDKs on client-side implementations. However, for server-side tracking, you may need to generate and manage these IDs yourself, as mentioned in the Server-side Identity Management section.Remember that the $device_id is different from the $user_id, which is used to track identified users across different devices and sessions.

    kapa.ai is still learning and improving, please let me know how I did by reacting below.

    ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.

  • Avatar of Alex
    Alex
    ·
    ·

    kapa.ai Does the device ID refer to a unique value specific to the device?

  • Avatar of kapa.ai
    kapa.ai
    APP
    ·
    ·

    Let me check the knowledge base for you again. One moment! đź“š

  • Avatar of kapa.ai
    kapa.ai
    APP
    ·
    ·

    Based on the knowledge sources provided, the device ID ($device_id) in Mixpanel does not necessarily refer to a unique value specific to the physical device itself. Instead, it's a unique identifier generated by Mixpanel's SDK or your own implementation to track a user's anonymous activity on a particular device or browser instance. Here's a more detailed explanation:1. For client-side SDKs: According to the Default Properties documentation, the $device_id is an "Autogenerated ID that is local to the device. Calling reset() regenerates this value."2. For server-side implementations: The Server-side Identity Management section states: "If you're tracking from servers, you'll need to generate and manage the IDs yourself and set it as the $device_id directly."This means that the $device_id is not inherently tied to the physical device's hardware or software. Instead, it's a value generated to represent a unique instance of user activity. Some key points to consider:- It's generated when a user first interacts with your product on a device or browser. - It persists across sessions for that user on that device/browser. - It can be reset, which generates a new $device_id. - For web applications, it might represent a browser instance rather than a physical device.The purpose of the $device_id is to track anonymous user activity and potentially link it to an identified user later. It's more accurate to think of it as a session or instance identifier rather than a true device identifier.It's important to note that this implementation allows for better user privacy and compliance with data protection regulations, as it doesn't rely on persistent device-specific identifiers that could be considered personally identifiable information.

    kapa.ai is still learning and improving, please let me know how I did by reacting below.

    ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.

  • Avatar of Alex
    Alex
    ·
    ·

    kapa.ai If the same device accesses from a different IP address, will a new device ID be generated?

  • Avatar of kapa.ai
    kapa.ai
    APP
    ·
    ·

    Let me check the knowledge base for you again. One moment! đź“š

  • Avatar of kapa.ai
    kapa.ai
    APP
    ·
    ·

    Based on the knowledge sources provided, the IP address does not directly influence the generation of a new device ID ($device_id) in Mixpanel. The $device_id is primarily associated with the device or browser instance, not the IP address. Here's a more detailed explanation:1. Device ID Generation: According to the Default Properties documentation, the $device_id is an "Autogenerated ID that is local to the device. Calling reset() regenerates this value." This suggests that the $device_id is tied to the device or browser instance, not the network connection.2. IP Address Usage: The Reserved Event Properties documentation mentions that the ip property is used for geo-location parsing, but it doesn't indicate that it affects the $device_id generation.3. Device ID Persistence: The $device_id is designed to persist across sessions for the same device or browser instance, regardless of network changes. It would only change if: - The user clears their local storage or cookies (for web applications) - The app is uninstalled and reinstalled (for mobile applications) - The .reset() method is called in the Mixpanel SDKTherefore, if the same device accesses your service from a different IP address, it should not generate a new $device_id. The existing $device_id should persist, allowing Mixpanel to continue tracking the user's activity as the same anonymous user, even if their IP address changes.However, it's important to note that for server-side implementations, where you're responsible for generating and managing the $device_id, you would need to ensure that your implementation maintains this behavior and doesn't generate new IDs based on IP address changes.If you need to track IP address changes for any reason, you could consider storing the IP address as a separate property on events, but this should not affect the $device_id used for user identification in Mixpanel.

    kapa.ai is still learning and improving, please let me know how I did by reacting below.

    ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.

  • Avatar of Alex
    Alex
    ·
    ·

    kapa.ai If the same device accesses the service using a different browser, will a new device ID be generated?

  • Avatar of kapa.ai
    kapa.ai
    APP
    ·
    ·

    Let me check the knowledge base for you again. One moment! đź“š

  • Avatar of kapa.ai
    kapa.ai
    APP
    ·
    ·

    Based on the knowledge sources provided, if the same device accesses the service using a different browser, a new device ID ($device_id) will indeed be generated. Here's why:1. Browser-specific IDs: According to the Identifying Users (Simplified) documentation, when a user first interacts with your product on a new device, "Mixpanel's SDKs will automatically generate a $device_id that's local to that user's device." In the context of web applications, "device" often refers to a specific browser instance.2. Unique visitors: The Adobe Analytics migration guide provides insight into how unique visitors are counted, which is relevant to how Mixpanel handles device IDs. It states: "Opens a different browser on the same computer. One unique visitor is counted per browser."This behavior is consistent with how Mixpanel's $device_id works. Each browser on the same physical device is treated as a separate "device" from Mixpanel's perspective.3. Local storage: The $device_id is typically stored in the browser's local storage or cookies. Different browsers have separate storage, so they can't access each other's $device_id.Therefore, when a user accesses your service using a different browser on the same physical device, Mixpanel will generate a new $device_id for that browser. This new $device_id will be used to track the user's anonymous activity in that specific browser until they are identified (e.g., by logging in).It's important to note that once the user is identified (by calling .identify() with a user ID), Mixpanel can link the activity from different browsers to the same user profile. This is part of Mixpanel's ID Merge system, which allows for cross-browser and cross-device user tracking.Identifying Users (Simplified)

    kapa.ai is still learning and improving, please let me know how I did by reacting below.

    ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.

  • Avatar of Alex
    Alex
    ·
    ·

    kapa.ai Hi [Mixpanel Expert], I need your help to verify if my current setup is correct for analyzing conversion time. I have a funnel: A → B1 → B2 → C, and I want to measure the conversion time from A → B1 → B2 for users who eventually reached C. However, I want to exclude cases where users performed C between A and B2 to ensure that I am only measuring the clean transition from A to B2. Here’s how I set it up:

    1. 1.

      Set up the funnel: A → B1 → B2 → C

    2. 2.

      Added C as an Exclusion Step to remove users who performed C before reaching B2

    3. 3.

      Applied a Breakdown with a cohort of users who reached C within the same measurement period

    Observed Results:

    • With Exclusion Step (C removed from A → B2 path): Conversion time = 38.5m

    • Without Exclusion Step (C included in A → B2 path): Conversion time = 1.5h

    This suggests that Exclusion Step is removing users who performed C between A and B2, leading to a shorter conversion time. What I Need to Verify:

    1. 1.

      Is the Exclusion Step working as expected?

    • Does it correctly remove users who performed C between A and B2 while keeping only those who reached C after B2?

    1. 2.

      Does this setup correctly measure A → B2 conversion time for users who eventually reached C?

    2. 3.

      Is there a better way in Mixpanel to accurately measure the time from A to B2 while ensuring only users who reached C are considered?

    Would appreciate any insights or recommendations on this! Thanks in advance. 🙏

  • Avatar of kapa.ai
    kapa.ai
    APP
    ·
    ·

    Let me check the knowledge base for you again. One moment! đź“š

  • Avatar of kapa.ai
    kapa.ai
    APP
    ·
    ·

    Based on the information provided in the knowledge sources, I can offer some insights into your funnel setup and measurement approach. However, it's important to note that the knowledge sources don't provide specific information about all aspects of your question. I'll address your points to the best of my ability based on the available information. 1. Is the Exclusion Step working as expected? Yes, the Exclusion Step appears to be working as intended. According to the [Funnels documentation](https://docs.mixpanel.com/docs/reports/funnels#exclusion-steps-exclude-users-who-did), "Exclusion steps operate as a 'did not do' filter for funnels. This provides the ability to create a funnel where, for example, you look for users that did event A, then event B, did not do event C, but then continue to do D." In your case, by adding C as an Exclusion Step between A and B2, you're effectively filtering out users who performed C before reaching B2. This is why you're seeing a shorter conversion time (38.5m) with the Exclusion Step compared to without it (1.5h). 2. Does this setup correctly measure A → B2 conversion time for users who eventually reached C? Your approach of using an Exclusion Step and then applying a breakdown with a cohort of users who reached C within the same measurement period is a clever way to achieve your goal. However, it's important to note that this method might have some limitations: - The Exclusion Step will remove users from the funnel at the point where they perform C before B2. As stated in the documentation, "Note that the users are excluded at that point in the funnel. So in the previous example a user that did event C would still be counted in the funnel as having A and B, but they would not qualify in the funnel for event D, by virtue of having done event C." - The breakdown by cohort of users who reached C ensures that you're only considering users who eventually reached C, but it doesn't guarantee that C happened after B2 in all cases. 3. Is there a better way in Mixpanel to accurately measure the time from A to B2 while ensuring only users who reached C are considered? While your current setup is a good approach, there might be a more precise way to measure this using Mixpanel's advanced features: 1. Use the [Time to Convert](https://docs.mixpanel.com/docs/reports/funnels#time-to-convert) feature: This allows you to see a distribution of time users took between any two steps in the funnel. You could measure the time between A and B2. 2. Combine with [Hold Property Constant](https://docs.mixpanel.com/docs/reports/funnels#hold-property-constant): If you can create a custom property that indicates whether a user has completed event C after B2, you could hold this property constant throughout the funnel. This would ensure you're only measuring users who completed C after B2.

  • Avatar of kapa.ai
    kapa.ai
    APP
    ·
    ·

    3. Use Comparison Events: You could add C as a comparison event after B2 to see what percentage of users who completed A → B1 → B2 also completed C afterwards.Remember that funnel steps in Mixpanel have a two-second grace period, which allows for some flexibility in the exact order of events.Given the complexity of your specific use case, it might be beneficial to consult directly with Mixpanel's support team for the most accurate and efficient way to set up this analysis in your particular instance.Funnels documentation

    kapa.ai is still learning and improving, please let me know how I did by reacting below.

    ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.