開始轉接

本指南說明如何整合中介服務轉接程式與 Android 應用程式。

必要條件

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

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

出價: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 說明文件。

透過活動例項初始化廣告物件

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

對於 Ad Manager 中介服務中使用的橫幅廣告單元,請務必停用所有第三方廣告聯播網 UI 中的重新整理功能。由於 Ad Manager 也會根據橫幅廣告單元的重新整理頻率觸發重新整理作業,因此這樣可以避免重複重新整理。

原生廣告中介服務

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

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

美國州級隱私權法律和 GDPR

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

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