Wydawcy Ad Managera mogą tworzyć własne formaty reklam natywnych, definiując niestandardowe listy zasobów. Są to tzw. niestandardowe formaty reklam natywnych i można ich używać z reklamami zarezerwowanymi. Niestandardowe reklamy natywne umożliwiają wydawcom przekazywanie do aplikacji dowolnych danych graficznych i ciągów 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 właściwość AdLoader
do obsługi niestandardowych reklam natywnych. Ta metoda udostępnia 2 parametry:
formatId
reklamy niestandardowej, o któreAdLoader
powinna poprosić. Z każdym niestandardowym formatem reklamy natywnej powiązana jest wartość identyfikatora formatu. Ten parametr określa format żądania, którego wymaga aplikacjaAdLoader
.- Opcjonalne pole
Action<CustomNativeAd, string>
, które ma być wywoływane, gdy użytkownik kliknie reklamę.
Niestandardowe reklamy natywne są ładowane przez klasę AdLoader
, która ma własną klasę AdLoader.Builder
, aby dostosować ją podczas tworzenia. Metoda ForCustomNativeAd()
konfiguruje właściwość AdLoader
do obsługi reklam natywnych.
void LoadCustomNativeAd()
{
AdLoader adLoader = new AdLoader.Builder("/6499/example/native")
.ForCustomNativeAd("10063170")
.Build();
adLoader.LoadAd(new AdRequest.Builder().Build());
}
Pojedyncza jednostka reklamowa może zostać skonfigurowana do wyświetlania więcej niż 1 formatu reklamy natywnej, dlatego ForCustomNativeAd()
może być wywoływana wielokrotnie z różnymi identyfikatorami formatów, aby ładować program wczytujący pod kątem kilku możliwych niestandardowych formatów reklam natywnych.
Niestandardowe zdarzenia reklamy natywnej
Klasa AdLoader
dostarcza zdarzenia reklamowe typu EventHandler
, aby powiadamiać Cię o niestandardowym cyklu życia reklamy natywnej. Poniższy przykład pokazuje, jak zarejestrować niestandardowe zdarzenia reklamy natywnej w programie wczytującym reklamy:
private AdLoader adLoader;
adLoader.OnCustomNativeAdLoaded += HandleCustomNativeAdLoaded;
adLoader.OnAdFailedToLoad += HandleCustomNativeAdFailedToLoad;
Metoda HandleCustomNativeAdLoaded()
zawiera parametr CustomNativeAdEventArgs
. Ten parametr zdarzenia umożliwi Ci dostęp do wczytanej niestandardowej reklamy natywnej, jak pokazano poniżej:
void HandleCustomNativeAdLoaded(object sender, CustomNativeAdEventArgs args)
{
this.customNativeAd = args.nativeAd;
}
Metoda HandleCustomNativeAdFailedToLoad()
zawiera parametr AdFailedToLoadEventArgs
. Dostęp do komunikatu 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
Niestandardowe reklamy natywne obsługują dowolną liczbę zasobów graficznych i 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()
, które pobierają identyfikator zmiennej pola formatu jako parametr.
Oto przykład implementacji, który 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 niestandardowych wyświetleń i kliknięć reklam natywnych
Niestandardowe reklamy natywne umożliwiają rejestrowanie wyświetleń i raportowanie zdarzeń kliknięć w pakiecie SDK.
Rejestruj wyświetlenia
Aby zarejestrować wyświetlenie reklamy niestandardowej, wywołaj metodę RecordImpression()
w odpowiednim pliku CustomNativeAd
:
customNativeAd.RecordImpression();
Raportuj kliknięcia
Aby zgłosić pakiet SDK, że do danego zasobu zostało kliknięte, wywołaj metodę PerformClick()
na stronie 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, Twój kod będzie wyglądać tak:
customNativeAd.PerformClick("MainImage");
Reagowanie na działania niestandardowe związane z kliknięciami
W przypadku kliknięcia reklamy niestandardowej testowana jest możliwa odpowiedź z pakietu SDK w tej kolejności:
Znajdź resolver treści w przypadku adresu URL precyzyjnego linku reklamy i rozpocznij pierwszy, który zadziała.
Otwórz przeglądarkę i przejdź do tradycyjnego docelowego adresu URL reklamy.
Jeśli chcesz samodzielnie wykonać czynność kliknięcia niestandardowych formatów reklam natywnych, zamiast przekierowywać użytkownika do precyzyjnego linku lub przeglądarki, podaj w metodzie AdLoader.Builder.ForCustomNativeAd()
opcjonalną właściwość Action<CustomNativeAd, string>
. Ustawiając to niestandardowe działanie kliknięcia, zastępujesz zachowanie kliknięcia pakietu SDK. Oto przykład, który używa niestandardowego działania kliknięcia do zalogowania kliknięcia danego zasobu:
private void LoadCustomNativeAd()
{
AdLoader adLoader = new AdLoader.Builder("/6499/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.");
}