Solved

Is IDFV or IDFA the default distinctId on iOS?

  • 1 April 2021
  • 5 replies
  • 161 views

In accordance with Zihe Jia‘s response to my first message on this announcement post, 

ever since iOS 14.0, every new user was being assigned the IDFV as their distinct_id.

We have previously and still do retrieve their IDFA manually and write it to the user profile as a custom property, but that’s all we do with it. All our calls to identify() simply pass the existing distinctId value retrieved using Mixpanel.mainInstance().distinctId. We aren’t manually setting IDFA as the distinctId.

If it helps to know, we do have the iAd and AdSupport frameworks installed, and we have since well before iOS 14. Before iOS 14, mixpanel defaulted to using IDFA as the distinctId. Then it became IDFV since iOS 14, as explained in the comment I linked above. But now all of a sudden it’s the IDFA again. We have remained on SDK version 2.7.1 through the timeline in question.

We are still on 2.7.1 of the SDK but all of a sudden I’m seeing new users that download our iOS app being created in mixpanel with their IDFA as the distinct_id. Could you help me understand what could be happening here? The code in my app that handles all things mixpanel hasn’t changed at all since my previous comment in that thread 6 months ago.

 

I don’t mean to bloat this post but I feel it may be easier to help me if I add more context. The core reason I’m looking for clarification on this is that we are planning to enable user accounts for our app pretty soon. Up until now we have not used accounts and persisted data locally. Once we release the user accounts feature, we will want to enable Identity Merge for our project so that a single human using multiple devices under their one account will be tracked as a single MTU. Given my understanding of how ID Merge works, it doesn’t seem like a good idea to have a device’s idfa ever become part of an identity cluster. It would be helpful if I could gain some clarity on how turning on ID Merge might affect our existing user profiles, some of which have IDFA and some IDFV as their distinct ID.

 

I’d really appreciate any guidance or thoughts on this.

icon

Best answer by claudias 8 April 2021, 00:07

Hi iosdev

 

Regarding your identity merge question, it is correct to say that Mixpanel will monitor a cluster of identifiers when you call identify() in the app. If the IDFA is used as the distinct ID for a user, and you subsequently call identify() to merge this with their user account information, then Mixpanel will join these two event streams to provide a unified view of the user. If, after this, you never use the user’s IDFA to identify them again, it should not matter as the events will still be tied to their account ID (or email, or whatever information you are using to identify them). You can never “un-merge” these identities, so if an event ever comes through with the IDFA or with the user’s account info, it will be tied to the same identity cluster. 

 

Here is a visualization of how this works: 

Theoretically, if the same user has 3 events coming through, one that uses IDFA, IDFV, and account info, respectively, these three identifiers will all be managed under the same identity cluster and will correspond to the same user for any events that have any of these identifiers as their distinct ID. 

 

 

View original

5 replies

Badge

Hi iosdev

 

Regarding your identity merge question, it is correct to say that Mixpanel will monitor a cluster of identifiers when you call identify() in the app. If the IDFA is used as the distinct ID for a user, and you subsequently call identify() to merge this with their user account information, then Mixpanel will join these two event streams to provide a unified view of the user. If, after this, you never use the user’s IDFA to identify them again, it should not matter as the events will still be tied to their account ID (or email, or whatever information you are using to identify them). You can never “un-merge” these identities, so if an event ever comes through with the IDFA or with the user’s account info, it will be tied to the same identity cluster. 

 

Here is a visualization of how this works: 

Theoretically, if the same user has 3 events coming through, one that uses IDFA, IDFV, and account info, respectively, these three identifiers will all be managed under the same identity cluster and will correspond to the same user for any events that have any of these identifiers as their distinct ID. 

 

 

Okay that makes sense! Thanks for clarifying.

Badge

hi @claudias does this mean that use of Mixpanel will require triggering the Apple ATT prompt for users to “allow tracking”?

@molecularzen from my understanding, no. By default, the mixpanel SDK will NOT use IDFA as the local distinct id for new anonymous users of your app. On the latest version of the SDK, an internally generated UUID will be used.

However, as a developer, you can add a build setting to tell the mixpanel sdk to use the IDFA as the local distinctId, as opposed to the sdk’s internal UUID. If you do this, then you need to show the prompt. Otherwise, iOS returns a bunch of zeroes when you ask for idfa, and this will surely mess with your analytics. Additionally, even if you don’t use IDFA at all, but still do ‘track’ users (as defined by Apple in the app store page privacy survey questions) you still need to show the prompt before you start tracking. I’d refer to this to get a good understanding of how Apple defines ‘tracking’ https://developer.apple.com/app-store/user-privacy-and-data-use/

Badge

Hi @molecularzen , 

 

@iosdev is correct - if you are using the current version of our SDKs and / or are not fetching the IDFA from the device in order to track your users, you would be exempted from needing to show users the pop-up. 

Reply


Mixpanel