開始使用

AdMob 中介服務這項功能可讓您的應用程式放送眾多來源 (包括 AdMob 聯播網、第三方廣告聯播網和 AdMob 廣告活動) 的廣告。AdMob 中介服務會向多個聯播網送出廣告請求,以確保您透過最合適的聯播網放送廣告,進而提高您的廣告供應率和收益。個案研究

必要條件

您必須先在應用程式中整合該廣告格式,才能整合廣告格式的中介服務:

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

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

初始化 Mobile Ads SDK

快速入門指南將說明如何初始化行動廣告 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)
}

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

使用活動例項初始化廣告物件

在新廣告物件的建構函式中 (例如 AdView)、您必須傳入 Context 類型的物件。使用中介服務時,這個 Context 會傳遞給其他廣告聯播網。部分廣告聯播網需要較嚴格的 Context 類型為 Activity,因此如果沒有 Activity 執行個體,可能無法放送廣告。因此,建議您在初始化廣告物件時傳入 Activity 例項,確保中介服務廣告聯播網能享有一致的體驗。

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

獎勵廣告中介服務

建議您在 AdMob UI 中設定獎勵值,覆寫所有預設獎勵價值。方法很簡單,只要選取「套用到中介服務群組中的所有聯播網」 方塊,即可讓獎勵在所有聯播網中保持一致。有些廣告聯播網完全不提供獎勵價值或類型。覆寫獎勵值時,無論廣告是透過哪個廣告聯播網放送,獎勵都會保持一致。

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

原生廣告中介服務

以下是導入原生中介服務時可考慮的一些最佳做法。

原生廣告展示政策
每個廣告聯播網都有各自的政策。使用中介服務時,請務必記住,您的應用程式仍須遵守提供廣告的中介服務聯播網政策。
loadAd() 取代 loadAds()
loadAds() 方法目前只會放送 Google 廣告。如果是中介服務廣告,請改用 loadAd()

CCPA 和 GDPR

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

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