Niestandardowe formaty reklam natywnych

Wydawcy korzystający z Google Ad Managera mogą tworzyć własne formaty reklam natywnych, definiując niestandardowe listy komponentów. Te niestandardowe formaty reklam natywnych można stosować w przypadku reklam rezerwowanych. Niestandardowe formaty reklam natywnych umożliwiają wydawcom przekazywanie do aplikacji dowolnych danych w postaci obrazów i ciągów znaków. Te dane są reprezentowane przez obiekt CustomNativeTemplateAd.

Wczytywanie niestandardowych formatów reklam natywnych

Niestandardowe formaty reklam natywnych są wczytywane za pomocą obiektów AdLoader. Metoda forCustomTemplateAd() konfiguruje obiekt AdLoader do obsługi niestandardowych formatów reklam natywnych. Każdy niestandardowy format reklamy natywnej ma powiązaną wartość identyfikatora szablonu. Musisz podać identyfikator szablonu niestandardowego formatu reklamy natywnej, o który aplikacja ma poprosić AdLoader. W interfejsie Ad Managera wyszukaj identyfikatory szablonów, aby znaleźć identyfikator szablonu formatu reklamy natywnej, o który chcesz poprosić.

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

Jednostkę reklamową można skonfigurować tak, aby wyświetlała więcej niż 1 szablon kreacji, dlatego funkcję forCustomTemplateAd() można wywoływać wielokrotnie z różnymi identyfikatorami szablonów w celu przygotowania Adloader na więcej niż 1 możliwy niestandardowy format reklamy natywnej. Poniższy fragment kodu pokazuje, jak przygotować AdLoader dla wielu szablonów niestandardowych formatów reklam natywnych.

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

Zdarzenia związane z reklamami w niestandardowym formacie reklam natywnych

Klasa AdLoader udostępnia zdarzenia reklamowe typu EventHandler, aby informować Cię o cyklu życia niestandardowego formatu reklamy natywnej. Poniższy przykład pokazuje, jak zarejestrować zdarzenia reklam w niestandardowym formacie reklam natywnych:

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

Metoda HandleCustomNativeAdLoaded() zawiera parametr CustomNativeEventArgs. Do załadowanego niestandardowego formatu reklamy natywnej można uzyskać dostęp za pomocą tego parametru zdarzenia, jak pokazano poniżej:

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

Wyświetlanie niestandardowych formatów reklam natywnych

Niestandardowe formaty reklam natywnych obsługują dowolną liczbę zdefiniowanych przez użytkownika komponentów z obrazem i tekstem. Dostęp do tych komponentów uzyskuje się za pomocą klasy CustomNativeTemplateAd, która udostępnia metody GetTexture2D()GetText() przyjmujące jako parametr identyfikator zmiennej pola szablonu.

Poniższy przykład implementacji wyodrębnia komponenty z 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;
    ...
}

Obsługa kliknięć i wyświetleń niestandardowych formatów reklam natywnych

W przypadku niestandardowych formatów reklam natywnych aplikacja odpowiada za rejestrowanie wyświetleń i zgłaszanie zdarzeń kliknięć do pakietu SDK.

Rejestrowanie wyświetleń

Aby zarejestrować wyświetlenie niestandardowego formatu reklamy natywnej, wywołaj metodę RecordImpression() w odpowiednim obiekcie CustomNativeTemplateAd:

customNativeTemplateAd.RecordImpression();

Raportowanie kliknięć

Aby zgłosić do pakietu SDK, że nastąpiło kliknięcie komponentu, wywołaj metodę PerformClick() w odpowiednim obiekcie CustomNativeTemplateAd i przekaż nazwę klikniętego komponentu. Jeśli np. w niestandardowym formacie reklamy natywnej masz komponent o nazwie „MainImage” i chcesz raportować kliknięcie tekstury odpowiadającej temu komponentowi, Twój kod będzie wyglądać tak:

customNativeTemplateAd.PerformClick("MainImage");

Gdy w przypadku reklamy z szablonu niestandardowego zostanie zgłoszone kliknięcie, pakiet SDK może zwrócić 2 rodzaje odpowiedzi (w tej kolejności):

  1. Znajdź moduł do rozpoznawania treści dla adresu URL precyzyjnego linku reklamy i uruchom pierwszy z nich, który zostanie rozpoznany.
  2. Otwórz przeglądarkę i przejdź do tradycyjnego docelowego adresu URL reklamy.

Działania związane z niestandardowym kliknięciem

Możesz zdecydować, że w przypadku niestandardowych formatów reklam natywnych chcesz samodzielnie obsługiwać działanie kliknięcia, zamiast kierować użytkownika do precyzyjnego linku lub przeglądarki internetowej. Możesz to zrobić, podając opcjonalny parametr Action<CustomNativeTemplateAd, string> w metodzie AdLoader.Builder.forCustomTemplateAd(). Ustawiając to niestandardowe działanie po kliknięciu, zastępujesz opisane powyżej zachowanie SDK po kliknięciu. Oto przykład, który używa niestandardowego działania związanego z kliknięciem, aby rejestrować kliknięcia danego komponentu:

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.");
}