Объявления с вознаграждением

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

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

Требования

Прежде чем продолжить, настройте Google Mobile Ads Unity Plugin.

Всегда используйте тестовые объявления

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

Однако после того, как вы зарегистрируете приложение в веб-интерфейсе Менеджера рекламы и создадите собственные идентификаторы рекламных блоков для использования в приложении, вам нужно будет настроить свое устройство как тестовое.

/21775744923/example/interstitial

Инициализация Google Mobile Ads Unity Plugin

Перед загрузкой объявлений инициализируйте Google Mobile Ads Unity Plugin, вызвав 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 передается в качестве параметра в обработчик завершения. В примере ниже загружается объявление с вознаграждением.

// Create our request used to load the ad.
var adRequest = new AdRequest();

// Send the request to load the ad.
RewardedAd.Load("AD_UNIT_ID", adRequest, (RewardedAd ad, LoadAdError error) =>
{
    if (error != null)
    {
        // The ad failed to load.
        return;
    }
    // The ad loaded successfully.
});

Замените AD_UNIT_ID идентификатором своего рекламного блока.

Как проверить обратные вызовы при проверке на стороне сервера (необязательно)

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

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

// Create and pass the SSV options to the rewarded ad.
var options = new ServerSideVerificationOptions
{
    CustomData = ""SAMPLE_CUSTOM_DATA_STRING""
};

rewardedAd.SetServerSideVerificationOptions(options);

Замените 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.

rewardedAd.OnAdFullScreenContentClosed += () =>
{
    // Reload the ad so that we can show another as soon as possible.
    var adRequest = new AdRequest();
    RewardedAd.Load("AD_UNIT_ID", adRequest, (RewardedAd ad, LoadAdError error) =>
    {
        // Handle ad loading here.
    });
};

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