Technical Analysis of the IOS6 Tracking Identifiers and Privacy System

The new release for IOS6 contains several improvements in the tracking and privacy systems for advertisers and consumers. The release features are definitely just a starting point in what appears to be a long term strategy to embed privacy controls into the platform.  Below is an analysis of what is included within the system along with some insights from TRUSTe based upon on our learnings from launching the industry’s first comprehensive mobile ad privacy system earlier this year.

From a high level, there are two major components to this system:

  1. A new system for identifying users based upon two identifiers.
  2. A new privacy control system for users to signal privacy preferences.

New IO6 Identifiers

The two identifiers are as follows:

  1. advertisingIdentifier(aI)
    • Per the documentation, this is a read-only, alphanumeric string unique to each device, used for advertising only.
    • The value is constant for all third parties, but the ID can be deleted “if the user erases the device.”
  2. identiferForVendor (idV)
    • Per the documentation, this is a read-only, alphanumeric string that uniquely identifies a device to the app developer.
    • The value is the same for apps that come from the same app developer running on the same device.


  • These IDs are an improvement over UDID and MAC Address usage, as the ID’s are non-permanent, can be deleted and have two different systems that can be used for Advertising and Analytics.
  • Offering a separate developer-only version also provides some origin control around access to the ID.  But, the aI is available to any third party so profiles can be built across different apps.
  • In order to delete these ID’s, users will have to erase their device to remove the ID which is a pretty extreme analog to clearing your cookies from your browser.
  • Cookies also offer the added benefit of including expiration dates so they only be used for short finite periods, whereby these IDs offer no such controls.

New Tracking Controls

There is a new “Limit Ad Tracking” function that allows phone users to control the use of their aI by advertisers.

  1. There is a user-controlled setting under “About” in the Setting menu where a user can turn this on or off.  It is defaulted OFF.
  2. Apple Provided text to consumer:
    1. iOS 6 introduces the Advertising Identifier, a non-permanent, non-personal, device identifier, that advertising networks will use to give you more control over advertisers’ ability to use tracking methods.
    2. If you choose to limit ad tracking, advertising networks using the Advertising Identifier may no longer gather information to serve you targeted ads.
    3. In the future all advertising networks will be required to use the Advertising Identifier.
    4. However, until advertising networks transition to using the Advertising Identifier you may still receive targeted ads from other networks.

How exactly does this work?

There are two new functions:

  1. NSUUID *adid = [[ASIdentifierManager sharedManager] advertisingIdentifier];
  2. BOOL tracking = [ASIdentifierManager sharedManager].advertisingTrackingEnabled;

The first function is to get the aI , and the second one requests the state to check if tracking is enabled (it is ON by default), which is sort of a “DNT” flag concept:

  1. When a user keeps the Limit function in its default OFF position, the aI gets sent to third parties and “TrackingEnabled” returns “YES.”
  2. When a user turn on Limit Ad Tracking, the aI still gets sent and “TrackingEnabled” returns “NO”.


  1. This is definitely an expert function for the most privacy-sensitive users, which TRUSTe applauds Apple for making these controls available as a baseline.  General consumers will not know this function exists without additional education.  As such there is still need for a transparency system by app developers and the ad industry to let users know when their data (identifiers) is being used by third parties.
  2. There is only one option to Limit Ad Tracking and this is a global setting. There needs to a more granular system to allow users to provide exceptions beyond the global option, as some [free] apps are predicated on the fact that they can be ad supported.
  3. This system has some structural similarities to the DNT header feature that is rolling out in most browsers, but with some important gaps like Exception management and some definitions around what behaviors are expected by third parties once the user has set the flag.
  4. It is unclear how this system will work in conjunction with the browser-side DNT deployment that also is rolling out in IO6.
  5. It appears that restricting access to UDID and MAC address will occur at the app approval process vs. platform level, as access to the UDID is still possible when the Limit flag is set.  There are no official positions stated by Apple around MAC address, but one would have to assume this will be eventually limited like the UDID was.


This is an interesting first step for Apple to bring some improvements to its platform, to help advertisers offer targeted advertising in a more privacy-safe manner.  But, there are still some pretty important gaps around user transparency, user education and more granular choices that reflect those users that want free apps from trusted brands.

TRUSTe has been working hard for over a year on its TRUSTed Mobile Ads product with leading app developers and third party ad and data providers to provide users with transparency around their data use and flexible choice options on how they want their information shared with third parties.  This information includes their device ID’s but also other parameters that are used by advertisers.

TRUSTe’s solution offers a very robust set of choice options that include permissions for brands, ad networks and global preference options.  The solution also binds these preferences across both sides of the mobile device to give the user comprehensive control.  Finally, it is a general permission framework which goes beyond just those users that wish to opt-out, but also provides capabilities for user to tell advertisers what they are interested in, which is what a full-featured interest and privacy system should accomodate.

TRUSTe looks forward to evolving its solution alongside this new IOS solution in addition to the DNT program on the browser side.  TRUSTe’s solution is ID-agnostic, so it will automatically work with the new IDs.  The TRUSTe solution will also be compatible with any user-invoked settings via the Limit Ad Tracking settings.