Wydawcy korzystający z Google Ad Managera mogą tworzyć własne formaty reklam natywnych, definiując niestandardowe listy komponentów. Te niestandardowe formaty reklam natywnych można stosować w przypadku reklam rezerwowanych. Niestandardowe formaty reklam natywnych umożliwiają wydawcom przekazywanie do aplikacji dowolnych danych w postaci obrazów i ciągów znaków. Te dane są reprezentowane przez obiekt CustomNativeTemplateAd
.
Wczytywanie niestandardowych formatów reklam natywnych
Niestandardowe formaty reklam natywnych są wczytywane za pomocą obiektów AdLoader
.
Metoda forCustomTemplateAd()
konfiguruje obiekt AdLoader
do obsługi niestandardowych formatów reklam natywnych. Każdy niestandardowy format reklamy natywnej ma powiązaną wartość identyfikatora szablonu. Musisz podać identyfikator szablonu niestandardowego formatu reklamy natywnej, o który aplikacja ma poprosić AdLoader
.
W interfejsie Ad Managera wyszukaj identyfikatory szablonów, aby znaleźć identyfikator szablonu formatu reklamy natywnej, o który chcesz poprosić.
void LoadCustomNativeTemplateAd()
{
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 szablon kreacji, dlatego funkcję
forCustomTemplateAd()
można wywoływać wielokrotnie z różnymi identyfikatorami szablonów
w celu przygotowania Adloader
na więcej niż 1 możliwy niestandardowy format reklamy natywnej.
Poniższy fragment kodu pokazuje, jak przygotować AdLoader
dla wielu szablonów niestandardowych formatów reklam natywnych.
void LoadCustomNativeTemplateAd()
{
AdLoader adLoader = new AdLoader.Builder("/21775744923/example/native")
.forCustomNativeAd("10063170")
.forCustomNativeAd("10063171")
.forCustomNativeAd("10063172")
.Build();
adLoader.LoadAd(new AdRequest.Builder().Build());
}
Zdarzenia związane z reklamami w niestandardowym formacie reklam natywnych
Klasa AdLoader
udostępnia zdarzenia reklamowe typu EventHandler
, aby informować Cię o cyklu życia niestandardowego formatu reklamy natywnej.
Poniższy przykład pokazuje, jak zarejestrować zdarzenia reklam w niestandardowym formacie reklam natywnych:
adLoader.onCustomNativeTemplateAdLoaded += HandleCustomNativeAdLoaded;
adLoader.OnAdFailedToLoad += HandleCustomNativeAdFailedToLoad;
Metoda HandleCustomNativeAdLoaded()
zawiera parametr CustomNativeEventArgs
.
Do załadowanego niestandardowego formatu reklamy natywnej można uzyskać dostęp za pomocą tego parametru zdarzenia, jak pokazano poniżej:
private boolean adLoaded;
private CustomNativeTemplateAd customNativeTemplateAd;
...
void HandleCustomNativeAdLoaded(object sender, CustomNativeEventArgs args)
{
customNativeTemplateAd = args.nativeAd;
adLoaded = true;
}
Wyświetlanie niestandardowych formatów reklam natywnych
Niestandardowe formaty reklam natywnych obsługują dowolną liczbę zdefiniowanych przez użytkownika komponentów z obrazem i tekstem. Dostęp do tych komponentów uzyskuje się za pomocą klasy CustomNativeTemplateAd
, która udostępnia metody GetTexture2D()
i GetText()
przyjmujące jako parametr identyfikator zmiennej pola szablonu.
Poniższy przykład implementacji wyodrębnia komponenty z CustomNativeTemplateAd
:
public const int NATIVE_AD_TEMPLATE_1 = 10063170;
public const int NATIVE_AD_TEMPLATE_2 = 10063171;
private boolean adLoaded;
private Texture2d mainImageTexture;
private string headline;
private CustomNativeTemplateAd customNativeTemplateAd;
...
void Update()
{
if(adLoaded)
{
mainImageTexture = customNativeTemplateAd.GetTexture2D("MainImage");
headline = customNativeTemplateAd.GetText("Headline");
string templateId = customNativeTemplateAd.GetCustomTemplateId();
if (templateId == NATIVE_AD_TEMPLATE_1)
{
...
}
else if (templateId == NATIVE_AD_TEMPLATE_2)
{
...
}
...
adLoaded = false;
}
}
...
void HandleCustomNativeAdLoaded(object sender, CustomNativeEventArgs args)
{
customNativeTemplateAd = args.nativeAd;
adLoaded = true;
...
}
Obsługa kliknięć i wyświetleń niestandardowych formatów reklam natywnych
W przypadku niestandardowych formatów reklam natywnych aplikacja odpowiada za rejestrowanie wyświetleń i zgłaszanie zdarzeń kliknięć do pakietu SDK.
Rejestrowanie wyświetleń
Aby zarejestrować wyświetlenie niestandardowego formatu reklamy natywnej, wywołaj metodę RecordImpression()
w odpowiednim obiekcie CustomNativeTemplateAd
:
customNativeTemplateAd.RecordImpression();
Raportowanie kliknięć
Aby zgłosić do pakietu SDK, że nastąpiło kliknięcie komponentu, wywołaj metodę PerformClick()
w odpowiednim obiekcie CustomNativeTemplateAd
i przekaż nazwę klikniętego komponentu. Jeśli np. w niestandardowym formacie reklamy natywnej masz komponent o nazwie „MainImage” i chcesz raportować kliknięcie tekstury odpowiadającej temu komponentowi, Twój kod będzie wyglądać tak:
customNativeTemplateAd.PerformClick("MainImage");
Gdy w przypadku reklamy z szablonu niestandardowego zostanie zgłoszone kliknięcie, pakiet SDK może zwrócić 2 rodzaje 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.
Działania związane z niestandardowym kliknięciem
Możesz zdecydować, że w przypadku niestandardowych formatów reklam natywnych chcesz samodzielnie obsługiwać działanie kliknięcia, zamiast kierować użytkownika do precyzyjnego linku lub przeglądarki internetowej. Możesz to zrobić, podając opcjonalny parametr
Action<CustomNativeTemplateAd, string>
w metodzie AdLoader.Builder.forCustomTemplateAd()
. Ustawiając to niestandardowe działanie po kliknięciu, zastępujesz opisane powyżej zachowanie SDK po kliknięciu.
Oto przykład, który używa niestandardowego działania związanego z kliknięciem, aby rejestrować kliknięcia danego komponentu:
private void LoadCustomNativeTemplateAd()
{
AdLoader adLoader = new AdLoader.Builder("/21775744923/example/native")
.forCustomNativeAd("10063170", HandleCustomNativeAdClicked)
.Build();
adLoader.onCustomNativeTemplateAdLoaded += HandleCustomNativeAdLoaded;
adLoader.OnAdFailedToLoad += HandleCustomNativeAdFailedToLoad;
adLoader.LoadAd(createAdRequest());
}
private void HandleCustomNativeAdClicked(CustomNativeTemplateAd customNativeTemplateAd, string assetName)
{
Debug.Log("Native ad asset with name " + assetName + " was clicked.");
}