为 Ad Exchange 设置直接访问权限

Google 移动广告 SDK 支持使用 Ad Exchange 媒体资源通过应用创收。本指南将介绍如何为 Ad Exchange 支持的所有广告格式配置应用。

前提条件

配置应用以访问 Ad Exchange

通过 <meta-data> 标记(其中 android:name="com.google.android.gms.ads.APPLICATION_ID")将 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 网站媒体资源代码,后跟子级广告单元 ID,且不带尾部正斜杠,例如:ca-mb-app-pub-5629679302779023/banner

大功告成!您的应用现已准备好从 Ad Exchange 加载和展示横幅广告了。

此外,您还可以按照以下相应指南,使用 Ad Exchange 网站媒体资源从 Ad Exchange 加载和展示其他广告格式:

(仅限已获批准的欧洲发布商)添加底价

您可以申请使用“底价” 功能

获得批准后,您可以使用 pubfpvtf 参数分别在广告请求中添加公开底价或私下底价。在以下代码 示例中,将“123”替换为以微单位和您的 网络 的默认币种表示的底价。微单位应用示例:如果默认币种为 USD,输入“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();