開始使用

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

先備知識

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

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

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

初始化 Mobile Ads SDK

快速入門指南將說明如何初始化 Mobile Ads 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);

        new Thread(
                () ->
                    // Initialize the Google Mobile Ads SDK on a background thread.
                    MobileAds.initialize(
                        this,
                        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...
                        }))
            .start();
    }
}

Kotlin

import com.google.android.gms.ads.MobileAds
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

class MainActivity : AppCompatActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    val backgroundScope = CoroutineScope(Dispatchers.IO)
    backgroundScope.launch {
      // Initialize the Google Mobile Ads SDK on a background thread.
      MobileAds.initialize(this@MainActivity) { 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 中介服務中使用的橫幅廣告單元,請務必停用所有第三方廣告來源 UI 中的重新整理功能。由於 AdMob 也會依據橫幅廣告單元的重新整理頻率觸發重新整理作業,因此可避免重新整理兩次。

搭配 AdMob 中介服務使用原生廣告

以下是在 AdMob 中介服務中導入原生廣告時,可參考的一些最佳做法。

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

美國州級隱私權法律和 GDPR

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

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