В Ad Manager у издателей есть возможность создавать собственные форматы нативной рекламы, определяя пользовательские списки ресурсов. Они называются пользовательскими форматами нативной рекламы и могут использоваться с зарезервированными объявлениями. Пользовательская нативная реклама позволяет издателям передавать произвольные данные изображений и строк в свои приложения. Эти данные представлены объектом CustomNativeAd .
Загрузить пользовательскую нативную рекламу
Пользовательские нативные объявления загружаются с помощью объектов AdLoader . Метод ForCustomNativeAd() настраивает AdLoader для обработки пользовательских нативных объявлений. У этого метода два параметра:
- Параметр
formatIdдля пользовательской рекламы, которую должен запроситьAdLoader. Каждому пользовательскому формату нативной рекламы соответствует значение formatID. Этот параметр указывает, какой формат ваше приложение хочет, чтобыAdLoaderзапросил. - Необязательный
Action<CustomNativeAd, string>который будет вызываться при нажатии пользователем на объявление.
Пользовательские нативные объявления загружаются через класс AdLoader , который имеет собственный класс AdLoader.Builder для настройки во время создания. Метод ForCustomNativeAd() настраивает AdLoader для обработки нативных объявлений.
void LoadCustomNativeAd()
{
AdLoader adLoader = new AdLoader.Builder("/21775744923/example/native")
.ForCustomNativeAd("10063170")
.Build();
adLoader.LoadAd(new AdRequest.Builder().Build());
}
Поскольку один рекламный блок может быть настроен на показ нескольких пользовательских форматов нативной рекламы, ForCustomNativeAd() можно вызывать несколько раз с разными идентификаторами форматов, чтобы подготовить загрузчик рекламы к показу нескольких возможных пользовательских форматов нативной рекламы.
Пользовательские события нативной рекламы
Класс AdLoader предоставляет события рекламы типа EventHandler для уведомления о жизненном цикле пользовательской нативной рекламы. Пример ниже демонстрирует, как зарегистрироваться для получения событий пользовательской нативной рекламы в загрузчике рекламы:
private AdLoader adLoader;
adLoader.OnCustomNativeAdLoaded += HandleCustomNativeAdLoaded;
adLoader.OnAdFailedToLoad += HandleCustomNativeAdFailedToLoad;
Метод HandleCustomNativeAdLoaded() содержит параметр CustomNativeAdEventArgs . Доступ к загруженной пользовательской нативной рекламе можно получить через этот параметр события, как показано ниже:
void HandleCustomNativeAdLoaded(object sender, CustomNativeAdEventArgs args)
{
this.customNativeAd = args.nativeAd;
}
Метод HandleCustomNativeAdFailedToLoad() содержит параметр AdFailedToLoadEventArgs . Доступ к сообщению об ошибке можно получить, вызвав метод GetMessage для поля LoadAdError , как показано ниже:
void HandleCustomNativeAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
string message = args.LoadAdError.GetMessage();
Debug.Log("Ad Loader fail event received with message: " + message);
}
Отображение пользовательских форматов нативной рекламы
Пользовательские нативные объявления поддерживают любое количество определяемых пользователем графических и текстовых ресурсов. Доступ к этим ресурсам осуществляется через класс CustomNativeAd , который предоставляет методы GetTexture2D() и GetText() , принимающие в качестве параметра идентификатор переменной поля форматирования.
Вот пример реализации, которая получает доступ к ресурсам из пользовательской нативной рекламы:
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;
...
}
Обработка показов и кликов по пользовательской нативной рекламе.
При использовании нативной рекламы ваше приложение отвечает за запись показов и передачу данных о кликах в SDK.
Запись впечатлений
Чтобы зафиксировать показ пользовательской рекламы, вызовите метод RecordImpression() для соответствующего CustomNativeAd :
customNativeAd.RecordImpression();
Сообщить о кликах
Чтобы сообщить SDK о клике по ресурсу, вызовите метод PerformClick() соответствующего CustomNativeAd и передайте имя ресурса, по которому был произведен клик. Например, если у вас есть ресурс в вашем пользовательском формате под названием "MainImage" и вы хотите сообщить о клике по текстуре, соответствующей этому ресурсу, ваш код будет выглядеть следующим образом:
customNativeAd.PerformClick("MainImage");
Реагировать на пользовательские действия по клику
При обнаружении клика по пользовательской рекламе SDK выполняет следующие действия в указанном порядке:
Найдите средство разрешения контента для URL-адреса прямой ссылки в объявлении и запустите первое, которое разрешит ссылку.
Откройте браузер и перейдите по традиционному целевому URL-адресу объявления.
Если вы хотите самостоятельно обрабатывать клики по вашим пользовательским форматам нативной рекламы, вместо того чтобы перенаправлять пользователя на прямую ссылку или в веб-браузер, укажите необязательный Action<CustomNativeAd, string> в методе AdLoader.Builder.ForCustomNativeAd() . Установив это пользовательское действие клика, вы переопределяете поведение клика SDK. Вот пример, в котором пользовательское действие клика используется для регистрации клика по заданному ресурсу:
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.");
}