您只需对代码稍做更改,便可在广告请求中合并原生广告和横幅广告。
前提条件
- Google 移动广告 SDK 11.0.0 或更高版本。
- 完成入门指南。
加载广告
自定义呈现的原生广告是使用 AdLoader
类加载的,该类具有自己的 AdLoader.Builder
类,可在广告制作过程中进行自定义。应用在构建 AdLoader
的过程中向其添加监听器,可指定它准备接收哪些类型的广告格式。然后,AdLoader
将仅请求这些类型。
AdLoader
对象还可以配置为发出可生成横幅广告或原生广告的广告请求。在构建过程中将 OnAdManagerAdViewLoadedListener
添加到 AdLoader
可指定横幅广告与原生广告展开竞争来填充广告请求。
以下代码演示了如何构建可在单个请求中加载原生广告或横幅广告的 AdLoader
:
Java
AdLoader adLoader = new AdLoader.Builder(context, "/6499/example/nativeandbanner") .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, and so on. } }) .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, "/6499/example/nativeandbanner") .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, and so on. } }) .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()
来实现。