Реклама с вознаграждением — это реклама, с которой пользователи могут взаимодействовать в обмен на награды внутри приложения. В этом руководстве показано, как интегрировать рекламу с вознаграждением из AdMob в приложение Unity.
Прочитайте несколько историй успеха клиентов: пример 1 , пример 2 .В этом руководстве объясняется, как интегрировать рекламу с вознаграждением в приложение Unity.
Предпосылки
- Заполните руководство по началу работы .
Всегда проверяйте с помощью тестовых объявлений
Следующий пример кода содержит идентификатор рекламного блока, который можно использовать для запроса тестовых объявлений. Он специально настроен на возврат тестовых, а не рабочих объявлений при каждом запросе, что делает его безопасным для использования.
Однако после регистрации приложения в веб-интерфейсе AdMob и создания собственных идентификаторов рекламных блоков для использования в вашем приложении явно настройте свое устройство как тестовое во время разработки.
Андроид
ca-app-pub-3940256099942544/5224354917
iOS
ca-app-pub-3940256099942544/1712485313
Инициализируйте 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()
класса 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 : минимальная реализация всех форматов рекламы.