Проблема с загрузкой рекламы при первом старте приложения

На Android 13+ первая загрузка рекламы выбрасывает ошибку No Fill. В onAdFailedToLoad() даже с тестовыми айди рекламы, последующие загрузки проходят нормально. AD_ID добавлен в Манифест

<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>

Сам код простой:

fun load(
        context: Context,
        adUnitId: String,
        screenAdsId: String,
        callback: (InterstitialAd?) -> Unit
    ) {
                val adRequest = AdRequest.Builder().build()
                InterstitialAd.load(
                    context,
                    adUnitId,
                    adRequest,
                    object : InterstitialAdLoadCallback() {
                        override fun onAdLoaded(ad: InterstitialAd) {
                            Log.i("mLogAds", "$screenAdsId onAdLoaded")
                            callback(ad)
                        }

                        override fun onAdFailedToLoad(adError: LoadAdError) {
                            Log.e("mLogAds", "$screenAdsId onAdFailedToLoad: $adError   ${adError.code}   ${adError.message}")
                        }
                    }
        }
 fun show(
        interstitialAd: InterstitialAd?,
        context: Context,
        screenAdsId: String,
        onAdClosed: () -> Unit
    ) {
                interstitialAd?.let { ad ->
                    ad.fullScreenContentCallback = object : FullScreenContentCallback() {
                        override fun onAdDismissedFullScreenContent() {
                            Log.i("mLogAds", "$screenAdsId onAdDismissedFullScreenContent")
                            onAdClosed()
                        }

                        override fun onAdFailedToShowFullScreenContent(adError: AdError) {
                            Log.e("mLogAds", "$screenAdsId onAdFailedToShowFullScreenContent: $adError")
                            onAdClosed()
                        }

                        override fun onAdShowedFullScreenContent() {
                            Log.i("mLogAds", "$screenAdsId onAdShowedFullScreenContent")
                        }
                    }
                    ad.show(context as androidx.activity.ComponentActivity)
                } ?: onAdClosed()
            }
    }

Так же я проверяю Consent перед стартом инициализации:

        consentInformation.requestConsentInfoUpdate(this, params, {
            if (consentInformation.isConsentFormAvailable) {
                UserMessagingPlatform.loadAndShowConsentFormIfRequired(this) { formError ->
                    Log.i("mLogAdsTest", "CONSENT SUCCESS")
                    viewModel.updateInitState(true)
                    if (consentInformation.canRequestAds()) {
                        Log.d("mLogAdsTest", "googleMobileAdsConsentManager.canRequestAds")
                        initializeMobileAdsSdk()
                    }
                }
            } else {
                if (consentInformation.canRequestAds()) {
                    initializeMobileAdsSdk()
                }
            }

И только если всё про инициализировано я стартую загрузку:

    private fun initializeMobileAdsSdk() {
                val coroutineExceptionHandler = CoroutineExceptionHandler { _, throwable ->
                    println(throwable.message)
                }
                val backgroundScope = CoroutineScope(Dispatchers.Main + coroutineExceptionHandler)
                MobileAds.setRequestConfiguration(
                    RequestConfiguration.Builder()
//                    .setTestDeviceIds(listOf(TEST_DEVICE_HASHED_ID))
                        .build()
                )
                backgroundScope.launch {
                    MobileAds.initialize(this@MainActivity) {
                        Log.e("mLogAdsTest", "INIT")
                        it.adapterStatusMap.forEach { s, adapterStatus ->
                            if (adapterStatus.initializationState.toString() == "READY") {
                                Log.i("mLogAdsTest", "READY")
                                viewModel.updateInitState(true)
                            }
                        }
                    }
                }
    }

CoroutineScope ставил так же и IO результат тот же

После этого я стартую загрузку рекламы:

viewModel.updateInitState(true) 

Так же я пробовал собрать совсем простой проект только с загрузкой и показом, без всего лишнего не помогло. Перенос MobileAds.initialize(this) в Application класс так же не работает. Повторная загрузка в onAdFailedToLoad() просто отдаёт тот же результат, реклама не грузится на протяжении всего первого запуска сколько не пробуй но со второго всё хорошо. При чём это касается не только иинтера. Пробовал версии библиотек 23.6.0 и 24.0.0, 24.0.1, 24.0.2 всё то же самое. Так же получаю такой же результат даже в проекте примере от самого Гугла.

Кто-то ещё сталкивался с подобным, это у меня что-то не так или это со стороны Гугла проблемы? И что можно сделать?


Ответы (0 шт):