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

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

В этом руководстве рассказывается, как интегрировать объявления с вознаграждением в приложение 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.
    });
};

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