ATTrackingManager & UMPConsentInformation both are required for AdMob?

857 Views Asked by At

I have a question like for Google AdMob iOS we have to ask for ATTrackingManager.requestTrackingAuthorization and after that, we have to ask UMPConsentInformation.sharedInstance.requestConsentInfoUpdate

Another question is from ATTrackingManager.requestTrackingAuthorization if user is not authorised then we can ask for UMPConsentInformation.sharedInstance.requestConsentInfoUpdate because user already permitted to not track.

And last one is we can just ask for UMPConsentInformation.sharedInstance.requestConsentInfoUpdate UMP Consent information only? Because on GoogleAdmob SDK there is no any code for ATTrackingManager.requestTrackingAuthorization.

2

There are 2 best solutions below

0
Jatin On

I implemented this solution earlier on various app it's working for me.

UMPSDK it's introduce due to privacy purpose in EU User Consent Policy

I have a question like for Google AdMob iOS we have to ask for ATTrackingManager.requestTrackingAuthorization and after that, we have to ask UMPConsentInformation.sharedInstance.requestConsentInfoUpdate

No we don't need to ask ATTrackingManager.requestTrackingAuthorization now because it's already covered by UMPSDK so whenever we implemented UMPSDK we need to setup GDPRMessage from ADMob account. This message will present while calling it.

let parameters = UMPRequestParameters()

//For testing purposes, you can force a UMPDebugGeography of EEA or not EEA.
let debugSettings = UMPDebugSettings()
// debugSettings.geography = UMPDebugGeography.EEA
parameters.debugSettings = debugSettings

// Requesting an update to consent information should be called on every app launch.
UMPConsentInformation.sharedInstance.requestConsentInfoUpdate(with: parameters) {
  requestConsentError in
  guard requestConsentError == nil else {
    return
  }

  UMPConsentForm.loadAndPresentIfRequired(from:self) { 
    loadAndPresentError in

    // Consent has been gathered.
    // Whenever consent will click ATTrackingManager popup present
  }
}

Another question is from ATTrackingManager.requestTrackingAuthorization if user is not authorised then we can ask for UMPConsentInformation.sharedInstance.requestConsentInfoUpdate because user already permitted to not track.

For this answer you need visit User ATTrackingManager Journey

And last one is we can just ask for UMPConsentInformation.sharedInstance.requestConsentInfoUpdate UMP Consent information only? Because on GoogleAdmob SDK there is no any code for ATTrackingManager.requestTrackingAuthorization.

enter image description here

There are two types of form for two type of different EEA & not EEA users. EEA user will see GDPR dialogue where consent button will visible to form and when user click on it it will present ATTrackingManager dialogue. GDPR Message Form: enter image description here

not EEA user will see IDFA dialogue where continue button will visible to form and when user click on it it will present ATTrackingManager dialogue. IDFA Message Form: enter image description here

How to setup GDPR & UMP

https://www.youtube.com/watch?v=EwcrESnAYEI&t=2s&ab_channel=GoogleAdMob

Google ads with UMP demo

https://github.com/googleads/googleads-mobile-ios-examples

0
pawello2222 On

TL;DR

If you use Google UMP SDK you only need to configure UMPConsentInformation in your code and then add relevant messages in the AdMob UI - Google will take care of when and if to display that messages (and in which order).

Explanation

According to the Google AdMob website if you use their UMP SDK you don't need to manually request ATT permission.

What is the best practice for showing both the iOS ATT alert and GDPR consent to the same user?

We recommend showing the GDPR consent message first and the iOS ATT alert second if the user consented to GDPR. This is already handled by the UMP SDK if you configure both messages in the AdMob UI. See Which message your users will see for more information.

If you are not showing the ATT alert using the UMP SDK, we recommend you read consent choices once GDPR consent is collected to determine whether to show the iOS ATT alert.

Here are the possible variants:

enter image description here

You mainly have two options:

  • Use Google UMP SDK - then you just need to setup your app to use UserMessagingPlatform and configure relevant messages on AdMob UI.
  • Use other certified UMP - then Google recommends to display the GDPR consent form first and then basing on the responses determine whether to show the ATT message.

Guide

Here are the main steps (that I'm currently using in some of my apps):

  1. Import UserMessagingPlatform - it is contained in GoogleMobileAds:
import AppTrackingTransparency
import GoogleMobileAds
import UserMessagingPlatform

Reference: https://developers.google.com/admob/ios/quick-start

  1. Link AppTrackingTransparency - you won't use it in code but Google UMP will use it to create a popup for you:

Reference: https://developers.google.com/admob/ios/privacy/idfa

Also you need to add the below key to the Info.plist:

<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to deliver personalized ads to you.</string>
  1. Configure the UMP SDK as explained here:

All you need is UMPConsentInformation.sharedInstance - there's no need to add anything related with ATTrackingManager.

Also make sure to follow additional steps like delaying the app measurement: https://developers.google.com/admob/ios/privacy/gdpr

  1. Configure AdMob UI:

enter image description here

Here you need to add both:

  • a GDPR message
  • an IDFA explainer

Once you setup them in the AdMob UI they'll be shown for the apps that are using the Google UMP SDK.

Note: Just make sure to select the correct app when creating a new message.