Google 移动广告 SDK 支持通过 Ad Exchange 资源创收。本指南介绍了如何针对 Ad Exchange 支持的所有广告格式配置应用。
前提条件
配置应用以访问 Ad Exchange
通过包含 android:name="com.google.android.gms.ads.APPLICATION_ID"
的 <meta-data>
标记,将您的 Ad Manager 应用 ID(可在 Ad Manager 界面中找到)添加到应用的 AndroidManifest.xml 文件中。对于 android:value
,请插入您自己的 Ad Manager 应用 ID,并用英文引号引起来。
<manifest>
<application>
<!-- Sample Ad Manager app ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
</application>
</manifest>
另请注意,如果未能如上所示添加 <meta-data>
代码,会导致崩溃,并显示以下消息:
Missing application ID.
接下来,您可以初始化 Google 移动广告 SDK 并选择要展示的广告格式。本指南的其余部分将实现横幅格式,以说明如何从 Ad Exchange 加载广告。这些步骤同样适用于 Google 移动广告 SDK 支持的任何广告格式。
从 Ad Exchange 加载广告
您可以使用带有尾部正斜线的 Ad Exchange 网站媒体资源代码来代替广告单元 ID。例如 ca-mb-app-pub-5629679302779023/
。
以下示例将 Ad Exchange 网站媒体资源代码添加到了横幅广告请求中:
Kotlin
val adRequest = BannerAdRequest.Builder("ca-mb-app-pub-5629679302779023/", AdSize.BANNER).build()
BannerAd.load(
adRequest,
object : AdLoadCallback<BannerAd> {
override fun onAdLoaded(ad: BannerAd) {
bannerAd = ad
activity?.runOnUiThread {
binding.bannerViewContainer.addView(ad.getView(requireActivity()))
}
}
}
)
Java
BannerAdRequest adRequest = new BannerAdRequest.Builder("ca-mb-app-pub-5629679302779023/",
AdSize.BANNER).build();
BannerAd.load(
adRequest,
new AdLoadCallback<BannerAd>() {
@Override
public void onAdLoaded(@NonNull BannerAd ad) {
bannerAd = ad;
runOnUiThread(
() -> binding.bannerViewContainer.addView(ad.getView(MainActivity.this)));
}
});
请注意,如果未能向 Ad Exchange 网站资源代码添加尾随正斜杠,会导致广告请求错误,并显示以下消息:
Invalid Request. Cannot determine request type. Is your ad unit id correct?
您还可以将 Ad Exchange 网站媒体资源代码转换为广告单元。
然后,使用 Ad Manager 界面生成 Ad Exchange 代码,并将其复制到您的应用中。生成的代码应包含 Ad Exchange Web 资源代码,后跟子级广告单元 ID(不含尾部正斜杠),例如:ca-mb-app-pub-5629679302779023/banner
。
大功告成!您的应用现已准备好加载和展示 Ad Exchange 横幅广告了。
此外,您还可以按照以下相应指南,使用 Ad Exchange 网站媒体资源加载和展示 Ad Exchange 中的其他广告格式:
(仅限已获批准的欧洲发布商)添加底价
您可以申请使用“底价”功能。
获得批准后,您可以使用 pubf
和 pvtf
参数在广告请求中分别添加公开底价和私密底价。在以下代码示例中,将“123”替换为以微为单位的底价和您广告资源的默认币种。微的运用示例:如果您的默认币种是美元,那么输入“6000000”相当于 6.00 美元。
Kotlin
val extras = Bundle();
// Public floor parameter.
extras.putString("pubf", "123");
// Private floor parameter.
extras.putString("pvtf", "123");
val request = AdRequest.Builder("ca-mb-app-pub-5629679302779023/")
.setGoogleExtrasBundle(extras)
.build();
Java
Bundle extras = new Bundle();
// Public floor parameter.
extras.putString("pubf", "123");
// Private floor parameter.
extras.putString("pvtf", "123");
AdRequest request = new AdRequest.Builder("ca-mb-app-pub-5629679302779023/")
.setGoogleExtrasBundle(extras)
.build();