Niestandardowe formaty reklam natywnych

Wydawcy w usłudze Ad Manager mogą tworzyć własne formaty reklam natywnych, definiując niestandardowe listy komponentów. Nazywamy je niestandardowymi formatami reklam natywnych i można ich używać w przypadku reklam zarezerwowanych. Niestandardowe reklamy natywne umożliwiają wydawcom przekazywanie dowolnych danych o obrazach i ciągu znaków do aplikacji. 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, której AdLoader powinien zażądać. Z każdym niestandardowym formatem reklamy natywnej jest powiązany identyfikator formatu. Ten parametr wskazuje, którego formatu aplikacja chce użyć w żądaniu AdLoader.
  • Opcjonalny 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ą jej dostosowywanie 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());
}

Ponieważ pojedyncza jednostka reklamowa może wyświetlać więcej niż 1 format reklamy natywnej, funkcja ForCustomNativeAd() może być wywoływana wielokrotnie z różnymi identyfikatorami formatów, aby przygotować mechanizm wczytywania reklam na wyświetlanie większej liczby niestandardowych formatów reklam natywnych.

Zdarzenia niestandardowych reklam natywnych

Klasa AdLoader udostępnia zdarzenia reklamy typu EventHandler, aby informować o cyklu życia niestandardowej reklamy natywnej. Przykład poniżej pokazuje, jak zarejestrować niestandardowe zdarzenia reklam natywnych w ładowarce reklam:

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

Metoda HandleCustomNativeAdLoaded() zawiera parametr CustomNativeAdEventArgs. Za pomocą tego parametru zdarzenia możesz uzyskać dostęp do załadowanej niestandardowej reklamy natywnej:

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

Metoda HandleCustomNativeAdFailedToLoad() zawiera parametr AdFailedToLoadEventArgs. Aby wyświetlić komunikat o błędzie, wywołaj 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 zasobów tekstowych i obrazowych. Do tych zasobów można uzyskać dostęp za pomocą klasy CustomNativeAd, która udostępnia metody GetTexture2D() i GetText(), które przyjmują 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ęć reklam natywnych niestandardowych

W przypadku niestandardowych reklam natywnych aplikacja odpowiada za rejestrowanie wyświetleń i zgłaszanie 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();

Raportowanie kliknięć

Aby zgłosić do SDK, że zasób został kliknięty, wywołaj metodę PerformClick() w odpowiednim obiekcie CustomNativeAd i przekaż nazwę klikniętego zasobu. Jeśli np. masz zasób w formacie niestandardowym o nazwie „MainImage” i chcesz zgłaszać kliknięcia tekstury odpowiadającej temu zasobowi, Twój kod będzie wyglądać tak:

customNativeAd.PerformClick("MainImage");

Odpowiedź na niestandardowe działania po kliknięciu

Gdy zgłoszone zostanie kliknięcie reklamy niestandardowej, możliwe odpowiedzi pakietu SDK są próbowane w takim porządku:

  1. Znajdź usługę przetwarzania treści dla precyzyjnego adresu URL reklamy i uruchom pierwszą, która się wyświetli.

  2. Otwórz przeglądarkę i otwórz tradycyjny adres URL docelowy 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 internetowej, podaj opcjonalny parametr Action<CustomNativeAd, string> w metodzie AdLoader.Builder.ForCustomNativeAd(). Ustawiając to niestandardowe działanie po kliknięciu, zastępujesz zachowanie kliknięcia w SDK. Oto przykład, w którym do rejestrowania kliknięcia danego zasobu używane jest niestandardowe działanie kliknięcia:

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