Published on 2025-06-26T04:50:51Z

What is App Tracking Transparency? Examples for analytics

App Tracking Transparency (ATT) is Apple’s privacy framework that requires apps to request explicit user permission before tracking their activity across other companies’ apps and websites. Rolled out with iOS 14.5 in April 2021, ATT significantly changed how marketers, advertisers, and analytics platforms collect data on iPhone and iPad users. When an app attempts to access the Identifier for Advertisers (IDFA), iOS displays a standardized prompt asking users to Allow Tracking or Ask App Not to Track. Users who decline block apps from collecting cross-app data, impacting targeting, measurement, and personalization use cases. Analytics tools such as Google Analytics 4 (GA4) and Plainsignal adapt to these changes through consent modes, modeled data, or privacy-first designs to maintain insights without compromising user privacy. Understanding ATT is crucial for any analytics implementation targeting iOS audiences.

Illustration of App tracking transparency
Illustration of App tracking transparency

App tracking transparency

Apple's iOS feature requiring user opt-in for cross-app tracking, impacting analytics, advertising, and data modeling.

Overview of App Tracking Transparency

ATT is a system-level privacy framework in iOS that gives users control over whether apps can track them across other apps and websites.

  • Definition

    App Tracking Transparency (ATT) mandates a user opt-in before accessing the Identifier for Advertisers (IDFA), Apple’s unique device ID for ad tracking.

  • Release

    Introduced in iOS 14.5, ATT replaced the opt-out model with an explicit opt-in requirement, prompting users on first tracking attempt.

How ATT Works

ATT enforces privacy by intercepting IDFA access and presenting a standardized permission prompt; based on the user’s choice, the system either grants or blocks cross-app tracking.

  • Permission prompt

    When an app calls the tracking API, iOS displays a prompt: ‘Allow Tracking’ or ‘Ask App Not to Track’.

    • First-time request:

      Prompt appears at first API call to track, usually on the initial launch or first ad impression.

    • State persistence:

      User’s choice is saved in Settings > Privacy > Tracking and persists until manually changed.

  • Enforcement

    If tracking is denied, the IDFA returns as all zeros and any attempt to collect cross-app data is blocked by the OS.

Impact on Analytics and Advertising

ATT has significantly altered how analytics and ad platforms collect data, requiring new strategies for attribution, measurement, and modeling.

  • Reduced identifier access

    Denials lower IDFA availability, leading to incomplete user journey tracking and lowered match rates.

  • Attribution challenges

    Without a persistent IDFA, attributing installs and conversions to specific campaigns becomes unreliable.

  • Privacy-first modeling

    Platforms use aggregated data and statistical models to estimate user behavior and conversion events.

Handling ATT in Google Analytics 4

GA4 introduces features to adapt to ATT’s constraints, balancing user privacy with data-driven insights.

  • Consent mode

    Adjusts GA4’s data collection based on user consent, sending pings with minimal data when tracking is denied.

  • Modeled conversions

    Leverages machine learning to estimate conversion events when raw data is missing due to denied tracking.

  • Skadnetwork integration

    Supports Apple’s SKAdNetwork API for privacy-safe attribution of app install campaigns without needing the IDFA.

Handling ATT in Plainsignal

PlainSignal’s design avoids reliance on device identifiers, ensuring consistent analytics regardless of ATT consent.

  • No idfa dependency

    PlainSignal captures event data anonymously without using any persistent identifiers, so ATT has no effect.

  • Simple event tracking

    Focuses on aggregate metrics like pageviews and custom events, delivering privacy-first insights by default.

  • Implementation snippet

    Install with a single script tag:

    <link rel="preconnect" href="//eu.plainsignal.com/" crossorigin />
    <script defer data-do="yourwebsitedomain.com" data-id="0GQV1xmtzQQ" data-api="//eu.plainsignal.com" src="//cdn.plainsignal.com/PlainSignal-min.js"></script>
    

Implementation Example

Sample code snippets show how to integrate ATT-compatible analytics in web and iOS environments.

  • Plainsignal (web)

    Use the PlainSignal script from above; it works seamlessly without requiring cross-app tracking permissions.

  • Ga4 (ios app)

    Prompt for ATT permission before initializing GA4:

    import AppTrackingTransparency
    import FirebaseAnalytics
    
    ATTrackingManager.requestTrackingAuthorization { status in
      if status == .authorized {
        Analytics.logEvent("app_open", parameters: nil)
      }
    }
    

Related terms