Niestandardowe formaty reklam natywnych

Wydawcy korzystający z Ad Managera mogą tworzyć własne formaty reklam natywnych, definiując niestandardowe listy komponentów. Są to tzw. niestandardowe formaty reklam natywnych, których można używać w przypadku reklam z rezerwacji. Niestandardowe reklamy natywne umożliwiają wydawcom przekazywanie do aplikacji dowolnych obrazów i danych tekstowych. 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ą powinien poprosić AdLoader. Z każdym niestandardowym formatem reklamy natywnej jest powiązana wartość identyfikatora formatu. Ten parametr wskazuje, o jaki format ma prosić AdLoader Twoja aplikacja.
  • Opcjonalny obiekt Action<CustomNativeAd, string>, który jest 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ą dostosowywanie 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());
}

Pojedyncza jednostka reklamowa może być skonfigurowana do wyświetlania więcej niż jednego niestandardowego formatu reklamy natywnej, dlatego metodę ForCustomNativeAd() można wywoływać wielokrotnie z różnymi identyfikatorami formatów, aby przygotować moduł ładujący reklamy do obsługi więcej niż jednego możliwego niestandardowego formatu reklamy natywnej.

Zdarzenia niestandardowych reklam natywnych

Klasa AdLoader udostępnia zdarzenia reklamowe typu EventHandler, które informują o cyklu życia niestandardowej reklamy natywnej. Poniższy przykład pokazuje, jak zarejestrować zdarzenia niestandardowych reklam natywnych w module ładowania 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);
}

Niestandardowe formaty reklam natywnych typu displayowego

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

Oto przykładowa implementacja, która uzyskuje dostęp do zasobó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 aplikacja odpowiada za rejestrowanie wyświetleń i raportowanie zdarzeń kliknięcia do pakietu SDK.

Rejestrowanie wyświetleń

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

customNativeAd.RecordImpression();

Kliknięcia raportów

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

customNativeAd.PerformClick("MainImage");

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

Gdy zostanie zgłoszone kliknięcie reklamy niestandardowej, możliwe odpowiedzi z pakietu SDK są próbowane w tej kolejności:

  1. Znajdź moduł rozpoznawania treści dla adresu URL precyzyjnego linku reklamy i uruchom pierwszy, 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 przekierowywać użytkownika do precyzyjnego linku lub przeglądarki, podaj opcjonalny parametr Action<CustomNativeAd, string> w metodzie AdLoader.Builder.ForCustomNativeAd(). Ustawiając to niestandardowe działanie po kliknięciu, zastępujesz działanie po kliknięciu z pakietu SDK. Oto przykład, w którym niestandardowe działanie związane z kliknięciem służy do rejestrowania kliknięcia 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.");
}