Издатели Менеджера рекламы могут создавать собственные форматы нативной рекламы, определяя пользовательские списки ресурсов. Они называются пользовательскими форматами нативной рекламы и могут использоваться с зарезервированными объявлениями. Пользовательские нативные объявления позволяют издателям передавать в свои приложения произвольные данные изображений и строк. Эти данные представлены объектом 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.");
}