Нативные оверлеи

Начать

Нативные оверлеи показываются пользователям с помощью компонентов интерфейса, которые являются нативными для платформы. Такие объявления показываются поверх приложения. Это похоже на то, как работают баннеры, но с возможностью настраивать внешний вид объявлений.

Нативные оверлеи поддерживают медиацию и видеообъявления. Это ключевое преимущество нативных оверлеев по сравнению с нативными объявлениями.

В этом руководстве рассказывается, как добавить нативные оверлеи в приложение Unity, а также о некоторых важных моментах, которые следует учитывать.

Требования

Прежде чем продолжить, выполните следующие действия:

Всегда тестируйте с помощью тестовых объявлений

В приведенном ниже образце кода есть идентификатор рекламного блока, который можно использовать для запроса тестовых объявлений. Он настроен так, чтобы возвращать тестовые объявления вместо рабочих для каждого запроса, поэтому его можно использовать без опасений.

Однако после того, как вы зарегистрируете приложение в веб-интерфейсе AdMob и создадите собственные идентификаторы рекламных блоков для использования в приложении, обязательно настройте устройство как тестовое во время разработки.

Android

ca-app-pub-3940256099942544/1033173712

iOS

ca-app-pub-3940256099942544/4411468910

Как загрузить нативное объявление-оверлей

Чтобы загрузить нативное оверлейное объявление, используйте статический метод Load() класса NativeOverlayAd. Загруженный объект NativeOverlayAd предоставляется в качестве параметра в обработчике завершения.

В следующем коде для загрузки объявления используется NativeOverlayAd:



  // These ad units are configured to always serve test ads.
#if UNITY_ANDROID
  private string _adUnitId = "ca-app-pub-3940256099942544/2247696110";
#elif UNITY_IPHONE
  private string _adUnitId = "ca-app-pub-3940256099942544/3986624511";
#else
  private string _adUnitId = "unused";
#endif


private NativeOverlayAd _nativeOverlayAd;

/// <summary>
/// Loads the ad.
/// </summary>
public void LoadAd()
{
    // Clean up the old ad before loading a new one.
    if (_nativeOverlayAd != null)
    {
        DestroyAd();
    }

    Debug.Log("Loading native overlay ad.");

    // Create a request used to load the ad.
    var adRequest = new AdRequest();

    // Optional: Define native ad options.
    var options = new NativeAdOptions
    {
        AdChoicesPosition = AdChoicesPlacement.TopRightCorner,
        MediaAspectRatio = NativeMediaAspectRatio.Any,
    };

    // Send the request to load the ad.
    NativeOverlayAd.Load(_adUnitId, adRequest, options,
        (NativeOverlayAd ad, LoadAdError error) =>
    {
        if (error != null)
        {
            Debug.LogError("Native Overlay ad failed to load an ad " +
                           " with error: " + error);
            return;
        }

        // The ad should always be non-null if the error is null, but
        // double-check to avoid a crash.
        if (ad == null)
        {
            Debug.LogError("Unexpected error: Native Overlay ad load event " +
                           " fired with null ad and null error.");
            return;
        }

        // The operation completed successfully.
        Debug.Log("Native Overlay ad loaded with response : " +
                   ad.GetResponseInfo());
        _nativeOverlayAd = ad;

        // Register to ad events to extend functionality.
        RegisterEventHandlers(ad);
    });
}

Как отобразить и оформить нативное объявление-оверлей

Нативные оверлеи отрисовываются с помощью NativeTemplateStyle. Этот класс определяет поля, которые позволяют настраивать внешний вид объявлений.

TemplateID – это обязательная строка, которая определяет нативный шаблон, используемый для отрисовки нативного оверлея. Используйте константу NativeTemplateID, чтобы выбрать подходящий шаблон нативного объявления.

В следующем примере кода показано, как создать нативное объявление с наложением, используя средний шаблон и собственный стиль.

/// <summary>
/// Renders the ad.
/// </summary>
public void RenderAd()
{
    if (_nativeOverlayAd != null)
    {
        Debug.Log("Rendering Native Overlay ad.");

        // Define a native template style with a custom style.
        var style = new NativeTemplateStyle
        {
            TemplateID = NativeTemplateID.Medium,
            MainBackgroundColor = Color.red,
            CallToActionText = new NativeTemplateTextStyles
            {
                BackgroundColor = Color.green,
                FontColor = Color.white,
                FontSize = 9,
                Style = NativeTemplateFontStyle.Bold
            }
        };

        // Renders a native overlay ad at the default size
        // and anchored to the bottom of the screne.
        _nativeOverlayAd.RenderTemplate(style, AdPosition.Bottom);
    }
}

Как скрыть или показать нативное объявление с наложением

В следующем коде показано, как отобразить загруженное нативное оверлейное объявление.

/// <summary>
/// Shows the ad.
/// </summary>
public void ShowAd()
{
    if (_nativeOverlayAd != null)
    {
        Debug.Log("Showing Native Overlay ad.");
        _nativeOverlayAd.Show();
    }
}

Как скрыть нативное объявление-оверлей

В следующем примере кода показано, как скрыть нативное оверлейное объявление.

/// <summary>
/// Hides the ad.
/// </summary>
public void HideAd()
{
    if (_nativeOverlayAd != null)
    {
        Debug.Log("Hiding Native Overlay ad.");
        _nativeOverlayAd.Hide();
    }
}

Как удалить нативное объявление-оверлей

Когда вы закончите использовать нативное оверлейное объявление, обязательно вызовите метод Destroy(), чтобы освободить ресурсы.

/// <summary>
/// Destroys the native overlay ad.
/// </summary>
public void DestroyAd()
{
    if (_nativeOverlayAd != null)
    {
        Debug.Log("Destroying native overlay ad.");
        _nativeOverlayAd.Destroy();
        _nativeOverlayAd = null;
    }
}

Дальнейшие действия