Платформа обмена сообщениями пользователей Android isConsentFormAvailable возвращает false

Я следовал этому руководству https://developers.google.com/admob/ump/android/quick-start, и мой код выглядит так:

          private fun checkForConsent() {
/*
        val debugSettings = ConsentDebugSettings.Builder(this)
            .setDebugGeography(ConsentDebugSettings.DebugGeography.DEBUG_GEOGRAPHY_EEA)
            .addTestDeviceHashedId("69887E2CBBE5346EC3B54A3FD207AB41")
            .build()
        val params = ConsentRequestParameters.Builder()
            .setConsentDebugSettings(debugSettings)
            .build()
        */


        Log.d("adstuff", "check Consent")
        val params = ConsentRequestParameters.Builder().build()
        // Set tag for under age of consent. Here false means users are not under age
        //Log.d("adstuff", params.isTagForUnderAgeOfConsent.toString())

        consentInformation = UserMessagingPlatform.getConsentInformation(this)

        //consentInformation.reset();
        consentInformation.requestConsentInfoUpdate(
            this,
            params,
            object : ConsentInformation.OnConsentInfoUpdateSuccessListener {
                override fun onConsentInfoUpdateSuccess() {
                    // The consent information state was updated.
                    // You are now ready to check if a form is available.
                    Log.d("adstuff", "Is consentform available")
                    Log.d("adstuff", consentInformation.isConsentFormAvailable.toString())

                    if (consentInformation.isConsentFormAvailable) {
                        Log.d("adstuff", "Consentform is available")

                        loadForm()
                    }
                }
            },
            object : ConsentInformation.OnConsentInfoUpdateFailureListener {
                override fun onConsentInfoUpdateFailure(formError: FormError) {
                    // Handle the error.
                    Log.d("adstuff", "content info update failure")
                    Log.d("adstuff", formError.toString())

                }
            })
    }

Однако согласиеInformation.isConsentFormAvailable возвращает false. Я создал учетную запись AdMob и учетную запись Funding Choices, в которой я создал и опубликовал сообщение типа Consent TCF. Я также добавил идентификатор ca-app-pub в манифест Android.

Спасибо

Изменить: если я установил местоположение в ЕЭЗ с помощью настроек отладки, как в закомментированном коде, обновление информации о согласии не удастся.

2 ответа

В телефоне перейдите в «Настройки»> «Конфиденциальность»> «Дополнительно»> «Реклама» и отключите параметр «Отказаться от персонализации рекламы».

Что касается других людей, у которых возникла такая же проблема, я тестировал это с помощью эмулятора, и в документации Google указано, что в этом случае не требуется добавлять идентификатор устройства, однако из-за этого это не сработало. В Logcat я вижу это:

I/UserMessagingPlatform(21870): используйте новый ConsentDebugSettings.Builder().addTestDeviceHashedId("AAA01CDEB36EFED43AEFFD2EB9D778C2"), чтобы установить его в качестве устройства отладки.

Затем, после добавления идентификатора устройства для эмулятора, как описано, он начал работать как положено.

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