Издатели Менеджера рекламы могут создавать собственные форматы нативных объявлений, определяя специальные списки объектов. Они называются специальными форматами нативных объявлений и могут использоваться с объявлениями с резервированием. Специальные нативные объявления позволяют издателям передавать в приложения произвольные изображения и строки данных. Эти данные представлены объектом CustomNativeAd.
Как загрузить специальное нативное объявление
Специальные нативные объявления загружаются с помощью объектов AdLoader. Метод ForCustomNativeAd() настраивает AdLoader для обработки собственных нативных объявлений. У этого метода есть два параметра:
formatIdспециального объявления, которое должно запрашиватьAdLoader. Каждому специальному формату нативного объявления соответствует определенный идентификатор. Этот параметр указывает, какой формат объявления должен запрашивать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.");
}