Google AdMob: почему собственный ответ на рекламу терпит неудачу с «без заполнения», когда и баннер, и рекламный ролик в порядке? - PullRequest
1 голос
/ 08 февраля 2020

В моем приложении есть баннерная и промежуточная реклама, но при попытке загрузить дополнительные нативные объявления, которые я хочу использовать в recylerviews, результат загрузки с AdLoader.Builder(...).forUnifiedNativeAd всегда равен: I/Ads: Received log message: <Google:HTML> The ad request returned a no fill for the particular slot. The error log below that says 'Malformed native JSON response' is a benign warning that will be removed in a future SDK release.

В моем понимании slot - это "место размещения" этого конкретного нативного объявления, которое я заполнил правильным native_ad_id. (В тесте это должно быть ca-app-pub-3940256099942544/2247696110 или ca-app-pub-3940256099942544/3986624511)

Моя проблема сейчас в том, что я не смогу проверить внешний вид нативной рекламы так, как описано в: https://developers.google.com/admob/android/native/start

Почему нет «гарантии» на достоверные результаты тестовых объявлений?

Насколько я знаю (и понимаю), я все сделал правильно, но результат из testAds не будет заполняться ...

Фрагменты кода:

fun loadNativeAds() {

    Log.i(TAG,"loadNativAds(): ")

    val builder = AdLoader.Builder(context, getString(R.string.native_ad_unit_id_station_list))
    adLoader = builder.forUnifiedNativeAd { unifiedNativeAd ->
        Log.i(TAG,"loadNativeAds: Ad loaded: ${unifiedNativeAd.headline}")
        nativeAds.add(unifiedNativeAd)

    }.withAdListener(
        object: AdListener() {
            override fun onAdFailedToLoad(errorCode: Int){
                Log.e(TAG,"loadNativeAds: The prevous native ad failed to load with error $errorCode." +
                        "Attempt to load another.")
            }
        }).withNativeAdOptions(
            NativeAdOptions.Builder()
            .setAdChoicesPlacement(ADCHOICES_TOP_RIGHT)
            .build())
        .build()

    //adLoader?.loadAd(AdRequest.Builder().build())

    adLoader?.loadAds(AdRequest.Builder().build(),5)
}

Если я использую loadAds Я получаю ошибку 0 Если я использую loadAd Я получаю ошибку 3

MobileAds.initialize(this,getString(R.string.mobileads_app_id)) вызывается в MainActivity и, как уже было сказано, все рекламные баннеры и рекламные вставки функционируют должным образом.

Существуют ли (недокументированные) конфликты между этими тремя (баннерная, рекламная, нативная) где-то здесь? ?

RG

2020.02.09: продолжение, дополнительная информация:

Из сообщения в сообщении (не могу вспомнить, откуда) было чтобы использовать настоящие рекламные идентификаторы и запустить их на моем эмуляторе, они будут автоматически помечены как тестовые. (Вы получите оценку TestAd на объявлении). Затем сообщение об ошибке изменилось на: I/Ads: Received log message: <Google:HTML> Incorrect native ad response. Click actions were not properly specified

Поиск здесь и в других местах дает мало ответов ... Чтобы исключить фильтрацию в моей сети, я запустил тест (NativeAdvancedExample), это кажется go ок.

Так что я делаю не так?

RG

...