透過 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 同意聲明。