Издатели Google Ad Manager могут создавать собственные форматы нативной рекламы, определяя пользовательские списки ресурсов. Эти пользовательские форматы нативной рекламы можно использовать с зарезервированными объявлениями. Пользовательские форматы нативной рекламы позволяют издателям передавать в свои приложения произвольные данные изображений и строк. Эти данные представлены объектом CustomNativeTemplateAd
.
Загрузить пользовательские форматы нативной рекламы
Пользовательские форматы нативной рекламы загружаются с помощью объектов AdLoader
. Метод forCustomTemplateAd()
настраивает AdLoader
для обработки пользовательских форматов нативной рекламы. С каждым пользовательским форматом нативной рекламы связан идентификатор шаблона. Необходимо указать идентификатор шаблона того пользовательского формата нативной рекламы, который ваше приложение должно запросить с помощью AdLoader
. Найдите идентификатор шаблона того нативного формата рекламы, который вы хотите запросить, среди идентификаторов шаблонов в пользовательском интерфейсе Менеджера рекламы.
void LoadCustomNativeTemplateAd()
{
AdLoader adLoader = new AdLoader.Builder("/21775744923/example/native")
.forCustomNativeAd("10063170")
.Build();
adLoader.LoadAd(new AdRequest.Builder().Build());
}
Поскольку один рекламный блок можно настроить для показа нескольких шаблонов объявлений, forCustomTemplateAd()
можно вызывать несколько раз с разными идентификаторами шаблонов, чтобы подготовить Adloader
к использованию нескольких возможных форматов нативной рекламы. Фрагмент кода ниже демонстрирует, как подготовить AdLoader
к использованию нескольких шаблонов нативной рекламы.
void LoadCustomNativeTemplateAd()
{
AdLoader adLoader = new AdLoader.Builder("/21775744923/example/native")
.forCustomNativeAd("10063170")
.forCustomNativeAd("10063171")
.forCustomNativeAd("10063172")
.Build();
adLoader.LoadAd(new AdRequest.Builder().Build());
}
События рекламы в пользовательском формате нативной рекламы
Класс AdLoader
предоставляет события типа EventHandler
для уведомлений о жизненном цикле пользовательского формата нативной рекламы. В примере ниже показано, как зарегистрироваться для получения событий пользовательского формата нативной рекламы:
adLoader.onCustomNativeTemplateAdLoaded += HandleCustomNativeAdLoaded;
adLoader.OnAdFailedToLoad += HandleCustomNativeAdFailedToLoad;
Метод HandleCustomNativeAdLoaded()
содержит параметр CustomNativeEventArgs
. Доступ к загруженному пользовательскому формату нативной рекламы можно получить через этот параметр события, как показано ниже:
private boolean adLoaded;
private CustomNativeTemplateAd customNativeTemplateAd;
...
void HandleCustomNativeAdLoaded(object sender, CustomNativeEventArgs args)
{
customNativeTemplateAd = args.nativeAd;
adLoaded = true;
}
Отображение собственных нативных форматов рекламы
Пользовательские форматы нативной рекламы поддерживают любое количество пользовательских изображений и текстовых ресурсов. Доступ к этим ресурсам осуществляется через класс CustomNativeTemplateAd
, который предоставляет методы GetTexture2D()
и GetText()
, принимающие в качестве параметра идентификатор переменной поля шаблона.
Следующий пример реализации извлекает активы из 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;
...
}
Обработка кликов и показов нативной рекламы в пользовательском формате
При использовании собственных форматов нативной рекламы ваше приложение отвечает за регистрацию показов и отправку сообщений о кликах в SDK.
Запись впечатлений
Чтобы записать показ для пользовательского формата нативной рекламы, вызовите метод RecordImpression()
для соответствующего CustomNativeTemplateAd
:
customNativeTemplateAd.RecordImpression();
Сообщить о кликах
Чтобы сообщить SDK о клике по ресурсу, вызовите метод PerformClick()
соответствующего CustomNativeTemplateAd
и передайте имя ресурса, по которому был выполнен клик. Например, если у вас есть ресурс в формате пользовательской нативной рекламы под названием «MainImage», и вы хотите сообщить о клике по текстуре, соответствующей этому ресурсу, ваш код будет выглядеть следующим образом:
customNativeTemplateAd.PerformClick("MainImage");
При регистрации клика по рекламному объявлению с пользовательским шаблоном SDK может предпринять два возможных ответа в следующем порядке:
- Найдите преобразователь контента для URL-адреса глубинной ссылки объявления и запустите первый, который его распознает.
- Откройте браузер и перейдите по традиционному целевому URL-адресу объявления.
Пользовательские действия при нажатии
Вы можете решить самостоятельно обрабатывать действие при клике для ваших собственных нативных рекламных форматов, вместо того чтобы перенаправлять пользователя на глубокую ссылку или веб-браузер. Это можно сделать, предоставив необязательное значение Action<CustomNativeTemplateAd, string>
в методе AdLoader.Builder.forCustomTemplateAd()
. Задавая это действие при клике, вы переопределяете описанное выше поведение SDK. Вот пример использования действия при клике для регистрации клика по заданному объекту:
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.");
}