Почему моя форма согласия GDPR для Google AdMob не отображается в моем приложении для iOS

Я нахожусь в процессе внедрения UMP SDK в свое приложение для iOS. Я настроил сообщения GDPR и IDFA в разделе «Конфиденциальность и обмен сообщениями» панели управления Google AdMob. У меня возникли проблемы с отображением сообщения GDPR. Сообщения IDFA и ATT для iOS работают отлично.

Ниже приведен код, который я использую. Я тестировал это как на симуляторе, так и на физическом устройстве. Кроме того, я нахожусь в ЕС.

      static func trackingConsentFlow(completion: @escaping () -> Void) {
    let umpParams = UMPRequestParameters()
    let debugSettings = UMPDebugSettings()
    debugSettings.geography = UMPDebugGeography.EEA
    umpParams.debugSettings = debugSettings
    umpParams.tagForUnderAgeOfConsent = false
    
    UMPConsentInformation
        .sharedInstance
        .requestConsentInfoUpdate(with: umpParams,
                                  completionHandler: { error in
            if error != nil {
                print("MYERROR #1 \(String(describing: error))")
                completion()
            } else {
                let formStatus = UMPConsentInformation.sharedInstance.formStatus
                print("FORM STATUS: \(formStatus)")
                
                if formStatus == .available {
                    loadForm(completion)
                } else {
                    completion()
                }
            }
    })
}

private static func loadForm(_ completion: @escaping () -> Void) {
    UMPConsentForm.load(completionHandler: { form, loadError in
        if loadError != nil {
            print("MYERROR #2 \(String(describing: loadError))")
            completion()
        } else {
            print("CONSENT STATUS: \(UMPConsentInformation.sharedInstance.consentStatus)")
            if UMPConsentInformation
                .sharedInstance.consentStatus == .required {
                
                guard let rootViewController = UIApplication.shared.currentUIWindow()?.rootViewController else {
                    return completion()
                }
                
                form?.present(from: rootViewController, completionHandler: { dismissError in
                    if UMPConsentInformation
                        .sharedInstance.consentStatus == .obtained {
                        completion()
                    }
                })
            }
        }
    })
}

Просто быть чистым:

С помощью этого кода я могу показать сообщение IDFA, после чего отображается предупреждение AppTrackingTransparency. Но я также ожидаю увидеть форму согласия GDPR.

1 ответ

Для всех, кто интересуется тем же. Сообщение GDPR не появлялось, потому что я не завершил настройку своей учетной записи Admob. Я не добавил способ оплаты. После его добавления (и отправки приложения на проверку в Admob) стало появляться сообщение GDPR.

Другие вопросы по тегам