中介服務
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
採用 AdMob 中介服務,應用程式即可放送眾多來源的廣告,包括 AdMob 聯播網、第三方廣告聯播網和 AdMob 廣告活動的廣告。AdMob 中介服務會向多個聯播網送出廣告請求,以確保您透過最合適的聯播網放送廣告,進而提高您的廣告供應率和收益。個案研究。
必要條件
如要整合廣告格式的中介服務,您必須先將該廣告格式整合至應用程式:
第一次使用中介服務嗎?請參閱 AdMob 中介服務總覽。
初始化 Mobile Ads SDK
本快速入門指南說明如何初始化 Mobile Ads SDK。在該初始化呼叫期間,中介服務轉接程式也會初始化。請務必等待初始化作業完成,再載入廣告,確保每個廣告聯播網都能完整參與第一次廣告請求。
以下程式碼範例說明如何在發出廣告請求前,檢查每個中介服務的初始化狀態。
// Initialize the Google Mobile Ads library
firebase::gma::Initialize(*app);
// In a game loop, monitor the initialization status
auto initialize_future = firebase::gma::InitializeLastResult();
if (initialize_future.status() == firebase::kFutureStatusComplete &&
initialize_future.error() == firebase::gma::kAdErrorCodeNone) {
// Initialization completed successfully, log the adapter status:
std::map<std::string, firebase::gma::AdapterStatus> adapter_status_map =
firebase::gma::GetInitializationStatus().GetAdapterStatusMap();
for (auto it = adapter_status_map.begin(); it != adapter_status_map.end(); ++it) {
std::string adapter_class_name = it->first;
firebase::gma::AdapterStatus adapter_status = it->second;
printf(“adapter: %s \t description: %s \t is_initialized: %d latency: %d\n”,
adapter_class_name.c_str(),
adapter_status.description().c_str(),
adapter_status.is_initialized(),
adpater_status.latency());
}
} else {
// Handle initialization error.
}
如要進一步瞭解如何使用 Future,請參閱「使用 Future 監控方法呼叫的完成狀態」。
檢查 adNetworkClassName
的值
每個廣告結果都包含擷取目前廣告的廣告聯播網類別名稱相關資訊。
以下是範例程式碼,可從 AdView
傳回的 AdResult
記錄廣告聯播網類別名稱。插頁式廣告和獎勵廣告可使用類似的程式碼:
firebase::Future<AdResult> load_ad_future = banner_view.loadAd(ad_request);
// In a game loop, monitor the ad load status
if (load_ad_future.status() == firebase::kFutureStatusComplete &&
load_ad_future.error() == firebase::gma::kAdErrorCodeNone) {
const AdResult* ad_result = load_ad_future.result();
printf(“Loaded ad with adapter class name: %s\n”,
ad_result->adapter_class_name().c_str());
} else {
// Handle the load ad error.
}
請務必在所有第三方廣告聯播網 UI 中,停用 AdMob 中介服務所用橫幅廣告單元的重新整理功能。這樣可避免重複重新整理,因為 AdMob 也會根據橫幅廣告單元的重新整理頻率觸發重新整理。
後續步驟
Google Mobile Ads C++ SDK 會包裝 Android 和 iOS SDK 實作項目,以進行中介服務。因此,包括中介服務介面卡安裝作業在內的後續設定,都僅適用於 Android 和 iOS 平台。詳情請參閱 Google Mobile Ads Android SDK 選擇聯播網指南和 Google Mobile Ads iOS SDK 選擇聯播網指南。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-09-05 (世界標準時間)。
[null,null,["上次更新時間:2025-09-05 (世界標準時間)。"],[[["\u003cp\u003eThe Google Mobile Ads C++ SDK is deprecated and will be end-of-maintenance on June 17, 2025; developers should use the iOS and Android SDKs instead.\u003c/p\u003e\n"],["\u003cp\u003eAdMob Mediation allows you to serve ads from multiple sources, including AdMob Network, third-party ad networks, and AdMob campaigns to maximize your fill rate and increase monetization.\u003c/p\u003e\n"],["\u003cp\u003eBefore integrating mediation, you must integrate the desired ad format (Banner, Interstitial, or Rewarded) into your app.\u003c/p\u003e\n"],["\u003cp\u003eInitialize the Mobile Ads SDK to ensure mediation adapters are initialized and wait for initialization to complete before loading ads for full ad network participation.\u003c/p\u003e\n"],["\u003cp\u003eFurther configuration and installation of mediation adapters are platform-specific (Android and iOS), so refer to the respective platform guides for detailed instructions.\u003c/p\u003e\n"]]],["The Google Mobile Ads C++ SDK is deprecated as of June 17, 2024, with maintenance ending June 17, 2025; developers should use the iOS and Android AdMob SDKs instead. AdMob Mediation allows serving ads from multiple sources to maximize fill rate. Before using mediation, integrate the ad formats (banner, interstitial, rewarded). Initialization of the Mobile Ads SDK includes mediation adapters. Developers can check adapter status and monitor ad network class names. For banner ads, disable refresh in third-party networks to prevent double refreshes. Further mediation configuration requires per-platform setup for Android and iOS.\n"],null,["| **DEPRECATED:** The Google Mobile Ads C++ SDK is *deprecated* as of June 17, 2024 and should not be adopted in projects that don't already use it. It will enter *End-of-Maintenance (EoM)* on June 17, 2025. Note that versions of the SDK released before the EoM date will continue to function, but no further bug fixes or changes will be released after the EoM date.\n|\n| Instead of the Google Mobile Ads C++ SDK, consider using the\n| [iOS](/admob/ios/quick-start) and\n| [Android](/admob/android/quick-start) SDKs from AdMob.\n| For support, reach out to the\n| [Google Mobile Ads SDK Technical Forum](https://groups.google.com/g/google-admob-ads-sdk).\n\n\u003cbr /\u003e\n\nAdMob Mediation is a feature that lets you serve ads to your apps from\nmultiple sources, including the AdMob Network, third-party ad networks, and\n[AdMob campaigns](//support.google.com/admob/answer/6162747). AdMob Mediation\nhelps maximize your fill rate and increase your monetization by sending ad\nrequests to multiple networks to ensure you find the best available network to\nserve ads.\n[Case study](//admob.google.com/home/resources/cookapps-grows-ad-revenue-86-times-with-admob-rewarded-ads-and-mediation/).\n\nPrerequisites\n\nBefore you can integrate mediation for an ad format, you need to integrate that\nad format into your app:\n\n- [Banner](/admob/cpp/banner)\n- [Interstitial](/admob/cpp/interstitial)\n- [Rewarded](/admob/cpp/rewarded)\n\nNew to mediation? Read [Overview of AdMob\nmediation](//support.google.com/admob/answer/3063564).\n\nInitialize the Mobile Ads SDK\n\nThe quick start guide shows you how to [initialize the Mobile Ads\nSDK](/admob/cpp/quick-start#initialize_the_mobile_ads_sdk).\nDuring that initialization call, mediation adapters also get\ninitialized. It is important to wait for initialization to complete before you\nload ads in order to ensure full participation from every ad network on the\nfirst ad request.\n\nThe sample code below shows how you can check each adapter's initialization\nstatus prior to making an ad request. \n\n // Initialize the Google Mobile Ads library\n firebase::gma::Initialize(*app);\n\n // In a game loop, monitor the initialization status\n auto initialize_future = firebase::gma::InitializeLastResult();\n\n if (initialize_future.status() == firebase::kFutureStatusComplete &&\n initialize_future.error() == firebase::gma::kAdErrorCodeNone) {\n // Initialization completed successfully, log the adapter status:\n std::map\u003cstd::string, firebase::gma::AdapterStatus\u003e adapter_status_map =\n firebase::gma::GetInitializationStatus().GetAdapterStatusMap();\n\n for (auto it = adapter_status_map.begin(); it != adapter_status_map.end(); ++it) {\n std::string adapter_class_name = it-\u003efirst;\n firebase::gma::AdapterStatus adapter_status = it-\u003esecond;\n printf(\"adapter: %s \\t description: %s \\t is_initialized: %d latency: %d\\n\",\n adapter_class_name.c_str(),\n adapter_status.description().c_str(),\n adapter_status.is_initialized(),\n adpater_status.latency());\n }\n } else {\n // Handle initialization error.\n }\n\nFor more information about working with Futures, see\n[Use Futures to monitor the completion status of method\ncalls](/admob/cpp/quick-start#futures).\n\nCheck the value of `adNetworkClassName`\n\nEach ad result contains information about the class name of the ad network that\nfetched the current ad.\n\nHere is a sample code that logs the ad network class name from an `AdResult`\nreturned from an `AdView`. Similar code can be used for interstitial and\nrewarded ads: \n\n firebase::Future\u003cAdResult\u003e load_ad_future = banner_view.loadAd(ad_request);\n\n // In a game loop, monitor the ad load status\n if (load_ad_future.status() == firebase::kFutureStatusComplete &&\n load_ad_future.error() == firebase::gma::kAdErrorCodeNone) {\n const AdResult* ad_result = load_ad_future.result();\n printf(\"Loaded ad with adapter class name: %s\\n\",\n ad_result-\u003eadapter_class_name().c_str());\n } else {\n // Handle the load ad error.\n }\n\nBanner ads mediation\n\nMake sure to disable refresh in all third-party ad networks UI for banner ad\nunits used in AdMob Mediation. This will prevent a double refresh since AdMob\nalso triggers a refresh based on your banner ad unit's refresh rate.\n\nNext steps\n\nThe Google Mobile Ads C++ SDK wraps the Android and iOS SDK implementations for\nmediation. Therefore further configuration, including the installation of\nmediation adapters, is specific to the Android and iOS platforms. For more\ninformation, see the [Google Mobile Ads Android SDK Choose networks\nguide](/admob/android/choose-networks) and the [Google\nMobile Ads iOS SDK Choose networks\nguide](/admob/ios/choose-networks)."]]