橫幅廣告會占據應用程式版面配置的一部分,通常位於裝置畫面頂端或底部。使用者操作應用程式時,這類廣告會持續停留在畫面上,並能定時自動重新整理內容。如果您剛接觸行動廣告,這是很好的入門選擇。個案研究。
必要條件
- 完成入門指南步驟。
- (僅限 Android) 熟悉如何使用 JNI
jobject
參照 (請參閱「Android JNI 提示」)。
一律使用測試廣告進行測試
建構及測試應用程式時,請務必使用測試廣告,而非實際的正式廣告。否則帳戶可能會遭到停權。
如要載入測試廣告,最簡單的方法是使用橫幅廣告專用的測試廣告單元 ID,這會因裝置平台而異:
- Android:
ca-app-pub-3940256099942544/6300978111
- iOS:
ca-app-pub-3940256099942544/2934735716
這些廣告單元 ID 經過特別設定,可針對每項要求傳回測試廣告。您編寫程式碼、測試及偵錯時,可以在自己的應用程式中自由使用。發布應用程式前,請務必將這類 ID 替換為自己的廣告單元 ID。
如要進一步瞭解 Mobile Ads SDK 測試廣告的運作方式,請參閱「測試廣告」。
導入作業
設定 AdView
橫幅廣告會顯示在 AdView
物件中,因此整合橫幅廣告的第一步,就是建立並放置 AdView
。
在應用程式的 C++ 程式碼中加入下列標頭:
#include "firebase/gma/ad_view.h"
宣告並例項化
AdView
物件:firebase::gma::AdView* ad_view; ad_view = new firebase::gma::AdView();
建立
AdSize
,並使用AdParent
父項檢視區塊初始化廣告檢視區塊。父項檢視區塊是 AndroidActivity
的 JNIjobject
參照,或是 iOSUIView
指標,並轉換為AdParent
型別:// my_ad_parent is a jobject reference // to an Android Activity or a pointer to an iOS UIView. firebase::gma::AdParent ad_parent = static_cast<firebase::gma::AdParent>(my_ad_parent); firebase::Future
result = ad_view->Initialize(ad_parent, kBannerAdUnit, firebase::gma::AdSize::kBanner); 除了將 Future 保留為變數,您也可以在
AdView
物件上叫用InitializeLastResult()
,定期檢查初始化作業的狀態。這有助於追蹤全域遊戲迴圈中的初始化程序。// Monitor the status of the future in your game loop: firebase::Future<void> result = ad_view->InitializeLastResult(); if (result.status() == firebase::kFutureStatusComplete) { // Initialization completed. if(future.error() == firebase::gma::kAdErrorCodeNone) { // Initialization successful. } else { // An error has occurred. } } else { // Initialization on-going. }
如要進一步瞭解如何使用
firebase::Future
,請參閱「使用 Futures 監控方法呼叫的完成狀態」。
設定廣告位置
初始化 AdView
後,您可以隨時設定其位置:
firebase::Future<void> result = ad_view->SetPosition(firebase::gma::AdView::kPositionTop);
載入廣告
初始化 AdView
後,即可載入廣告:
firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result = ad_view->LoadAd(my_ad_request);
AdRequest
物件代表單一廣告請求,當中包含指定目標等資訊的屬性。
顯示廣告
最後,呼叫 Show()
,在畫面上顯示廣告。廣告初始化後,隨時可以呼叫這個方法:
firebase::Future<void> result = ad_view->Show();
廣告事件
Google Mobile Ads C++ SDK 提供 AdListener
類別,您可以擴充並傳遞至 AdView::SetListener()
,以便接收廣告檢視區塊狀態變更的通知。
擴充 AdListener
中的方法是選用做法,因此只要導入符合需求的方法即可。以下是類別的實作範例,該類別會擴充所有 AdListener
方法類別:
class ExampleAdListener : public firebase::gma::AdListener { public: ExampleAdListener() {} void OnAdClicked() override { // This method is invoked when the user clicks the ad. } void OnAdClosed() override { // This method is invoked when the user closes the ad. } void OnAdImpression() override { // This method is invoked when an impression is recorded for an ad. } void OnAdOpened() override { // This method is invoked when an ad opens an overlay that covers the screen. } }; ExampleAdListener* ad_listener = new ExampleAdListener(); ad_view->SetAdListener(ad_listener);
橫幅廣告大小
下表列出標準橫幅廣告的大小。
尺寸 (寬 x 高,以點為單位) | 說明 | 可用性 | firebase::gma::AdSize 常數 |
---|---|---|---|
320x50 | 橫幅 | 手機和平板電腦 | kBanner |
320x100 | 大型橫幅 | 手機和平板電腦 | kLargeBanner |
300x250 | IAB 中矩形廣告 | 手機和平板電腦 | kMediumRectangle |
468x60 | IAB 完整橫幅廣告 | 平板電腦 | kFullBanner |
728x90 | IAB 超級橫幅廣告 | 平板電腦 | kLeaderboard |
提供的寬度 x 自動調整高度 | 自動調整橫幅廣告 | 手機和平板電腦 | 不適用 |
自訂廣告大小
如要定義自訂橫幅大小,請使用寬度和高度參數,透過 firebase::gma::AdSize
建構函式設定所需維度,如下所示:
firebase::gma::AdSize ad_size(/*width=*/320, /*height=*/50);
其他資源
GitHub 中的範例
- 在 GitHub 中查看範例快速入門應用程式的原始碼。
成功案例
- 用途範例。