Межстраничные объявления (старая версия)

Межстраничная реклама — это полноэкранная реклама, закрывающая интерфейс основного приложения. Обычно они отображаются в естественных точках перехода в работе приложения, например, во время паузы между уровнями в игре. Когда приложение показывает межстраничную рекламу, у пользователя есть выбор: либо нажать на рекламу и продолжить движение к месту назначения, либо закрыть ее и вернуться в приложение. Тематическое исследование .

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

Предварительные условия

Создайте межстраничное объявление

Первым шагом к отображению межстраничного объявления является создание объекта InterstitialAd в скрипте, прикрепленном к GameObject .

using GoogleMobileAds.Api;
...

private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

    // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);
}

Конструктор InterstitialAd имеет следующий параметр:

  • adUnitId – идентификатор рекламного блока AdMob, из которого InterstitialAd должен загружать объявления.

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

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

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

Однако после того, как вы зарегистрируете приложение в пользовательском интерфейсе AdMob и создадите собственные идентификаторы рекламных блоков для использования в нем, вам потребуется явно настроить свое устройство в качестве тестового устройства во время разработки. Это чрезвычайно важно. Тестирование с реальными объявлениями (даже если вы никогда не нажимаете на них) противоречит политике AdMob и может привести к блокировке вашего аккаунта. См. «Тестовые объявления» , чтобы узнать, как обеспечить постоянное получение тестовых объявлений при разработке.

Загрузить объявление

После создания экземпляра InterstitialAd следующим шагом будет загрузка объявления. Это делается с помощью метода loadAd() в классе InterstitialAd . Он принимает аргумент AdRequest , который содержит информацию времени выполнения (например, информацию о таргетинге) об одном запросе объявления.

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

using GoogleMobileAds.Api;
...
private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

    // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);
    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    // Load the interstitial with the request.
    this.interstitial.LoadAd(request);
}

Показать объявление

Межстраничная реклама должна показываться во время естественных пауз в работе приложения. Хороший пример — между уровнями игры или после того, как пользователь выполнил задание. Чтобы отобразить межстраничное объявление, используйте метод isLoaded() , чтобы убедиться, что оно загружено, а затем вызовите show() .

Межстраничная реклама из предыдущего примера кода может показываться в конце игры, как показано ниже.

private void GameOver()
{
  if (this.interstitial.IsLoaded()) {
    this.interstitial.Show();
  }
}

Рекламные события

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

using GoogleMobileAds.Api;
...
private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

     // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);

    // Called when an ad request has successfully loaded.
    this.interstitial.OnAdLoaded += HandleOnAdLoaded;
    // Called when an ad request failed to load.
    this.interstitial.OnAdFailedToLoad += HandleOnAdFailedToLoad;
    // Called when an ad is shown.
    this.interstitial.OnAdOpening += HandleOnAdOpening;
    // Called when the ad is closed.
    this.interstitial.OnAdClosed += HandleOnAdClosed;

    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    // Load the interstitial with the request.
    this.interstitial.LoadAd(request);
}

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

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

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

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

Событие OnAdFailedToLoad содержит специальные аргументы события. Он передает экземпляр HandleAdFailedToLoadEventArgs с Message , описывающим ошибку:

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    print("Interstitial failed to load: " + args.Message);
    // Handle the ad failed to load event.
}
Рекламное событие Описание
OnAdLoaded Событие OnAdLoaded выполняется после завершения загрузки объявления.
OnAdFailedToLoad Событие OnAdFailedToLoad вызывается, когда объявление не загружается. Параметр Message описывает тип произошедшего сбоя.
OnAdOpening Этот метод вызывается, когда реклама отображается на экране устройства.
OnAdClosed Этот метод вызывается, когда межстраничное объявление закрывается из-за того, что пользователь нажимает на значок закрытия или нажимает кнопку «Назад». Если ваше приложение приостановило вывод звука или игровой цикл, это отличное место, чтобы возобновить его.

Очистите межстраничную рекламу

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

interstitial.Destroy();

Это уведомляет плагин о том, что объект больше не используется и занимаемая им память может быть освобождена. Невызов этого метода приводит к утечкам памяти.

Некоторые лучшие практики

Подумайте, подходят ли межстраничные объявления для вашего приложения.
Межстраничная реклама лучше всего работает в приложениях с естественными точками перехода. Завершение задачи в приложении, например, обмен изображением или прохождение игрового уровня, создает такую ​​точку. Поскольку пользователь ожидает перерыва в действии, ему легко представить межстраничную рекламу, не нарушая его впечатления. Обязательно продумайте, в какие моменты рабочего процесса вашего приложения вы будете показывать межстраничную рекламу и как на нее отреагирует пользователь.
Не забудьте приостановить действие при показе межстраничной рекламы.
Существует несколько различных типов межстраничной рекламы: текстовая, графическая, видео и т. д. Важно убедиться, что когда ваше приложение отображает межстраничную рекламу, оно также приостанавливает использование некоторых ресурсов, чтобы реклама могла ими воспользоваться. Например, когда вы вызываете показ межстраничной рекламы, обязательно приостановите любой аудиовыход, воспроизводимый вашим приложением. Возобновить воспроизведение звуков можно в обработчике событий onAdClosed() , который будет вызван, когда пользователь завершит взаимодействие с объявлением. Кроме того, рассмотрите возможность временной остановки любых интенсивных вычислительных задач (например, игрового цикла) на время показа рекламы. Это гарантирует, что пользователь не столкнется с медленной или неотзывчивой графикой или заиканием видео.
Обеспечьте достаточное время загрузки.
Важно не только следить за тем, чтобы межстраничные объявления отображались в нужное время, но и следить за тем, чтобы пользователю не приходилось ждать их загрузки. Предварительная загрузка объявления путем вызова loadAd() до того, как вы собираетесь вызвать show() может гарантировать, что ваше приложение будет иметь полностью загруженное межстраничное объявление, готовое, когда придет время его отображать.
Не заваливайте пользователя рекламой.
Хотя увеличение частоты показа межстраничной рекламы в вашем приложении может показаться отличным способом увеличить доход, оно также может ухудшить взаимодействие с пользователем и снизить рейтинг кликов. Убедитесь, что пользователей не отвлекают так часто, что они больше не смогут получать удовольствие от использования вашего приложения.

Дополнительные ресурсы

Образцы

Истории успеха