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.
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.
- First-time request:
-
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) } }