Zum Inhalt

App Tracking Transparency Framework (ab iOS 14)

Mit Einführung von iOS14 wird der bisherige LAT (Limit Ad Tracking) Mechanismus durch das neue Framework „App Tracking Transparency“ (ATT) abgelöst. Die IOLib iOS unterstützt ATT ab Version 2.2.0 und respektiert die über die App einzuholende Einwilligung resp. Ablehnung der Nutzer ebenso wie die Einstellungen/Restriktionen im jeweiligen Endgerät.

Im Wesentlichen sind dies die folgenden 2 Schritte:

1. In Xcode: Neuen Key in Info.plist einfügen

In der Information Property List des Projekts muss ein neuer Key „NSUserTrackingUsageDescription“ angelegt werden:

Image

Dieser enthält einen Text (String) zur Erläuterung der Begründung für die Abfrage zum Tracking der Werbe-ID (IDFA) durch die jeweilige App.

2. In Xcode:

Direkt nach Start der App sollte die Authorisierungsanfrage ausgelöst werden, indem die Methode „requestTrackingAuthorization“ aufgerufen wird.

Objective-C:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
#import <AppTrackingTransparency/AppTrackingTransparency.h>
...
-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(nullable NSDictionary*)launchOptions {
    [self requestIDFA];
    //start IOLSession
    return YES;
}

-(void)requestIDFA {
  [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
    // Tracking authorization completed
  }];
}

Swift:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import AppTrackingTransparency
...
func application(_ application: UIApplication, didfinishlaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) → Bool {
  requestIDFA()  
  //start IOLSession  return true 
}
private func requestIDFA()  { 
ATTrackingManager.requestTrackingAuthorization(completionHandler: { status in   
  // Tracking authorization completed 
  }) 
}

Wird diese Anfage zum ersten Mal gestellt, erscheint folgender Alert (Beispiel aus IOLibSample):

Image

Der Text innerhalb des roten Rahmens entspricht exakt dem String, welcher in Schritt 1 in der Info.plist unter „NSUserTrackingUsageDescription“ definiert wurde.

Das iOS System persistiert die Wahl des Nutzer, daher erscheint dieser Alert exakt einmal. Wurde die Erlaubnis zur Abfrage in den System-Einstellungen des Gerätes global deaktiviert, dann wird der Alert nicht angezeigt.

Hinweis

Es ist ratsam, den App Nutzern vor Aufruf der ATT-Authorisierungsabfrage die Hintergründe dieser Abfrage ausführlicher zu erläutern. Dies könnte die Opt-in Quote deutlich erhöhen.

Die ATT-Authorisierungsabfrage wirkt sich wie folgt auf den AuthorizationStatus aus:

case notDetermined: IDFA, IDFV, InstallationID case authorized: IDFA, IDFV, InstallationID case denied: IDFV, InstallationID case restricted: IDFV, InstallationID IDFA = „AdvertisingIdentifier“ IDFV = „VendorIdentifier“ InstallationID = Zufällige, von der Lib erzeugte ID (Reset bei Neuinstallation der App) authorized = „Tracking“ global erlaubt bzw. Optin-Abfrage in der App erlaubt denied = „Tracking“ nach Optin-Abfrage in der App abgelehnt oder global deaktiviert notDetermined = Nutzer wurde noch nicht gefragt restricted = Einstellung kann vom Nutzer nicht geändert werden, da gesperrt

Da Apple die Pflicht des Einbaus der Abfrage des Advertising Identifiers auf April 2021 verschoben hat, kann eine App noch mit dem SDK13 kompiliert werden. So erscheint in der App keine ATT-Authorisierungsabfrage. Der AuthorizationStatus bleibt auf „NotDetermined“ und somit wird weiterhin der Advertising Identifier geliefert.


Letztes Update: July 21, 2023