只需对代码进行少量更改,您就可以在广告请求中同时使用原生广告和横幅广告。
前提条件
- Google 移动广告 SDK 11.0.0 版或更高版本。
- 通读入门指南。
加载广告
自定义呈现的原生广告通过 AdLoader 类加载,该类有自己的 AdLoader.Builder 类,可在广告制作过程中对广告进行自定义。应用在构建 AdLoader 的过程中会向其添加监听器,以指定它准备接收哪些类型的广告格式。这样,AdLoader 就会只请求这些类型的广告。
您还可以配置 AdLoader 对象,以发出可能会生成横幅广告或原生广告的广告请求。在构建 AdLoader 的过程中向其添加 OnAdManagerAdViewLoadedListener,可指定横幅广告应与原生广告竞争以填充请求。
以下代码演示了如何构建可在单个请求中加载原生广告或横幅广告的 AdLoader:
Java
AdLoader adLoader = new AdLoader.Builder(context, "/21775744923/example/native-and-banner") .forNativeAd(new NativeAd.OnNativeAdLoadedListener() { @Override public void onNativeAdLoaded(NativeAd nativeAd) { // Show the ad. } }) .forAdManagerAdView(new OnAdManagerAdViewLoadedListener() { @Override public void onAdManagerAdViewLoaded(AdManagerAdView adView) { // Show the banner ad. } }, AdSize.BANNER, AdSize.MEDIUM_RECTANGLE) .withAdListener(new AdListener() { @Override public void onAdFailedToLoad(LoadAdError error) { // Handle the failure by logging, altering the UI, etc. } }) .withAdManagerAdViewOptions(new AdManagerAdViewOptions.Builder() // Methods in the AdManagerAdViewOptions.Builder class can be // used here to specify individual options settings. .build()) .build();
Kotlin
val adLoader = AdLoader.Builder(this, "/21775744923/example/native-and-banner") .forNativeAd { nativeAd -> // Show the ad. } .forAdManagerAdView({ adView -> // Show the banner ad. }, AdSize.BANNER, AdSize.MEDIUM_RECTANGLE) .withAdListener(object: AdListener() { override fun onAdFailedToLoad(adError: LoadAdError) { // Handle the failure by logging, altering the UI, etc. } }) .withAdManagerAdViewOptions(AdManagerAdViewOptions.Builder() // Methods in the AdManagerAdViewOptions.Builder class can be // used here to specify individual options settings. .build()) .build()
forAdManagerAdView() 方法会准备 AdLoader 以接收横幅广告。调用 forAdManagerAdView() 时,必须在 OnAdManagerAdViewLoadedListener 旁边指定一个包含有效广告尺寸的可变长度列表。
若要发出有效的广告请求,必须至少指定一个有效的广告尺寸。当横幅广告成功加载后,会调用指定监听器对象的 onAdManagerAdViewLoaded() 方法。
设置 AdViewOptions 对象
在 AdLoader 的创建过程中,包含的最后一个函数是另一个可选方法 withAdManagerAdViewOptions():
Java
.withAdManagerAdViewOptions(new AdManagerAdViewOptions.Builder() // Methods in the AdManagerAdViewOptions.Builder class can be // used here to specify individual banner options settings. .build()
Kotlin
.withAdManagerAdViewOptions(AdManagerAdViewOptions.Builder() // Methods in the AdManagerAdViewOptions.Builder class can be // used here to specify individual banner options settings. .build()
借助 AdManagerAdViewOptions 对象,发布商可以为 AdLoader 加载的横幅设置特定选项,例如:
setManualImpressionsEnabled()- 针对 Google Ad Manager 预订启用手动展示次数报告。使用手动记录展示次数的应用可以自行确定何时应记录展示次数,并通过调用
AdManagerAdView.recordManualImpression()来实现此目的。