Niestandardowe formaty reklam natywnych

Wydawcy korzystający z Ad Managera mogą tworzyć własne formaty reklam natywnych, definiując niestandardowe listy zasobów. Są to niestandardowe formaty reklam natywnych, których można używać w przypadku reklam zarezerwowanych. Niestandardowe reklamy natywne umożliwiają wydawcom przekazywanie do aplikacji dowolnych danych obrazów i ciągów znaków. Dane te 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 niestandardowej reklamy, o którą ma poprosić AdLoader. Każdy niestandardowy format reklamy natywnej ma powiązaną z nim wartość identyfikatora formatu. Ten parametr wskazuje, o jaki format ma poprosić AdLoader w Twojej aplikacji.
  • Opcjonalny Action<CustomNativeAd, string> parametr, który ma zostać wywołany, gdy użytkownik kliknie reklamę.

Niestandardowe reklamy natywne są wczytywane za pomocą klasy AdLoader, która ma własną AdLoader.Builder klasę 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());
}

Ponieważ pojedyncza jednostka reklamowa może być skonfigurowana do wyświetlania więcej niż 1 niestandardowego formatu reklamy natywnej, metodę ForCustomNativeAd() można wywoływać wielokrotnie z różnymi identyfikatorami formatów, aby przygotować moduł wczytywania reklam na więcej niż 1 możliwy niestandardowy format 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 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 zasobów graficznych i tekstowych. Dostęp do tych zasobów można uzyskać za pomocą klasy CustomNativeAd, która udostępnia metody GetTexture2D() i GetText() przyjmujące jako parametr identyfikator zmiennej pola formatu.

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 niestandardowych reklam natywnych 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();

Zgłaszanie kliknięć

Aby zgłosić do pakietu SDK, że kliknięto zasób, 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łosić kliknięcie tekstury odpowiadającej temu zasobowi, kod będzie wyglądać tak:

customNativeAd.PerformClick("MainImage");

Reagowanie na niestandardowe działania po kliknięciu

Gdy zgłoszone zostanie kliknięcie reklamy niestandardowej, pakiet SDK będzie próbował wykonać te działania w podanej kolejności:

  1. Znajdź moduł rozpoznawania treści dla adresu URL precyzyjnego linku reklamy i uruchom pierwszy, który się rozwiąże.

  2. Otwórz przeglądarkę i przejdź do tradycyjnego docelowego adresu URL reklamy.

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

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