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 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
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()
i 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:
Znajdź moduł do 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.");
}