開始使用

AdMob 中介是一項功能,可讓您從多個來源(包括 AdMob 網絡、第三方廣告網絡和AdMob 廣告系列)向您的應用投放廣告。 AdMob 中介通過向多個網絡發送廣告請求以確保您找到最佳的可用網絡來投放廣告,從而幫助您最大限度地提高填充率並提高您的獲利能力。案例研究

先決條件

在為廣告格式集成中介之前,您需要將該廣告格式集成到您的應用中:

剛接觸調解?閱讀 AdMob 中介概述

出價:Google 移動廣告 SDK 18.3.0或更高版本。

初始化移動廣告 SDK

快速入門指南向您展示瞭如何初始化移動廣告 SDK 。在該初始化調用期間,中介和出價適配器也會被初始化。在加載廣告之前等待初始化完成非常重要,以確保每個廣告網絡都充分參與第一個廣告請求。

下面的示例代碼顯示瞭如何在發出廣告請求之前檢查每個適配器的初始化狀態。

爪哇

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...
            }
        });
    }
}

科特林

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...
}

檢查哪個廣告網絡適配器類加載了廣告

以下是一些記錄橫幅廣告的廣告網絡類名稱的示例代碼:

爪哇

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

科特林

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

有關此方法的詳細信息,請參閱getMediationAdapterClassName()上的ResponseInfo文檔。

使用 Activity 實例初始化您的廣告對象

在新廣告對象(例如AdView )、的構造函數中,您必須傳入一個Context類型的對象。使用中介時,此Context會傳遞給其他廣告網絡。一些廣告網絡需要更嚴格的Activity類型的Context ,並且可能無法在沒有Activity實例的情況下投放廣告。因此,我們建議在初始化廣告對象時傳入一個Activity實例,以確保與您的中介廣告網絡的體驗一致。

確保在所有第三方廣告網絡 UI 中為 AdMob 中介中使用的橫幅廣告單元禁用刷新。這將防止雙重刷新,因為 AdMob 還會根據您的橫幅廣告單元的刷新率觸髮刷新。

獎勵廣告中介

我們建議您通過在 AdMob UI 中設置獎勵值來覆蓋所有默認獎勵值。為此,請選擇 應用於中介組中的所有網絡時覆蓋來自第三方廣告網絡的獎勵設置,以便獎勵在所有網絡中保持一致。一些廣告網絡根本不提供獎勵值或類型。通過覆蓋獎勵值,無論哪個廣告網絡投放廣告,獎勵都是一致的。

有關在 AdMob 用戶界面中設置獎勵值的更多信息,請參閱創建獎勵廣告單元

原生廣告中介

以下是實施原生中介時要考慮的一些最佳做法。

原生廣告展示政策
每個廣告網絡都有自己的政策。使用中介時,請務必記住,您的應用仍需遵守提供廣告的中介網絡的政策。
使用loadAd()而不是loadAds()
loadAds()方法目前僅提供 Google 廣告。對於中介廣告,請改用loadAd()