橫幅廣告

橫幅廣告是會佔用應用程式的部分版面的矩形廣告。他們 會固定在使用者與應用程式互動時,固定在畫面上顯示 使用者捲動畫面時,螢幕頂端或底部,或是內嵌到內容旁邊。橫幅 廣告會在一段時間後自動重新整理查看橫幅廣告總覽 瞭解詳情

本指南說明如何開始使用錨定廣告 自動調整橫幅廣告 進而盡量提高成效 指定的廣告寬度

錨定自動調整橫幅廣告是固定的顯示比例廣告,而非一般廣告的 固定大小的廣告。長寬比與 320x50 的業界標準相似。一次 請指定可用的完整寬度,系統就會傳回 決定該寬度的高度所有要求,理想的高度不會改變 而且周圍的檢視畫面不需要隨著廣告移動 重新整理。

必要條件

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

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

要載入測試廣告,最簡單的方法是使用我們專屬的測試廣告單元編號。 Android 橫幅:

/21775744923/example/adaptive-banner

這項廣告單元已特別設定為針對每項要求傳回測試廣告,您可以在編寫程式碼、測試及偵錯時,在自己的應用程式中使用這項廣告單元。只要確定 請先改用您自己的廣告單元 ID,再發布應用程式。

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

在版面配置中新增 AdManagerAdView

顯示橫幅的第一步是放置 AdManagerAdView 放入應用程式版面配置中

Java

// Create a new ad view.
adView = new AdManagerAdView(this);
adView.setAdUnitId(AD_UNIT);
adView.setAdSize(getAdSize());

// Replace ad container with new ad view.
adContainerView.removeAllViews();
adContainerView.addView(adView);

Kotlin

// Create a new ad view.
val adView = AdManagerAdView(this)
adView.adUnitId = AD_UNIT_ID
adView.setAdSize(adSize)
this.adView = adView

// Replace ad container with new ad view.
binding.adViewContainer.removeAllViews()
binding.adViewContainer.addView(adView)

載入廣告

AdManagerAdView 設定完畢後,下一步就是 並載入廣告這就是loadAd() AdManagerAdView 類別中的方法。這需要 AdManagerAdRequest 參數,用來儲存 單一廣告請求

以下範例說明如何載入廣告:

Java

// Start loading the ad in the background.
AdManagerAdRequest adRequest = new AdManagerAdRequest.Builder().build();
adView.loadAd(adRequest);

Kotlin

// Start loading the ad in the background.
val adRequest = AdManagerAdRequest.Builder().build()
adView.loadAd(adRequest)

如果廣告無法載入,您就不需要明確請求其他廣告 前提是廣告單元已經設定重新整理Google Mobile Ads SDK 採用您在 Ad Manager 中指定的任何重新整理頻率 網頁介面上。如果您尚未啟用重新整理功能,就必須發出新的要求。

大功告成!您的應用程式現在可以顯示橫幅廣告了。

廣告事件

您可以監聽廣告生命週期中的多個事件,包括載入、 廣告曝光和點擊事件,以及廣告開啟和關閉事件。建議 來設定回呼,再載入橫幅廣告。

Java

adView.setAdListener(new AdListener() {
    @Override
    public void onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    @Override
    public void onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    @Override
    public void onAdFailedToLoad(LoadAdError adError) {
      // Code to be executed when an ad request fails.
    }

    @Override
    public void onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    @Override
    public void onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    @Override
    public void onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
});

Kotlin

adView.adListener = object: AdListener() {
    override fun onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    override fun onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    override fun onAdFailedToLoad(adError : LoadAdError) {
      // Code to be executed when an ad request fails.
    }

    override fun onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    override fun onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    override fun onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
}

指令列中每個可覆寫的方法 AdListener敬上 對應至廣告生命週期中的事件。

可覆寫的方法
onAdClicked() onAdClicked() 方法。
onAdClosed() onAdClosed() 方法會在使用者觀看廣告的 到達網頁網址。您的應用程式可以使用它恢復已暫停的活動。 執行任何其他必要工作,準備好進行互動。
onAdFailedToLoad() onAdFailedToLoad() 是唯一包含參數的方法。類型的錯誤參數 LoadAdError 說明發生的錯誤。如需更多資訊 請參閱廣告載入錯誤偵錯 說明文件
onAdImpression() onAdImpression() 方法,系統就會呼叫此方法。
onAdLoaded() onAdLoaded() 方法會在廣告載入完畢後執行。如果您想延後將 AdManagerAdView 新增至活動或片段,直到您確定廣告會載入為止,例如,您可以在此處執行此操作。
onAdOpened() onAdOpened() 方法會在廣告開啟會覆蓋整個畫面時叫用。

影片廣告的硬體加速

為了讓影片廣告在橫幅廣告檢視中成功顯示,硬體: 加速必須 。

硬體加速功能預設為啟用,但部分應用程式可能會選擇停用 基礎架構如果您的應用程式有這種情況,建議您為下列應用程式啟用硬體加速功能: 使用廣告的 Activity 類別。

啟用硬體加速

如果全域開啟硬體加速時,您的應用程式無法正常運作,也可以個別控制各項活動。如要啟用或 停用硬體加速時,您可以使用 android:hardwareAccelerated 屬性的 <application><activity> AndroidManifest.xml 中的元素。以下範例會啟用硬體 但會針對單一活動停用此功能:

