3

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.

David Villegas
  • 458
  • 3
  • 18
  • I can be wrong, but from my understanding it's ok if you don't prompt the user with ATT alert (you just won't have access to the real IDFA when it becomes mandatory). About your second point, I don't know tho. – rraphael Dec 30 '20 at 09:47
  • The problem I see with your approach is that the user may have opted out of tracking globally (as I have). Your app has no visibility of this, but if the user has opted out globally then they will not be prompted, so clicking "turn on personalised ads" is a bit misleading; They will not be prompted and they will not be receiving personalised ads. Only Apple can say whether your approach is acceptable, but I would strongly suggest that you stick with the standard Apple dialog (or just assume that everyone is going to opt out because probably everyone is going to opt out) – Paulw11 Dec 30 '20 at 10:01
  • Paulw11 The pre prompt is only called if authorization status is .notDetermined meaning, they haven’t opted out globally and they haven’t yet made a decision on this specific app. If the user opted out globally like in your example, the status would be .denied, and there would be no pre prompt. – David Villegas Dec 30 '20 at 20:12
  • Now that ATT has been rolled out, can you please update this question with the results of your submissions to Apple and your final solution. – Unstableair Jun 16 '21 at 14:27

2 Answers2

1

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.

Bruno Bieri
  • 9,724
  • 11
  • 63
  • 92
1

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.

EmilioPelaez
  • 18,758
  • 6
  • 46
  • 50