Специальные форматы нативных объявлений

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

  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.");
}