<application android:hardwareAccelerated="true">
    <!-- For activities that use ads, hardwareAcceleration should be true. -->
    <activity android:hardwareAccelerated="true" />
    <!-- For activities that don't use ads, hardwareAcceleration can be false. -->
    <activity android:hardwareAccelerated="false" />
</application>

請參閱硬體加速 指南 控制硬體加速的選項。請注意,如果活動已停用,則無法為個別廣告檢視畫面啟用硬體加速功能,因此活動本身必須已啟用硬體加速功能。

以人工方式計算曝光次數

手動計算曝光次數只適用於直接銷售和內部廣告 內含直接在 Ad Manager 投放廣告素材的廣告活動。這不該 用於候補廣告或第三方聯播網廣告詳情請參閱「計算曝光和點擊次數」。

如果有特殊條件,您可以手動將曝光連線偵測 (ping) 傳送至 Ad Manager 條件。如要這麼做,請啟用 AdManagerAdRequest:在載入廣告前手動計算曝光次數:

Java

AdManagerAdRequest adRequest = new AdManagerAdRequest.Builder()
    .setManualImpressionsEnabled(true)
    .build();

Kotlin

val adRequest = AdManagerAdRequest.Builder()
    .setManualImpressionsEnabled(true)
    .build()

當您認為廣告已經成功傳回並顯示在畫面上時, 但您可以手動記錄曝光:

Java

{ ad_view }.recordManualImpression();

Kotlin

AdManagerAdView.recordManualImpression()

應用程式事件

應用程式事件可讓您建立廣告,以便傳送訊息到應用程式的程式碼。應用程式 就能依據這些訊息採取動作

您可以使用 AppEventListener 監聽 Ad Manager 專屬的應用程式事件。 這些事件可能會在廣告生命週期的任何時間點發生,即使是在 系統會呼叫 onAdLoaded()

Java

public interface AppEventListener {
  void onAppEvent(String name, String info);
}

Kotlin

interface AppEventListener {
    fun onAppEvent(name: String, info: String)
}

發生應用程式事件時,系統會呼叫 void onAppEvent(String name, String info) 廣告。這個介面可由您的活動或其他任何 物件:

Java

import com.google.android.gms.ads.admanager.*;

public class BannerExample extends Activity implements AppEventListener {
}

Kotlin

import com.google.android.gms.ads.admanager.*

class BannerExample : Activity(), AppEventListener {
}

然後傳遞至 AdManagerAdView

Java

AdManagerAdView.setAppEventListener(this);

Kotlin

AdManagerAdView.appEventListener = this

以下範例說明如何變更應用程式的背景顏色 根據包含顏色名稱的應用程式事件進行選擇:

Java

@Override
public void onAppEvent(String name, String info) {
  if ("color".equals(name)) {
    if ("green".equals(info)) {
      // Set background color to green.
    } else if ("blue".equals(info)) {
      // Set background color to blue.
    } else {
      // Set background color to black.
    }
  }
}

Kotlin

override fun onAppEvent(name: String?, info: String?) {
    if (name == "color") {
        when (info) {
            "green" -> {
                // Set background color to green.
            }
            "blue" -> {
                // Set background color to blue.
            }
            else -> {
                // Set background color to black.
            }
        }
    }
}

然後這個對應的廣告素材會將顏色應用程式事件訊息傳送至 接聽程式:

<html>
<head>
  <script src="//www.gstatic.com/afma/api/v1/google_mobile_app_ads.js"></script>
  <script>
    document.addEventListener("DOMContentLoaded", function() {
      // Send a color=green event when ad loads.
      admob.events.dispatchAppEvent("color", "green");

      document.getElementById("ad").addEventListener("click", function() {
        // Send a color=blue event when ad is clicked.
        admob.events.dispatchAppEvent("color", "blue");
      });
    });
  </script>
  <style>
    #ad {
      width: 320px;
      height: 50px;
      top: 0px;
      left: 0px;
      font-size: 24pt;
      font-weight: bold;
      position: absolute;
      background: black;
      color: white;
      text-align: center;
    }
  </style>
</head>
<body>
  <div id="ad">Carpe diem!</div>
</body>
</html>

請參閱 Ad Manager 應用程式事件範例,瞭解如何在 API 試用版應用程式。

Java Kotlin

其他資源

GitHub 上的範例

  • 錨定自動調整橫幅廣告範例: Java | Kotlin

後續步驟

可收合橫幅廣告

可收合橫幅廣告是一開始會以較大重疊廣告顯示的橫幅廣告,並提供按鈕將廣告收合為較小的尺寸。建議採用 進一步提升成效詳情請參閱「可收合橫幅廣告」一文。

內嵌自動調整橫幅廣告

與錨定自動調整橫幅廣告相比,內嵌自動調整橫幅廣告較大、尺寸更加大 橫幅廣告它們的高度不一,而且可以和裝置螢幕一樣高。 建議內嵌自動調整橫幅廣告,而非錨定式自動調整橫幅廣告。 應用程式會在可捲動內容中顯示橫幅廣告。詳情請參閱「內嵌式自適應橫幅」。

探索其他主題