Интерстициальная реклама — это полноэкранная реклама, которая закрывает интерфейс своего хост-приложения. Обычно она отображается в естественных точках перехода в потоке приложения, например, во время паузы между уровнями в игре. Когда приложение показывает промежуточную рекламу, у пользователя есть выбор: нажать на рекламу и продолжить к месту назначения или закрыть ее и вернуться в приложение. Пример использования .
В этом руководстве объясняется, как интегрировать рекламные объявления в приложение Unity.
Предпосылки
- Заполните руководство по началу работы .
Всегда проводите тестирование с помощью тестовых объявлений
Следующий пример кода содержит идентификатор рекламного блока, который можно использовать для запроса тестовых объявлений. Он был специально настроен для возврата тестовых объявлений вместо производственных объявлений для каждого запроса, что делает его безопасным для использования.
Однако после того, как вы зарегистрируете приложение в веб-интерфейсе AdMob и создадите собственные идентификаторы рекламных блоков для использования в своем приложении, явно настройте свое устройство как тестовое во время разработки.
андроид
ca-app-pub-3940256099942544/1033173712
iOS
ca-app-pub-3940256099942544/4411468910
Инициализируйте SDK мобильной рекламы
Перед загрузкой рекламы ваше приложение должно инициализировать Mobile Ads SDK, вызвав MobileAds.Initialize()
. Это нужно сделать только один раз, в идеале при запуске приложения.
using GoogleMobileAds;
using GoogleMobileAds.Api;
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
public void Start()
{
// Initialize the Google Mobile Ads SDK.
MobileAds.Initialize((InitializationStatus initStatus) =>
{
// This callback is called once the MobileAds SDK is initialized.
});
}
}
Если вы используете посредничество, дождитесь обратного вызова перед загрузкой рекламы, поскольку это гарантирует инициализацию всех адаптеров посредничества.
Выполнение
Основные шаги по интеграции межстраничной рекламы:
- Загрузите промежуточную рекламу
- Показать промежуточную рекламу
- Прослушивание событий межстраничной рекламы
- Уберите промежуточную рекламу
- Предварительная загрузка следующей рекламной вставки
Загрузите промежуточную рекламу
Загрузка промежуточной рекламы выполняется с помощью статического метода Load()
класса InterstitialAd
. Методу load требуется идентификатор рекламного блока, объект AdRequest
и обработчик завершения, который вызывается при успешной или неудачной загрузке рекламы. Загруженный объект InterstitialAd
предоставляется в качестве параметра в обработчике завершения. В примере ниже показано, как загрузить InterstitialAd
.
// These ad units are configured to always serve test ads.
#if UNITY_ANDROID
private string _adUnitId = "ca-app-pub-3940256099942544/1033173712";
#elif UNITY_IPHONE
private string _adUnitId = "ca-app-pub-3940256099942544/4411468910";
#else
private string _adUnitId = "unused";
#endif
private InterstitialAd _interstitialAd;
/// <summary>
/// Loads the interstitial ad.
/// </summary>
public void LoadInterstitialAd()
{
// Clean up the old ad before loading a new one.
if (_interstitialAd != null)
{
_interstitialAd.Destroy();
_interstitialAd = null;
}
Debug.Log("Loading the interstitial ad.");
// create our request used to load the ad.
var adRequest = new AdRequest();
// send the request to load the ad.
InterstitialAd.Load(_adUnitId, adRequest,
(InterstitialAd ad, LoadAdError error) =>
{
// if error is not null, the load request failed.
if (error != null || ad == null)
{
Debug.LogError("interstitial ad failed to load an ad " +
"with error : " + error);
return;
}
Debug.Log("Interstitial ad loaded with response : "
+ ad.GetResponseInfo());
_interstitialAd = ad;
});
}
Показать промежуточную рекламу
Чтобы показать загруженную промежуточную рекламу, вызовите метод Show()
для экземпляра InterstitialAd
. Реклама может быть показана один раз за загрузку. Используйте метод CanShowAd()
, чтобы проверить, что реклама готова к показу.
/// <summary>
/// Shows the interstitial ad.
/// </summary>
public void ShowInterstitialAd()
{
if (_interstitialAd != null && _interstitialAd.CanShowAd())
{
Debug.Log("Showing interstitial ad.");
_interstitialAd.Show();
}
else
{
Debug.LogError("Interstitial ad is not ready yet.");
}
}
Прослушивание событий межстраничной рекламы
Чтобы еще больше настроить поведение вашей рекламы, вы можете подключиться к ряду событий в жизненном цикле рекламы. Прослушивайте эти события, регистрируя делегата, как показано ниже.
private void RegisterEventHandlers(InterstitialAd interstitialAd)
{
// Raised when the ad is estimated to have earned money.
interstitialAd.OnAdPaid += (AdValue adValue) =>
{
Debug.Log(String.Format("Interstitial ad paid {0} {1}.",
adValue.Value,
adValue.CurrencyCode));
};
// Raised when an impression is recorded for an ad.
interstitialAd.OnAdImpressionRecorded += () =>
{
Debug.Log("Interstitial ad recorded an impression.");
};
// Raised when a click is recorded for an ad.
interstitialAd.OnAdClicked += () =>
{
Debug.Log("Interstitial ad was clicked.");
};
// Raised when an ad opened full screen content.
interstitialAd.OnAdFullScreenContentOpened += () =>
{
Debug.Log("Interstitial ad full screen content opened.");
};
// Raised when the ad closed full screen content.
interstitialAd.OnAdFullScreenContentClosed += () =>
{
Debug.Log("Interstitial ad full screen content closed.");
};
// Raised when the ad failed to open full screen content.
interstitialAd.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Interstitial ad failed to open full screen content " +
"with error : " + error);
};
}
Уберите промежуточную рекламу
Когда вы закончите работу с InterstitialAd
, обязательно вызовите метод Destroy()
прежде чем удалять ссылку на него:
_interstitialAd.Destroy();
Это уведомляет плагин о том, что объект больше не используется и занимаемая им память может быть освобождена. Невызов этого метода приводит к утечкам памяти.
Предварительная загрузка следующей рекламной вставки
Interstitial ads — это одноразовый объект. Это означает, что после показа interstitial ads объект не может быть использован снова. Чтобы запросить еще одну interstitial ads, создайте новый объект InterstitialAd
.
Чтобы подготовить рекламное объявление к следующему показу, предварительно загрузите его после возникновения события OnAdFullScreenContentClosed
или OnAdFullScreenContentFailed
.
private void RegisterReloadHandler(InterstitialAd interstitialAd)
{
// Raised when the ad closed full screen content.
interstitialAd.OnAdFullScreenContentClosed += ()
{
Debug.Log("Interstitial Ad full screen content closed.");
// Reload the ad so that we can show another as soon as possible.
LoadInterstitialAd();
};
// Raised when the ad failed to open full screen content.
interstitialAd.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Interstitial ad failed to open full screen content " +
"with error : " + error);
// Reload the ad so that we can show another as soon as possible.
LoadInterstitialAd();
};
}
Лучшие практики
- Определите, являются ли межстраничные объявления подходящим типом рекламы для вашего приложения.
- Интерстициальная реклама лучше всего работает в приложениях с естественными точками перехода. Завершение задачи в приложении, например, отправка изображения или завершение игрового уровня, создает такую точку. Обязательно продумайте, в каких точках потока вашего приложения лучше всего отображать промежуточную рекламу и как пользователь, скорее всего, отреагирует.
- Приостановите действие при показе рекламного объявления.
- Существует ряд различных типов рекламных вставок, таких как текст, изображение или видео. Важно убедиться, что когда ваше приложение отображает рекламу, оно также приостанавливает использование некоторых ресурсов, чтобы реклама могла воспользоваться ими. Например, когда вы делаете вызов для отображения рекламы, обязательно приостановите любой аудиовыход, производимый вашим приложением. Вы можете возобновить воспроизведение звуков в событии
OnAdFullScreenContentClosed()
, которое может быть вызвано, когда пользователь закончит взаимодействовать с рекламой. Кроме того, рассмотрите возможность временной остановки любых интенсивных вычислительных задач, таких как игровой цикл, во время отображения рекламы. Это гарантирует, что пользователь не столкнется с медленной или неотзывчивой графикой или прерывистым видео. - Не перегружайте пользователя рекламой.
- Хотя увеличение частоты показов рекламных вставок в вашем приложении может показаться отличным способом увеличить доход, это также может ухудшить пользовательский опыт и снизить показатели кликабельности. Убедитесь, что пользователи не будут отвлекаться так часто, что они больше не смогут наслаждаться использованием вашего приложения.
Дополнительные ресурсы
- Пример HelloWorld : минимальная реализация всех форматов рекламы.