原生廣告

原生廣告是一種透過 UI 元件向使用者顯示的廣告素材資源 這是平台的原生功能我們會使用與 您打算建立版面配置,而且格式必須符合您的 應用程式的視覺設計

原生廣告載入時,應用程式會收到內含其素材資源的廣告物件。 和應用程式 (而非 Google Mobile Ads SDK) 是 。

廣泛來說,成功導入原生廣告的方法如下: 使用 SDK 載入廣告,然後在應用程式中顯示廣告素材。

本頁說明如何使用 SDK 載入 原生廣告

必要條件

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

建構及測試應用程式時,請務必使用測試廣告,而非 現場及正式環境廣告

要載入測試廣告,最簡單的方法就是使用專屬測試廣告單元編號 原生廣告格式

/21775744923/example/native

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

若要進一步瞭解 Google Mobile Ads SDK 測試廣告的運作方式,請參閱: 測試廣告

載入廣告

原生廣告會與 AdLoader 類別, 有專屬的 Builder 類別,在建立期間自訂圖片。將事件監聽器新增至 AdLoader 建立應用程式時,應用程式會指定目前可用的原生廣告類型 接收。接著,AdLoader 只會要求這些類型。

建立 AdLoader

以下程式碼示範如何建構可載入原生的 AdLoader 廣告:

Java

AdLoader adLoader = new AdLoader.Builder(context, "/21775744923/example/native")
    .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
        @Override
        public void onNativeAdLoaded(NativeAd nativeAd) {
            // Show the ad.
        }
    })
    .withAdListener(new AdListener() {
        @Override
        public void onAdFailedToLoad(LoadAdError adError) {
            // Handle the failure by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(new NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build();

Kotlin

val adLoader = AdLoader.Builder(this, "/21775744923/example/native}")
    .forNativeAd { ad : NativeAd ->
        // Show the ad.
    }
    .withAdListener(object : AdListener() {
        override fun onAdFailedToLoad(adError: LoadAdError) {
            // Handle the failure.
        }
    })
    .withNativeAdOptions(NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build()

forNativeAd()敬上 方法負責為 NativeAd 格式準備 AdLoader。 廣告成功載入後,事件監聽器物件的 onNativeAdLoaded() 方法。

使用 AdLoader 設定 AdListener (選用)

建立 AdLoader 時, withAdListener 函式會設定一個 AdListener 的 。該方法使用 AdListener 做為其本身的參數,並接收 廣告生命週期事件發生時,來自 AdLoader 的回呼:

Java

.withAdListener(new AdListener() {
    // AdListener callbacks can be overridden here.
})

Kotlin

.withAdListener(object : AdListener() {
    // AdListener callbacks can be overridden here.
})

請求廣告

建立 AdLoader 後,即可用它來請求廣告。 使用 loadAd() 方法,該方法會 AdManagerAdRequest 做為第一個參數原來是 橫幅廣告和插頁式廣告使用的 AdManagerAdRequest 類別。 此外,您也可以使用 AdManagerAdRequest 類別的方法 加入指定目標資訊,就像 其他廣告格式

loadAd()

這個方法會傳送單一廣告的請求。

Java

adLoader.loadAd(new AdManagerAdRequest.Builder().build());

Kotlin

adLoader.loadAd(AdManagerAdRequest.Builder().build())

回呼

呼叫 loadAd() 後,系統會向先前定義的 事件監聽器方法傳送單一回呼,以便傳送原生廣告物件或回報錯誤。

釋出資源

請務必對已載入的原生廣告使用 destroy() 方法。這個版本 並避免記憶體流失

確保活動的 NativeAd 參照均已刪除 onDestroy() 方法。

onNativeAdLoaded 回呼中,請務必刪除所有現有 排除參照的原生廣告

另一項重要檢查是,活動是否刪除。如果已刪除,請在上面呼叫 destroy()。 並立即傳回:

Java

final AdLoader adLoader = new AdLoader.Builder(this, "/21775744923/example/native")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd nativeAd) {
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed()` is a method on Activity.
        if (isDestroyed()) {
            nativeAd.destroy();
            return;
        }
        ...
    }
}).build();

Kotlin

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "/21775744923/example/native")
    .forNativeAd { nativeAd ->
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed` is a method on Activity.
        if (isDestroyed) {
            nativeAd.destroy()
            return@forNativeAd
        }
        ...
    }.build()

最佳做法

載入廣告時,請遵守這些規則。

  • 在清單中使用原生廣告的應用程式,應預先快取廣告清單。

  • 預先快取廣告時,請清除快取,並在一小時後重新載入。

  • 除非第一個動作,否則不要在 AdLoader 上呼叫 loadAd() 要求完成載入

影片廣告的硬體加速

為了讓影片廣告在原生廣告檢視畫面中順利顯示, 硬體 加速 都必須啟用。

硬體加速功能預設為啟用,但部分應用程式可能會選擇 並停用該功能如果您的應用程式有此情況,建議您啟用硬體 使用廣告的活動類別加速。

啟用硬體加速

如果開啟硬體加速功能時,應用程式無法正常運作 也可以控制個別活動的位置。如要啟用或 停用硬體加速功能,請使用 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>

請參閱硬體加速 指南 進一步瞭解控制硬體加速的選項。注意事項 某些廣告檢視畫面就無法啟用硬體加速功能 活動已停用,因此「活動」本身必須具有硬體加速功能

顯示您的廣告

廣告載入完畢後,剩下的部分就是向使用者顯示。 前往我們的原生進階廣告課程 指南