橫幅廣告

橫幅廣告會占用應用程式版面配置中的位置,顯示在裝置螢幕頂端或底部。使用者與應用程式互動時,這類廣告會固定顯示在畫面上,且經過一段時間會自動重新整理。如果您剛開始放送行動廣告,建議先從這些廣告活動著手。個案研究

必要條件

  • 完成「開始使用」
  • (僅限 Android) 熟悉如何使用 JNI jobject 參照 (請參閱「Android JNI 提示」)。

一律使用測試廣告進行測試

建構及測試應用程式時,請務必使用測試廣告,而非實際的正式廣告。否則帳戶可能會遭到停權。

如要載入測試廣告,最簡單的方法是使用橫幅專用的測試廣告單元 ID,這類 ID 會因裝置平台而異:

  • Android:ca-app-pub-3940256099942544/6300978111
  • iOS:ca-app-pub-3940256099942544/2934735716

這些廣告單元 ID 經過特別設定,每次要求都會傳回測試廣告,您可以在編寫程式碼、測試及偵錯時,自由地在自己的應用程式中使用。發布應用程式前,請務必將其替換為自己的廣告單元 ID。

如要進一步瞭解 Mobile Ads SDK 測試廣告的運作方式,請參閱「測試廣告」。

導入作業

設定 AdView

橫幅廣告會顯示在 AdView 物件中,因此整合橫幅廣告的第一步是建立並放置 AdView

  1. 在應用程式的 C++ 程式碼中加入下列標頭:

     #include "firebase/gma/ad_view.h"
  2. 宣告並例項化 AdView 物件:

      firebase::gma::AdView* ad_view;
      ad_view = new firebase::gma::AdView();
  3. 建立 AdSize,並使用 AdParent 父項檢視區塊初始化廣告檢視區塊。父項檢視區塊是 Android Activity 的 JNI jobject 參照,或是 iOS UIView 指標,並轉換為 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);
  4. 除了將 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.
      }
    
  5. 如要進一步瞭解如何使用 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 中的範例

成功案例