自訂原生廣告格式

Google Ad Manager 發布商可定義自訂素材資源清單,建立自己的原生廣告格式。這些自訂原生廣告格式可與預訂廣告一起使用。發布商可透過自訂原生廣告格式,將任意圖片和字串資料傳遞至應用程式。這項資料會以 CustomNativeTemplateAd 物件表示。

載入自訂原生廣告格式

自訂原生廣告格式使用 AdLoader 物件載入。 forCustomTemplateAd() 方法會設定 AdLoader 來處理自訂原生廣告格式。每個自訂原生廣告格式都有相關聯的範本 ID 值,您必須指定應用程式希望 AdLoader 請求的自訂原生廣告格式範本 ID。在 Ad Manager 使用者介面中搜尋範本 ID,找出要請求的原生廣告格式範本 ID。

void LoadCustomNativeTemplateAd()
{
    AdLoader adLoader = new AdLoader.Builder("/21775744923/example/native")
        .forCustomNativeAd("10063170")
        .Build();
    adLoader.LoadAd(new AdRequest.Builder().Build());
}

單一廣告單元可設定為放送多種廣告素材範本,因此可使用不同範本 ID 多次呼叫 forCustomTemplateAd(),來準備 Adloader,因應多種可能的自訂原生廣告格式。下列程式碼片段示範如何為多個自訂原生廣告格式範本準備 AdLoader

void LoadCustomNativeTemplateAd()
{
    AdLoader adLoader = new AdLoader.Builder("/21775744923/example/native")
        .forCustomNativeAd("10063170")
        .forCustomNativeAd("10063171")
        .forCustomNativeAd("10063172")
        .Build();
    adLoader.LoadAd(new AdRequest.Builder().Build());
}

自訂原生廣告格式廣告事件

AdLoader 類別會提供 EventHandler 類型的廣告事件,通知您自訂原生廣告格式的生命週期。以下範例說明如何註冊自訂原生廣告格式廣告事件:

adLoader.onCustomNativeTemplateAdLoaded += HandleCustomNativeAdLoaded;
adLoader.OnAdFailedToLoad += HandleCustomNativeAdFailedToLoad;

HandleCustomNativeAdLoaded() 方法包含 CustomNativeEventArgs 參數。已載入的自訂原生廣告格式可透過此事件參數存取,如下所示:

private boolean adLoaded;
private CustomNativeTemplateAd customNativeTemplateAd;
...
void HandleCustomNativeAdLoaded(object sender, CustomNativeEventArgs args)
{
    customNativeTemplateAd = args.nativeAd;
    adLoaded = true;
}

顯示自訂原生廣告格式

自訂原生廣告格式會支援任何數量的使用者定義圖片和文字素材資源。這些素材資源會透過 CustomNativeTemplateAd 類別存取,該類別提供 GetTexture2D()GetText() 方法,可將範本欄位的變數 ID 做為參數。

以下範例實作會從 CustomNativeTemplateAd 擷取素材資源:

public const int NATIVE_AD_TEMPLATE_1 = 10063170;
public const int NATIVE_AD_TEMPLATE_2 = 10063171;

private boolean adLoaded;
private Texture2d mainImageTexture;
private string headline;
private CustomNativeTemplateAd customNativeTemplateAd;
...

void Update()
{
    if(adLoaded)
    {
        mainImageTexture = customNativeTemplateAd.GetTexture2D("MainImage");
        headline = customNativeTemplateAd.GetText("Headline");

        string templateId = customNativeTemplateAd.GetCustomTemplateId();
        if (templateId == NATIVE_AD_TEMPLATE_1)
        {
            ...
        }
        else if (templateId == NATIVE_AD_TEMPLATE_2)
        {
            ...
        }
        ...
        adLoaded = false;
    }
}
...

void HandleCustomNativeAdLoaded(object sender, CustomNativeEventArgs args)
{
    customNativeTemplateAd = args.nativeAd;
    adLoaded = true;
    ...
}

處理自訂原生廣告格式的點擊和曝光

使用自訂原生廣告格式時,您的應用程式必須負責記錄曝光次數,並向 SDK 回報點擊事件。

記錄曝光次數

如要記錄自訂原生廣告格式的曝光次數,請在對應的 CustomNativeTemplateAd 呼叫 RecordImpression() 方法:

customNativeTemplateAd.RecordImpression();

回報點擊

如要向 SDK 回報素材資源有點擊事件,請在對應的 CustomNativeTemplateAd 呼叫 PerformClick() 方法,並傳遞受點擊的素材資源名稱。舉例來說,如果您在名為「MainImage」的自訂原生廣告格式中有素材資源,且想回報與該素材資源相應的紋理點擊次數,程式碼會如下所示:

customNativeTemplateAd.PerformClick("MainImage");

如果自訂範本廣告回報了點擊,SDK 可能會依下列順序嘗試回應:

  1. 找出廣告深層連結網址的內容解析器,接著啟動實際執行解析的第一個解析器。
  2. 開啟瀏覽器,前往廣告的傳統到達網頁網址。

自訂點擊動作

您可能會決定自行處理自訂原生廣告格式的點擊動作,而不是將使用者帶往深層連結或網路瀏覽器。如要執行這項操作,請在 AdLoader.Builder.forCustomTemplateAd() 方法中提供選用的 Action<CustomNativeTemplateAd, string>。您設定這個自訂點擊動作後,便會覆寫上述 SDK 的點擊行為。以下是使用自訂點擊動作的示例,可記錄特定素材資源的點擊次數:

private void LoadCustomNativeTemplateAd()
{
    AdLoader adLoader = new AdLoader.Builder("/21775744923/example/native")
        .forCustomNativeAd("10063170", HandleCustomNativeAdClicked)
        .Build();
    adLoader.onCustomNativeTemplateAdLoaded += HandleCustomNativeAdLoaded;
    adLoader.OnAdFailedToLoad += HandleCustomNativeAdFailedToLoad;
    adLoader.LoadAd(createAdRequest());
}

private void HandleCustomNativeAdClicked(CustomNativeTemplateAd customNativeTemplateAd, string assetName)
{
    Debug.Log("Native ad asset with name " + assetName + " was clicked.");
}