設定 Ad Exchange 的直接存取權

Google Mobile Ads SDK 支援使用Ad Exchange 資源來營利應用程式。本指南將說明如何針對 Ad Exchange 支援的所有廣告格式設定應用程式。

必要條件

設定應用程式以存取 Ad Exchange

透過 android:name="com.google.android.gms.ads.APPLICATION_ID" 中的 <meta-data> 標記,將 AdMob 應用程式 ID (顯示在 AdMob UI 中) 新增至應用程式的 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 Mobile Ads SDK,並選取要顯示的廣告格式。本指南的其餘部分會實作橫幅格式,說明如何從 Ad Exchange 載入廣告。同樣的步驟也適用於 Google Mobile Ads SDK 支援的任何廣告格式。

從 Ad Exchange 載入廣告

您可以在應用程式中使用 Ad Exchange 網站資源程式碼 (結尾加上正斜線),取代廣告單元 ID。

例如,如要載入橫幅廣告,請在 Activity 的版面配置中放置 AdManagerAdView,如下所示:

# main_activity.xml
...
  <com.google.android.gms.ads.admanager.AdManagerAdView
      xmlns:ads="http://schemas.android.com/apk/res-auto"
      android:id="@+id/adManagerAdView"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerHorizontal="true"
      android:layout_alignParentBottom="true"
      ads:adSize="BANNER"
      ads:adUnitId="ca-mb-app-pub-5629679302779023/">
  </com.google.android.gms.ads.admanager.AdManagerAdView>

請注意,如果未在 Ad Exchange 網站資源程式碼中加上結尾的正斜線 (如上圖所示),就會導致廣告請求錯誤,並顯示以下訊息:

Invalid Request. Cannot determine request type. Is your ad unit id correct?

請注意,您也可以將 Ad Exchange 網站資源代碼轉換為廣告單元。完成後,您可以使用 Ad Manager UI 產生 Ad Exchange 廣告代碼,然後將其複製到應用程式中。產生的廣告代碼應包含 Ad Exchange 網站資源程式碼,後面接著子項廣告單元 ID,且不含尾端斜線,例如: ca-mb-app-pub-5629679302779023/banner

或者,您也可以透過程式輔助方式建立 AdManagerAdView

JavaKotlin
AdManagerAdView adView = new AdManagerAdView(this);

adView.setAdSizes(AdSize.BANNER);
adView.setAdUnitId("ca-mb-app-pub-5629679302779023/");

// TODO: Add adView to your view hierarchy.
val adView = AdManagerAdView(this)

adView.adSizes = AdSize.BANNER
adView.adUnitId = "ca-mb-app-pub-5629679302779023/"

// TODO: Add adView to your view hierarchy.

AdManagerAdView 就位後,您就可以在 AdManagerAdView 類別中呼叫 loadAd() 方法,並使用廣告事件自訂廣告行為。

大功告成!您的應用程式現在可以載入並顯示 Ad Exchange 橫幅廣告。

此外,您也可以使用 Ad Exchange 網站資源,按照相關指南載入及顯示 Ad Exchange 的其他廣告格式:

(僅適用於已獲得核准的歐洲發布商) 新增底價

你可以申請使用「底價」功能

獲得核准後,您可以分別使用 pubfpvtf 參數,在廣告要求中加入公開底價或私人底價。在下列程式碼範例中,將「123」換成巨集中的底價和聯播網的預設幣別。微分應用方式的範例:如果預設貨幣為美元,輸入「6000000」等同於 $6.00 美元。

JavaKotlin
Bundle extras = new Bundle();
// Public floor parameter.
extras.putString("pubf", "123");
// Private floor parameter.
extras.putString("pvtf", "123");

AdManagerAdRequest request = new AdManagerAdRequest.Builder()
    .addNetworkExtrasBundle(AdMobAdapter.class, extras)
    .build();
val extras = Bundle();
// Public floor parameter.
extras.putString("pubf", "123");
// Private floor parameter.
extras.putString("pvtf", "123");

val request = AdManagerAdRequest.Builder()
    .addNetworkExtrasBundle(AdMobAdapter::class::java, extras)
    .build();