Is IDFV or IDFA the default distinctId on iOS?

  • 1 April 2021
  • 2 replies

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.

2 replies

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.