加载单个开屏广告

具有单次加载 API 的 SDK。

开屏广告是一种特殊的广告格式,适合希望通过应用加载页面变现的发布商。开屏广告在用户将您的应用切换为在前台运行时展示,用户可随时关闭。

如需了解详情,请参阅开屏广告指南

本指南介绍了如何将开屏广告植入到 Android 应用中。

前提条件

设置 GMA Next-Gen SDK

务必用测试广告进行测试

在构建和测试应用时,请确保使用的是测试广告,而不是实际投放的广告。否则,可能会导致您的账号被中止。

如需加载测试广告,请使用 Android 应用开屏广告的专用测试广告单元 ID:

ca-app-pub-3940256099942544/9257395921

此广告单元 ID 已经过专门配置,可确保每个请求返回的都是测试广告。您可以在自己应用的编码、测试和调试过程中随意使用该测试广告单元 ID。请务必在发布应用前用您自己的广告单元 ID 替换该测试广告单元 ID。

如需详细了解 GMA Next-Gen SDK 测试广告,请参阅启用测试广告

加载广告

以下示例展示了如何加载单个广告:

Kotlin

// Load ads after you initialize MobileAds.
AppOpenAd.load(
  AdRequest.Builder(adUnitId).build(),
  object : AdLoadCallback<AppOpenAd> {
    override fun onAdLoaded(ad: AppOpenAd) {
      // App open ad loaded.
      appOpenAd = ad
    }

    override fun onAdFailedToLoad(adError: LoadAdError) {
      // App open ad failed to load.
      Log.e(TAG, "App open ad failed to load: ${adError.message}")
      appOpenAd = null
    }
  },
)

Java

// Load ads after you initialize MobileAds.
AppOpenAd.load(
    new AdRequest.Builder(adUnitId).build(),
    new AdLoadCallback<AppOpenAd>() {
      @Override
      public void onAdLoaded(AppOpenAd ad) {
        // App open ad loaded.
        appOpenAd = ad;
      }

      @Override
      public void onAdFailedToLoad(LoadAdError adError) {
        // App open ad failed to load.
        Log.e(TAG, "App open ad failed to load: " + adError.getMessage());
        appOpenAd = null;
      }
    });

在测试时,请使用测试广告单元 ID:ca-app-pub-3940256099942544/9257395921

展示广告

如需展示开屏广告,请使用 show 方法。

Kotlin

private fun showAd(appOpenAd: AppOpenAd, activity: Activity) {
  // Show the ad.
  appOpenAd.show(activity)
}

Java

private void showAd(AppOpenAd appOpenAd, Activity activity) {
  // Show the ad.
  appOpenAd.show(activity);
}

监听广告事件

在展示广告之前,请监听广告生命周期事件:

Kotlin

private fun listenToAdEvents() {
  // Listen for ad events.
  val ad = appOpenAd
  if (ad == null) {
    Log.e(TAG, "App open ad is not ready yet.")
    return
  }

  ad.adEventCallback =
    object : AppOpenAdEventCallback {
      override fun onAdShowedFullScreenContent() {
        // App open ad did show.
      }

      override fun onAdDismissedFullScreenContent() {
        // App open ad did dismiss.
        appOpenAd = null
      }

      override fun onAdFailedToShowFullScreenContent(
        fullScreenContentError: FullScreenContentError
      ) {
        // App open ad failed to show.
        Log.e(TAG, "App open ad failed to show: ${fullScreenContentError.message}")
      }

      override fun onAdImpression() {
        // App open ad did record an impression.
      }

      override fun onAdClicked() {
        // App open ad did record a click.
      }
    }
}

Java

private void listenToAdEvents() {
  // Listen for ad events.
  if (appOpenAd == null) {
    Log.e(TAG, "App open ad is not ready yet.");
    return;
  }

  appOpenAd.setAdEventCallback(
      new AppOpenAdEventCallback() {
        @Override
        public void onAdShowedFullScreenContent() {
          // App open ad did show.
        }

        @Override
        public void onAdDismissedFullScreenContent() {
          // App open ad did dismiss.
          appOpenAd = null;
        }

        @Override
        public void onAdFailedToShowFullScreenContent(
            @NonNull FullScreenContentError fullScreenContentError) {
          // App open ad failed to show.
          Log.e(TAG, "App open ad failed to show: " + fullScreenContentError.getMessage());
        }

        @Override
        public void onAdImpression() {
          // App open ad did record an impression.
        }

        @Override
        public void onAdClicked() {
          // App open ad did record a click.
        }
      });
}

冷启动和加载屏幕

冷启动是指应用从头开始启动,例如,当用户首次打开应用或在内存终止后打开应用时,就会发生冷启动。在冷启动期间,您没有预先加载好的开屏广告可供立即展示。

由于广告请求延迟,用户可能会在开屏广告展示之前与您的应用互动。为避免造成不佳的用户体验,在冷启动时,请务必仅在加载应用资源期间从加载屏幕中展示开屏广告。如果资源加载完成,并且用户在广告加载之前到达主要内容,则不要展示广告。

在后台线程中加载应用素材资源,以便在广告展示时继续加载。

最佳做法

请遵循以下开屏广告最佳实践:

  • 仅在用户多次打开您的应用后才展示第一个开屏广告。
  • 仅在用户等待您的应用加载时展示开屏广告。
  • 如果加载屏幕在广告展示期间完成加载,请在广告关闭回调方法中关闭加载屏幕。