Let's start with understanding IDFA

IDFA (Identifier for Advertisers) is a unique identifier assigned to each iOS device, used by advertisers to track and target users. Before iOS 14, apps could access IDFA by default unless the user had enabled Limit Ad Tracking.

Before iOS 14

  • Apps could access IDFA without explicit user permission.
  • Users could opt out via "Limit Ad Tracking" in settings.
  • Most users did not change this setting, so IDFA was widely available.
import AdSupport
let idfa = ASIdentifierManager.shared().advertisingIdentifier.uuidString

After iOS 14

  • Apple introduced App Tracking Transparency (ATT) framework.
  • Apps must request user permission to access IDFA.
  • If the user denies, the IDFA is all zeros.
import AppTrackingTransparency
import AdSupport

ATTrackingManager.requestTrackingAuthorization { status in
    switch status {
    case .authorized:
        let idfa = ASIdentifierManager.shared().advertisingIdentifier.uuidString
        print("IDFA: \(idfa)")
    case .denied, .restricted, .notDetermined:
        print("Tracking not authorized")
    @unknown default:
        break
    }
}

Impact on Advertisers

  • Less access to user data for personalized ads.
  • Attribution and ad measurement became more challenging.
  • Increased focus on privacy and user consent.

Best Practices

  1. Be transparent with users about why you need tracking.
  2. Use ATT prompt at an appropriate time in the user journey.
  3. Respect user choice and privacy.
  4. Explore alternative attribution methods (SKAdNetwork, etc.).

Conclusion

iOS 14 brought significant changes to ads tracking and user privacy. Understanding these changes and adapting your app's tracking strategy is crucial for compliance and user trust.