Полноэкранная реклама

Внимание.

Это архивная версия документации. Актуальная документация по всем платформам находится здесь.

Полноэкранная реклама (Interstitial) — это настраиваемое объявление, отображаемое на весь экран и реагирующее на нажатие.

  1. Добавление Interstitial в проект
  2. Загрузка рекламы
  3. Показ рекламы
  4. События полноэкранной рекламы
  5. Очистка рекламы

Добавление Interstitial в проект

Чтобы подключить рекламу, создайте объект Interstitial в скрипте (на C#), который прикреплен к GameObject.

...
using YandexMobileAds;
using YandexMobileAds.Base;
...

public class YandexMobileAdsInterstitialDemoScript : MonoBehaviour
{
    private Interstitial interstitial;
    ...
    private void RequestInterstitial()
    {
        string adUnitId = "YOUR_adUnitId";

        interstitial = new Interstitial(adUnitId);
    }
    ...
}
Скопировано

Конструктор Interstitial содержит параметр adUnitIdуникальный идентификатор, который выдается в Партнерском интерфейсе и имеет вид: R-M-XXXXXX-Y..

Примечание.

В интерфейсе Мобильной медиации AdUnitId называется ID места.

Загрузка рекламы

После создания и настройки объекта класса Interstitial необходимо загрузить рекламу. Для загрузки рекламы используйте метод LoadAd, принимающий в качестве параметра объект AdRequest.

...
private void RequestInterstitial()
{
    ...
    AdRequest request = new AdRequest.Builder().Build();

    interstitial.LoadAd(request);
    ...
}
...
Скопировано

Показ рекламы

После того, как реклама загружена, ее можно показать:

...
private void ShowInterstitial()
{
    if (this.interstitial.IsLoaded())
    {
        interstitial.Show();
    }
    else
    {
        Debug.Log("Interstitial is not ready yet");
    }
}
...
Скопировано

События полноэкранной рекламы

Чтобы отслеживать события, происходящие в полноэкранной рекламе, зарегистрируйте делегата для соответствующего EventHandler, как показано ниже:

...
private void RequestInterstitial()
{
    ...
    interstitial.OnInterstitialLoaded += HandleInterstitialLoaded;
    interstitial.OnInterstitialFailedToLoad += HandleInterstitialFailedToLoad;
    interstitial.OnReturnedToApplication += HandleReturnedToApplication;
    interstitial.OnLeftApplication += HandleLeftApplication;
    interstitial.OnAdClicked += HandleAdClicked;
    interstitial.OnInterstitialShown += HandleInterstitialShown;
    interstitial.OnInterstitialDismissed += HandleInterstitialDismissed;
    interstitial.OnImpression += HandleImpression;
    interstitial.OnInterstitialFailedToShow += HandleInterstitialFailedToShow;
    ...
}

public void HandleInterstitialLoaded(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleInterstitialLoaded event received");
}

public void HandleInterstitialFailedToLoad(object sender, AdFailureEventArgs args)
{
    MonoBehaviour.print(
        "HandleInterstitialFailedToLoad event received with message: " + args.Message);
}

public void HandleReturnedToApplication(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleReturnedToApplication event received");
}

public void HandleLeftApplication(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleLeftApplication event received");
}

public void HandleAdClicked(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdClicked event received");
}

public void HandleInterstitialShown(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleInterstitialShown event received");
}

public void HandleInterstitialDismissed(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleInterstitialDismissed event received");
}

public void HandleImpression(object sender, ImpressionData impressionData)
{
    var data = impressionData == null ? "null" : impressionData.rawData;
    MonoBehaviour.print("HandleImpression event received with data: " + data);
}

public void HandleInterstitialFailedToShow(object sender, AdFailureEventArgs args)
{
    MonoBehaviour.print(
        "HandleInterstitialFailedToShow event received with message: " + args.Message);
}                 
Скопировано

Очистка рекламы

Когда объект рекламы больше не нужен, его можно удалить. Для этого вызовите метод Destroy:

interstitial.Destroy();
Скопировано