開始使用

透過 AdMob 中介服務,您的應用程式就能從多個來源放送廣告,包括 AdMob 聯播網、第三方廣告聯播網和 AdMob 廣告活動。AdMob 中介服務會向多個聯播網傳送廣告請求,協助您找出最適合放送廣告的聯播網,進而提高供應率和收益。 個案研究

必要條件

您必須先將廣告格式整合至應用程式中,才能整合廣告格式:

第一次使用中介服務嗎?請參閱 AdMob 中介服務總覽

出價:Google Mobile Ads SDK 18.3.0 或以上版本。

初始化 Mobile Ads SDK

這份快速入門指南會說明如何初始化 Mobile SDK。在初始化呼叫期間,中介服務和出價轉接程式也會初始化。請務必等待初始化作業完成,再載入廣告,以確保在第一個廣告請求中,所有廣告聯播網都能完整參與。

下列程式碼範例說明如何在發出廣告請求之前,檢查每個轉接程式的初始化狀態。

Java

import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.initialization.AdapterStatus;
import com.google.android.gms.ads.initialization.InitializationStatus;
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;

public class MainActivity extends AppCompatActivity {

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MobileAds.initialize(this, new OnInitializationCompleteListener() {
            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {
                Map<String, AdapterStatus> statusMap = initializationStatus.getAdapterStatusMap();
                for (String adapterClass : statusMap.keySet()) {
                    AdapterStatus status = statusMap.get(adapterClass);
                    Log.d("MyApp", String.format(
                            "Adapter name: %s, Description: %s, Latency: %d",
                            adapterClass, status.getDescription(), status.getLatency()));
                }

                // Start loading ads here...
            }
        });
    }
}

Kotlin

import com.google.android.gms.ads.MobileAds

MobileAds.initialize(this) { initializationStatus ->
  val statusMap =
    initializationStatus.adapterStatusMap
  for (adapterClass in statusMap.keys) {
    val status = statusMap[adapterClass]
    Log.d("MyApp", String.format(
      "Adapter name: %s, Description: %s, Latency: %d",
      adapterClass, status!!.description, status.latency))
  }

  // Start loading ads here...
}

查看已載入廣告的廣告聯播網轉接程式類別

以下是記錄橫幅廣告廣告聯播網類別的名稱的程式碼範例:

Java

public void onAdLoaded() {
  Log.d("Banner adapter class name: " + ad.getResponseInfo().getMediationAdapterClassName());
}

Kotlin

override fun onAdLoaded() {
  Log.d("Banner adapter class name:" + ad.responseInfo.mediationAdapterClassName)
}

如要進一步瞭解此方法,請參閱 ResponseInfo getMediationAdapterClassName() 的說明文件。

使用活動執行個體初始化廣告物件

在新廣告物件的建構函式中 (例如 AdView)、必須傳入 Context 類型的物件。使用中介服務時,這個Context會傳遞給其他廣告聯播網。部分廣告聯播網需要 Context 屬於 Activity 類型的嚴格限制,可能無法在缺少 Activity 執行個體的情況下放送廣告。因此,建議您在初始化廣告物件時傳入 Activity 例項,確保與中介廣告聯播網保持一致。

對於在 AdMob 中介服務中使用的廣告單元,請務必停用所有第三方廣告聯播網使用者介面的重新整理功能。這可防止雙重重新整理,因為 AdMob 也會根據您的橫幅廣告單元的重新整理頻率觸發重新整理。

獎勵廣告中介服務

我們建議您在 AdMob UI 中設定獎勵值,藉此覆寫所有預設獎勵值。如要這麼做,請依序選取 「套用至中介服務群組中的所有聯播網」 ,確保所有聯播網的獎勵都一致。部分廣告聯播網根本不會提供獎勵值或類型。覆寫獎勵價值之後,無論哪個廣告聯播網放送廣告,獎勵都是一致的。

如要進一步瞭解如何在 AdMob UI 中設定獎勵價值,請參閱「建立獎勵廣告單元」。

原生廣告中介服務

以下是實作原生中介服務時的一些最佳做法。

原生廣告顯示政策
每個廣告聯播網都有自己的政策。使用中介服務時,請記得您的應用程式仍須遵循提供廣告的中介聯播網政策。
使用「loadAd()」,而非「loadAds()
loadAds() 方法目前僅適用於 Google 廣告。對於中介廣告,請改用 loadAd()

CCPA 和 GDPR

如果您需要遵循《加州消費者隱私法 (CCPA)》或《一般資料保護規則 (GDPR)》的規定,請按照 CCPA 設定GDPR 設定中的步驟,新增中介服務合作夥伴至「隱私權與訊息」的 CCPA 或 GDPR 廣告合作夥伴名單。 AdMob 否則可能會導致合作夥伴無法在應用程式中放送廣告。

進一步瞭解如何啟用 CCPA 受限的資料處理使用 Google User Messaging Platform (UMP) SDK 取得 GDPR 同意聲明