Платформа обмена сообщениями пользователей 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"), чтобы установить его в качестве устройства отладки.
Затем, после добавления идентификатора устройства для эмулятора, как описано, он начал работать как положено.