How to handle pre-permission prompt for App Tracking Authorization?

Viewed 1758

I'm preparing for iOS 14 App Tracking Transparency enforcement in early 2021 and I've created a pre-permission prompt before calling

ATTrackingManager.requestTrackingAuthorization(completionHandler: { status in

  //do something based on status

})

So that I have a better chance to explain to my users the difference between opting for personalized or non-personalized ads.

My logic is that if the user opts out of personalized ads that I just wont prompt for Tracking Authorization permission by calling ATTrackingManager.requestTrackingAuthorization and instead I will let Admob realize that IDFA == 0000 and will thus be as if it wasn't authorized.

Here's an example:

enter image description here

I have two issues that arise from this that I need clarification on.

1: Is this legal by Apple's standards? I have found nothing to say it's illegal and once enforced, IDFA will be 0000 by default so essentially permission is not granted by default. So I'm thinking it's as if the developer just defaults to non-personalized ads.

2: Apple hasn't set a specific date for when this will be enforced, and so as a result (during this enforcement limbo period), if the official permission prompt is not called, the app will have access to IDFA & have, by default, permission to track, until enforcement occurs. This creates an issue for users who opt out on my pre-permission prompt during this time of non-enforcement. What is the work around for this? Can I manually disable the IDFA for these users until it is enforced by Apple?

It would seem counter-intuitive to call requestTrackingAuthorization for users who already opted out of personalized ads on the pre-permission prompt.

2 Answers

Make sure to check ATTrackingManager.trackingAuthorizationStatus == .notDetermined before showing this prompt as some users may have the switch "Allow Apps to Request to Track" active switch.

First answer, you're allowed to provide context before showing a prompt. From Apple's Docs:

Ideally, people already know why you’re requesting their permission based on context, but if it’s essential to provide additional details, you can display a custom message before the alert appears.

Second answer, this will be enforced on devices using iOS 14.5. From Apple's Docs:

Beginning in iOS 14.5 and iPadOS 14.5, you must use the AppTrackingTransparency framework to request the user’s permission if you want to track them or access their device’s advertising identifier. To learn more, see User Privacy and Data Use.

Related