【问题标题】:AdMob interstitial ads are slow to loadAdMob 插页式广告加载缓慢
【发布时间】:2021-03-30 03:59:36
【问题描述】:

我在我的应用程序中放置了一些插页式广告,当我单击按钮进入新活动时,广告就会放置在其中。 但是,我无法在广告还在加载的时候进入活动,有时广告会在一段时间后出现,因此在此期间我无法进入目标活动。

有没有办法让插页式广告快速出现,或者有什么解决方案让用户不会认为我的应用有错误?

这是我的代码:

loadInterstitial();

    findViewById(R.id.btn2).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (interstitialAd !=null) {
                interstitialAd.show(MainActivity.this);

                interstitialAd.setFullScreenContentCallback(new FullScreenContentCallback(){
                    @Override
                    public void onAdDismissedFullScreenContent() {
                        // Saat iklan ditutup
                        loadInterstitial();
                        startActivity(new Intent(MainActivity.this, Tips.class));
                    }

                    @Override
                    public void onAdFailedToShowFullScreenContent(AdError adError) {
                        // Saat iklan gagal muncul
                        Toast.makeText(getApplicationContext(), getString(R.string.on_ad_failed_show_fs), Toast.LENGTH_SHORT).show();
                    }

                    @Override
                    public void onAdShowedFullScreenContent() {
                        // saat iklan sudah muncul
                        interstitialAd = null;
                    }
                });
            }
        }
    });

    
private void loadInterstitial() {
    InterstitialAd.load(this, "ca-app-pub-0420793xxxxxxx/xxxxxx", new AdRequest.Builder().build(),
            new InterstitialAdLoadCallback() {
                @Override
                public void onAdLoaded(@NonNull InterstitialAd interstitial) {
                    // Saat iklan berhasil dimuat
                    interstitialAd = interstitial;
                }

                @Override
                public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
                    // Saat iklan gagal dimuat
                    interstitialAd = null;
                    startActivity(new Intent(MainActivity.this, Tips.class));
                    Toast.makeText(getApplicationContext(), getString(R.string.on_ad_failed_to_load) + loadAdError.getMessage(),
                            Toast.LENGTH_SHORT).show();
                }
            });
}

【问题讨论】:

    标签: android admob ads


    【解决方案1】:

    Google AdMob Help 部分所述:

    运营商网络延迟可能会影响您的移动应用中插页式广告的投放。这种延迟可能会导致广告在不合时宜或意外的时间出现在用户的屏幕上。考虑用户在预期显示插页式广告的时间窗口内可能会做什么,并考虑预加载您的插页式广告以减少向用户展示时的延迟。

    Interstitial Ads documentation 以及提供的最佳实践中,还有这个有用的提示:

    留出足够的加载时间。 正如确保在适当的时间展示插页式广告很重要一样,确保用户不必等待它们加载也很重要。在您打算调用 show() 之前通过调用 loadAd() 提前加载广告可以确保您的应用在显示时准备好完全加载的插页式广告。

    因此,建议您尽早调用 loadInterstitial() 函数来预加载您的广告,以尽可能多地为其提供加载时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多