App Tracking Transparency

What is the Identifier for Advertisers (IDFA)?

  • The Identifier for Advertisers (IDFA) is a random device identifier assigned by Apple to a user’s device. Advertisers use this to track data so they can deliver customised advertising.
  • The IDFA is used for tracking and identifying a user (without revealing personal information).

Why is the Identifier for Advertiser (IDFA) important?

  • IDFAs are important because they are an accurate means to track iOS users. By assigning a device to a single IDFA, advertisers who are able to track IDFAs within a campaign have greater certainty about the defining qualities of that user and whether they installed due to an advertising campaign.
  • IDFAs also offer a welcome level of privacy for users. This can have additional effects for advertisers, while the IDFA’s depersonalisation of user data ensures that it is on the right side of data protection efforts.
  • If an app wants to use the IDFA for measurement, users will now be presented with a pop up asking for their consent.

Here’s an example:

We can customize the description text (the small text in the dialog) and can choose to show it at some point after install, as long as it is shown to the user before tracking begins. Showing the dialog later provides an opportunity to explain the benefits of allowing tracking in the app before the dialog is shown and could increase opt-in rates. But given the massive increase in tracking blocking opt-outs by iOS users, it can be assumed that most consumers will not opt into being tracked so they can get what sounds like more invasive ads.

How to Request AppTrackingTransparency permissions

Before requesting IDFA needs to add the below keys Privacy — Tracking Usage Description .


<string>This will only be used to serve more relevant ads.</string>

We have to implement AppTrackingTransparency from iOS 14 to show tracking permission. From this implementation, you can collect the IDFA.

func requestIDFAPermission() {
if #available(iOS 14, *) {
ATTrackingManager.requestTrackingAuthorization { (status) in
if (status == .authorized) {
let idfa = ASIdentifierManager.shared().advertisingIdentifier
print(“IDFA: “ + idfa.uuidString)
} else {
print(“Failed to get IDFA”)

How to Check whether advertising tracking is enabled if so getting the IDFA and parsing to relevant SDK’s

import AppTrackingTransparency
import AdSupport

struct Advert {
static func advertisingIdentifier() -> String {

if ASIdentifierManager.shared().isAdvertisingTrackingEnabled {

return ASIdentifierManager.shared().advertisingIdentifier.uuidString


Question: What’s happen if I don’t upgrade these apps as per the last WWDC guidelines? Is app continue ads serving to the user?

Answer: Yes, App is continuing ads serving but it will impact our revenue.

Question: What’s happening if User doesn’t give tracking permission to the app?

Answer: If the app doesn’t allow permission then the app will continue serving ads to the user but this will affect revenue because the app will serve ads without any keyword or interest of the user.

Key Note: App is forced to restart by iOS with new privacy settings



Rajeswari M

Senior iOS Developer