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 mogą być używane 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:
formatIdreklamy niestandardowej, o którą ma poprosićAdLoader. Każdy niestandardowy format reklamy natywnej ma powiązaną z nim wartość identyfikatora formatu. Ten parametr wskazuje, w jakim formacie aplikacja ma wysyłać żądania doAdLoader.- 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, aby dostosować ją 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 funkcję ForCustomNativeAd() można wywoływać wielokrotnie 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() i GetText() przyjmujące jako parametr zmienny identyfikator 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();
Kliknięcia w raporcie
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:
Znajdź moduł rozpoznawania treści dla adresu URL precyzyjnego linku reklamy i uruchom pierwszy z nich, który zostanie rozpoznany.
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.");
}