插頁式廣告

選取平台: Android iOS Unity Flutter

插頁式廣告會全螢幕顯示,覆蓋整個應用程式的介面。 這類廣告通常顯示在應用程式流程中的自然轉換點, 例如遊戲關卡之間的暫停時間。應用程式顯示插頁式廣告時,使用者可選擇輕觸廣告前往到達網頁,或是關閉廣告返回應用程式。 研究案例

本指南說明如何在 Unity 應用程式中整合中介層廣告。

必要條件

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

下列程式碼範例包含廣告單元 ID,可用於要求測試廣告。這個 ID 經過特別設定,可針對每項要求傳回測試廣告,而非正式版廣告,因此可安心使用。

不過,在 AdMob 網頁介面中註冊應用程式,並建立要在應用程式中使用的廣告單元 ID 後,請在開發期間將裝置明確設為測試裝置

Android

ca-app-pub-3940256099942544/1033173712

iOS

ca-app-pub-3940256099942544/4411468910

初始化 Mobile Ads SDK

應用程式必須先呼叫 MobileAds.Initialize(),初始化 Mobile Ads SDK,才能載入廣告。這項操作只需執行一次,最好是在應用程式啟動時執行。

using GoogleMobileAds;
using GoogleMobileAds.Api;

public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    public void Start()
    {
        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize((InitializationStatus initStatus) =>
        {
            // This callback is called once the MobileAds SDK is initialized.
        });
    }
}

如果您使用中介服務,請等到回呼發生後再載入廣告,確保所有中介服務轉接程式都已初始化。

載入插頁式廣告

如要載入插頁式廣告,請使用 InterstitialAd 類別的靜態 Load() 方法。載入方法需要廣告單元 ID、AdRequest 物件,以及廣告載入成功或失敗時呼叫的完成處理常式。載入的 InterstitialAd 物件會以參數形式,提供給完成處理常式。以下範例會載入 InterstitialAd:

// Create our request used to load the ad.
var adRequest = new AdRequest();

// Send the request to load the ad.
InterstitialAd.Load("AD_UNIT_ID", adRequest, (InterstitialAd ad, LoadAdError error) =>
{
    if (error != null)
    {
        // The ad failed to load.
        return;
    }
    // The ad loaded successfully.
});

AD_UNIT_ID 替換為廣告單元 ID。

顯示插頁式廣告

如要顯示已載入的插頁式廣告,請對 InterstitialAd 例項呼叫 Show() 方法。每次載入時,系統可能會顯示一次廣告。使用 CanShowAd() 方法驗證廣告是否已準備就緒,可供顯示。

if (interstitialAd != null && interstitialAd.CanShowAd()) { interstitialAd.Show(); }

監聽插頁式廣告事件

如要進一步自訂廣告的行為,您可以連結廣告生命週期中的多個事件。以下範例會監聽廣告事件:

interstitialAd.OnAdPaid += (AdValue adValue) => { // Raised when the ad is estimated to have earned money. }; interstitialAd.OnAdImpressionRecorded += () => { // Raised when an impression is recorded for an ad. }; interstitialAd.OnAdClicked += () => { // Raised when a click is recorded for an ad. }; interstitialAd.OnAdFullScreenContentOpened += () => { // Raised when the ad opened full screen content. }; interstitialAd.OnAdFullScreenContentClosed += () => { // Raised when the ad closed full screen content. }; interstitialAd.OnAdFullScreenContentFailed += (AdError error) => { // Raised when the ad failed to open full screen content. };

清除插頁式廣告

完成 InterstitialAd 的作業後,請務必在捨棄參照之前呼叫 Destroy() 方法:

if (interstitialAd != null) { interstitialAd.Destroy(); }

這會通知外掛程式該物件不再使用,因此可回收其占用的記憶體。如果未呼叫這個方法,就會導致記憶體流失。

預先載入下一則插頁式廣告

插頁式廣告為一次性物件。也就是說,插頁式廣告顯示後,該物件就無法再次使用。如要要求其他中介插頁廣告,請建立新的 InterstitialAd 物件。

如要為下一次曝光機會準備插頁式廣告,請在 OnAdFullScreenContentClosedOnAdFullScreenContentFailed 廣告事件引發後,預先載入插頁式廣告。

interstitialAd.OnAdFullScreenContentClosed += () =>
{
    // Reload the ad so that we can show another as soon as possible.
    var adRequest = new AdRequest();
    InterstitialAd.Load("AD_UNIT_ID", adRequest, (InterstitialAd ad, LoadAdError error) =>
    {
        // Handle ad loading here.
    });
};

最佳做法

判斷插頁式廣告是否適合您的應用程式。
插頁式廣告最適合在有自然轉換點的應用程式中放送。 使用者在應用程式中完成操作時 (例如分享圖片或遊戲破關),就會形成這類空檔。請務必考慮在應用程式流程中的哪些時間點顯示插頁式廣告最合適,以及使用者可能會如何回應。
顯示插頁式廣告時,請暫停動作。
我們提供數種插頁式廣告格式,例如文字、圖片或影片。請務必確保應用程式在顯示中介層廣告時,也會暫停使用部分資源,讓廣告能充分利用這些資源。舉例來說,當您呼叫顯示中介層廣告時,請務必暫停應用程式產生的任何音訊輸出。您可以在 OnAdFullScreenContentClosed() 事件中繼續播放音效,這個事件會在使用者與廣告互動完畢時叫用。此外,廣告顯示期間,請考慮暫時停止任何需要大量運算的作業,例如遊戲迴圈。確保使用者不會遇到圖形緩慢或無回應,或是影片斷斷續續的問題。
不要讓應用程式廣告氾濫。
雖然增加應用程式中插頁式廣告的展示頻率,似乎是提高收益的好方法,但這也可能導致使用者體驗變差,並降低點擊率。確保使用者不會因為頻繁中斷而無法享受使用應用程式的樂趣。

其他資源

* 使用範例