Реклама с вознаграждением — это реклама, с которой пользователи могут взаимодействовать в обмен на внутриигровые награды. В этом руководстве показано, как интегрировать рекламу с вознаграждением из AdMob в приложение Unity.
Ознакомьтесь с историями успеха наших клиентов: пример 1 , пример 2 .В этом руководстве объясняется, как интегрировать рекламу с вознаграждением в приложение Unity.
Предварительные требования
- Пройдите руководство по началу работы .
Всегда проводите тестирование с помощью тестовых объявлений.
Приведённый ниже пример кода содержит идентификатор рекламного блока, который можно использовать для запроса тестовой рекламы. Он специально настроен на возврат тестовой рекламы, а не рабочей, для каждого запроса, что делает его безопасным в использовании.
Однако после регистрации приложения в веб-интерфейсе AdMob и создания собственных идентификаторов рекламных блоков для использования в приложении, во время разработки явно настройте свое устройство как тестовое .
Android
ca-app-pub-3940256099942544/5224354917
iOS
ca-app-pub-3940256099942544/1712485313
Инициализируйте SDK для мобильной рекламы.
Перед загрузкой рекламы ваше приложение должно инициализировать плагин Google Mobile Ads Unity, вызвав метод MobileAds.Initialize() . Это нужно сделать только один раз, в идеале при запуске приложения.
using GoogleMobileAds;
using GoogleMobileAds.Api;
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
public void Start()
{
// Initialize Google Mobile Ads Unity Plugin.
MobileAds.Initialize((InitializationStatus initStatus) =>
{
// This callback is called once the MobileAds SDK is initialized.
});
}
}
Если вы используете медиацию, дождитесь завершения обратного вызова, прежде чем загружать рекламу, так как это гарантирует инициализацию всех адаптеров медиации.
Загрузить рекламу с вознаграждением
Загрузка рекламы с вознаграждением осуществляется с помощью статического метода Load() класса RewardedAd . Загруженный объект RewardedAd передается в качестве параметра в обработчик завершения. Следующий пример загружает рекламу с вознаграждением:
Замените AD_UNIT_ID на идентификатор вашего рекламного блока.
[Необязательно] Проверка обратных вызовов серверной проверки (SSV)
Приложениям, требующим дополнительных данных в коллбэках проверки на стороне сервера, следует использовать функцию пользовательских данных в объявлениях с вознаграждением. Любое строковое значение, заданное для объекта объявления с вознаграждением, передается в параметр запроса custom_data коллбэка SSV. Если значение пользовательских данных не задано, значение параметра запроса custom_data не будет присутствовать в коллбэке SSV.
Приведенный ниже пример кода демонстрирует, как установить параметры SSV после загрузки рекламного объявления с вознаграждением.
Замените SAMPLE_CUSTOM_DATA_STRING на ваши пользовательские данные.
Если вы хотите задать пользовательскую строку вознаграждения, это необходимо сделать до показа рекламы.
Показать рекламу с вознаграждением, используя функцию обратного вызова для отображения вознаграждения.
При показе рекламы необходимо указать функцию обратного вызова для обработки вознаграждения пользователя. Реклама может отображаться только один раз за загрузку. Используйте метод CanShowAd() для проверки готовности рекламы к показу.
Приведённый ниже код демонстрирует наилучший способ отображения рекламы с вознаграждением.
if (rewardedAd != null && rewardedAd.CanShowAd())
{
rewardedAd.Show((Reward reward) =>
{
// The ad was showen and the user earned a reward.
});
}
Слушайте рекламные события с вознаграждением
Для дальнейшей настройки поведения вашей рекламы вы можете отслеживать ряд событий в жизненном цикле объявления. Следующий код отслеживает события, связанные с рекламой:
rewardedAd.OnAdPaid += (AdValue adValue) =>
{
// Raised when the ad is estimated to have earned money.
};
rewardedAd.OnAdImpressionRecorded += () =>
{
// Raised when an impression is recorded for an ad.
};
rewardedAd.OnAdClicked += () =>
{
// Raised when a click is recorded for an ad.
};
rewardedAd.OnAdFullScreenContentOpened += () =>
{
// Raised when the ad opened full screen content.
};
rewardedAd.OnAdFullScreenContentClosed += () =>
{
// Raised when the ad closed full screen content.
};
rewardedAd.OnAdFullScreenContentFailed += (AdError error) =>
{
// Raised when the ad failed to open full screen content.
};
Устраните недостатки в рекламе, за которую начисляются награды.
После завершения работы с RewardedAd обязательно вызовите метод Destroy() перед тем, как удалить ссылку на него:
if (rewardedAd != null)
{
rewardedAd.Destroy();
}
Этот метод уведомляет плагин о том, что объект больше не используется и занимаемая им память может быть освобождена. Невызов этого метода приводит к утечкам памяти.
Предварительно загрузите следующую рекламу с вознаграждением.
Объект RewardedAd является одноразовым. Это означает, что после показа рекламы с вознаграждением этот объект нельзя использовать повторно. Чтобы запросить показ еще одной рекламы с вознаграждением, вам потребуется создать новый объект RewardedAd .
Чтобы подготовить рекламное объявление с вознаграждением к следующему показу, предварительно загрузите его после того, как будет сгенерировано событие OnAdFullScreenContentClosed или OnAdFullScreenContentFailed .
Дополнительные ресурсы
- Пример HelloWorld : минимальная реализация всех форматов рекламы.