Niestandardowe formaty reklam natywnych

Wydawcy korzystający z Ad Managera mogą tworzyć własne formaty reklam natywnych, definiując niestandardowe listy komponentów. Są one nazywane niestandardowymi formatami reklam natywnych i można ich używać w przypadku reklam zarezerwowanych. Niestandardowe reklamy natywne umożliwiają wydawcom przekazywanie do aplikacji dowolnych danych w postaci obrazów i ciągów znaków. Te dane są reprezentowane przez obiekt CustomNativeAd.

Wczytywanie niestandardowej reklamy natywnej

Niestandardowe reklamy natywne są wczytywane za pomocą obiektów AdLoader. Metoda ForCustomNativeAd() konfiguruje AdLoader do obsługi niestandardowych reklam natywnych. Ta metoda ma 2 parametry:

  • formatId reklamy niestandardowej, o którą AdLoader ma wysłać żądanie. Każdy niestandardowy format reklamy natywnej ma powiązaną wartość identyfikatora formatu. Ten parametr wskazuje, w jakim formacie aplikacja ma wysyłać żądania do AdLoader.
  • Opcjonalny Action<CustomNativeAd, string>, który ma być wywoływany, gdy użytkownik kliknie reklamę.

Niestandardowe reklamy natywne są wczytywane za pomocą klasy AdLoader, która ma własną klasę AdLoader.Builder umożliwiającą dostosowanie jej podczas tworzenia. Metoda ForCustomNativeAd() konfiguruje AdLoader do obsługi reklam natywnych.

void LoadCustomNativeAd()
{
    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 format niestandardowej reklamy natywnej, dlatego wywołanie funkcji ForCustomNativeAd() może nastąpić kilka razy z różnymi identyfikatorami formatów, aby przygotować moduł wczytywania reklam na więcej niż 1 możliwy format niestandardowej reklamy natywnej.

Zdarzenia związane z niestandardowymi reklamami natywnymi

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

private AdLoader adLoader;
adLoader.OnCustomNativeAdLoaded += HandleCustomNativeAdLoaded;
adLoader.OnAdFailedToLoad += HandleCustomNativeAdFailedToLoad;

Metoda HandleCustomNativeAdLoaded() zawiera parametr CustomNativeAdEventArgs. Dostęp do wczytanej niestandardowej reklamy natywnej można uzyskać za pomocą tego parametru zdarzenia, jak pokazano poniżej:

void HandleCustomNativeAdLoaded(object sender, CustomNativeAdEventArgs args)
{
    this.customNativeAd = args.nativeAd;
}

Metoda HandleCustomNativeAdFailedToLoad() zawiera parametr AdFailedToLoadEventArgs. Komunikat o błędzie można uzyskać, wywołując metodę GetMessage w polu LoadAdError, jak pokazano poniżej:

void HandleCustomNativeAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    string message = args.LoadAdError.GetMessage();
    Debug.Log("Ad Loader fail event received with message: " + message);
}

Wyświetlanie niestandardowych formatów reklam natywnych

Niestandardowe reklamy natywne obsługują dowolną liczbę zdefiniowanych przez użytkownika komponentów obrazów i tekstu. Dostęp do tych komponentów uzyskuje się za pomocą klasy CustomNativeAd, która udostępnia metody GetTexture2D()GetText() przyjmujące jako parametr identyfikator zmiennej pola formatu.

Oto przykładowy kod, który uzyskuje dostęp do komponentów z niestandardowej reklamy natywnej:

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

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

W przypadku niestandardowej reklamy natywnej Twoja aplikacja odpowiada za rejestrowanie wyświetleń i zgłaszanie zdarzeń kliknięć do pakietu SDK.

Rejestrowanie wyświetleń

Aby zarejestrować wyświetlenie reklamy niestandardowej, wywołaj metodę RecordImpression() w odpowiednim obiekcie CustomNativeAd:

customNativeAd.RecordImpression();

Raportowanie kliknięć

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

customNativeAd.PerformClick("MainImage");

Odpowiadanie na niestandardowe działania związane z kliknięciem

Gdy w przypadku reklamy niestandardowej zostanie zgłoszone kliknięcie, pakiet SDK może zwrócić te 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.

Jeśli chcesz samodzielnie obsługiwać działanie kliknięcia w przypadku niestandardowych formatów reklam natywnych zamiast kierować użytkownika do precyzyjnego linku lub przeglądarki internetowej, podaj opcjonalny parametr Action<CustomNativeAd, string> w metodzie AdLoader.Builder.ForCustomNativeAd(). Ustawiając to niestandardowe działanie po kliknięciu, zastępujesz działanie SDK po kliknięciu. Oto przykład, w którym użyto niestandardowego działania kliknięcia, aby zarejestrować kliknięcie danego komponentu:

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