Ad Manager 發布商可選擇定義自訂素材資源清單,建立自己的原生廣告格式。這類廣告稱為自訂原生廣告格式,可與預訂廣告一起使用。發布商可透過自訂原生廣告,將任意圖片和字串資料傳遞至應用程式。這項資料會以 CustomNativeAd
物件表示。
載入自訂原生廣告
自訂原生廣告使用 AdLoader
物件載入。ForCustomNativeAd()
方法會設定 AdLoader
來處理自訂原生廣告。此方法有以下兩個參數:
AdLoader
應要求的自訂廣告formatId
。每個自訂原生廣告格式都有相關聯的格式 ID 值,這項參數表示應用程式希望AdLoader
要求的格式。- 使用者點擊廣告時要叫用的選用
Action<CustomNativeAd, string>
。
自訂原生廣告會透過 AdLoader
類別載入,該類別有自己的 AdLoader.Builder
類別,可在建立期間自訂。ForCustomNativeAd()
方法會設定 AdLoader
來處理原生廣告。
void LoadCustomNativeAd()
{
AdLoader adLoader = new AdLoader.Builder("/21775744923/example/native")
.ForCustomNativeAd("10063170")
.Build();
adLoader.LoadAd(new AdRequest.Builder().Build());
}
因為單一廣告單元可設定為放送多種自訂原生廣告格式,所以可使用不同格式 ID,多次呼叫 ForCustomNativeAd()
準備廣告載入器,因應多種可能的自訂原生廣告格式。
自訂原生廣告事件
AdLoader
類別會提供 EventHandler
類型的廣告事件,通知您自訂原生廣告的生命週期。以下示例說明如何在廣告載入器註冊自訂原生廣告事件:
private AdLoader adLoader;
adLoader.OnCustomNativeAdLoaded += HandleCustomNativeAdLoaded;
adLoader.OnAdFailedToLoad += HandleCustomNativeAdFailedToLoad;
HandleCustomNativeAdLoaded()
方法包含 CustomNativeAdEventArgs
參數,已載入的自訂原生廣告可透過此事件參數存取,如下所示:
void HandleCustomNativeAdLoaded(object sender, CustomNativeAdEventArgs args)
{
this.customNativeAd = args.nativeAd;
}
HandleCustomNativeAdFailedToLoad()
方法包含 AdFailedToLoadEventArgs
參數。您可以呼叫 LoadAdError
欄位中的 GetMessage
方法,存取錯誤訊息,如下所示:
void HandleCustomNativeAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
string message = args.LoadAdError.GetMessage();
Debug.Log("Ad Loader fail event received with message: " + message);
}
放送自訂原生廣告格式
自訂原生廣告會支援任何數量的使用者定義圖片和文字素材資源。這些素材資源會透過 CustomNativeAd
類別存取,該類別提供 GetTexture2D()
和 GetText()
方法,可將格式欄位的變數 ID 做為參數。
以下是從自訂原生廣告存取素材資源的導入範例:
private bool adLoaded;
private Texture2D mainImageTexture;
private string headline;
private CustomNativeAd customNativeAd;
...
void Update()
{
if(adLoaded)
{
mainImageTexture = customNativeAd.GetTexture2D("MainImage");
headline = customNativeAd.GetText("Headline");
adLoaded = false;
}
}
...
void HandleCustomNativeAdLoaded(object sender, CustomNativeAdEventArgs args)
{
customNativeAd = args.nativeAd;
adLoaded = true;
...
}
處理自訂原生廣告的曝光和點擊次數
使用自訂原生廣告時,您的應用程式必須負責記錄曝光次數,並向 SDK 回報點擊事件。
記錄曝光次數
如要記錄自訂廣告的曝光次數,請在對應的 CustomNativeAd
呼叫 RecordImpression()
方法:
customNativeAd.RecordImpression();
回報點擊事件
如要向 SDK 回報素材資源有點擊事件,請在對應的 CustomNativeAd
呼叫 PerformClick()
方法,並傳遞受點擊的素材資源名稱。舉例來說,如果您在名為「MainImage」的自訂格式中有素材資源,且想回報與該素材資源相應的紋理點擊次數,程式碼會如下所示:
customNativeAd.PerformClick("MainImage");
回應自訂點擊動作
如果自訂廣告回報了點擊,SDK 可能會依下列順序嘗試回應:
找出廣告深層連結網址的內容解析器,接著啟動實際執行解析的第一個解析器。
開啟瀏覽器,前往廣告的傳統到達網頁網址。
如果您想自行處理自訂原生廣告格式的點擊動作,而不是將使用者帶往深層連結或網路瀏覽器,請在 AdLoader.Builder.ForCustomNativeAd()
方法中提供選用的 Action<CustomNativeAd, string>
。您設定這個自訂點擊動作後,便會覆寫 SDK 的點擊行為。以下是使用自訂點擊動作的示例,可記錄特定素材資源的點擊次數:
private void LoadCustomNativeAd()
{
AdLoader adLoader = new AdLoader.Builder("/21775744923/example/native")
.ForCustomNativeAd("10063170", HandleCustomNativeAdClicked)
.Build();
adLoader.OnCustomNativeAdLoaded += HandleCustomNativeAdLoaded;
adLoader.LoadAd(createAdRequest());
}
private void HandleCustomNativeAdClicked(CustomNativeAd customNativeAd, string assetName)
{
Debug.Log("Custom Native ad asset with name " + assetName + " was clicked.");
}