Пользовательские форматы нативной рекламы

В Ad Manager у издателей есть возможность создавать собственные форматы нативной рекламы, определяя пользовательские списки ресурсов. Они называются пользовательскими форматами нативной рекламы и могут использоваться с зарезервированными объявлениями. Пользовательская нативная реклама позволяет издателям передавать произвольные данные изображений и строк в свои приложения. Эти данные представлены объектом CustomNativeAd .

Загрузить пользовательскую нативную рекламу

Пользовательские нативные объявления загружаются с помощью объектов AdLoader . Метод ForCustomNativeAd() настраивает AdLoader для обработки пользовательских нативных объявлений. У этого метода два параметра:

  • Параметр formatId для пользовательской рекламы, которую должен запросить AdLoader . Каждому пользовательскому формату нативной рекламы соответствует значение formatID. Этот параметр указывает, какой формат ваше приложение хочет, чтобы AdLoader запросил.
  • Необязательный Action<CustomNativeAd, string> который будет вызываться при нажатии пользователем на объявление.

Custom native ads are loaded through the AdLoader class, which has its own AdLoader.Builder class to customize it during creation. The ForCustomNativeAd() method configures the AdLoader to handle native ads.

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 выполняет следующие действия в указанном порядке:

  1. Найдите средство разрешения контента для URL-адреса прямой ссылки в объявлении и запустите первое, которое разрешит ссылку.

  2. Откройте браузер и перейдите по традиционному целевому 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.");
}