Предварительная загрузка объявления (альфа)

Выберите платформу: Android (бета-версия)Новый Android iOS Unity

Предварительная загрузка рекламы — это функция, управляемая Google при загрузке рекламы в Google Mobile Ads Unity Plugin , которая отвечает за загрузку и кэширование рекламы от вашего имени. Для использования предварительной загрузки рекламы необходимо изменить способ управления загрузкой рекламы. Чтобы оптимизировать производительность с помощью предварительной загрузки рекламы, отключите пользовательское кэширование и передайте эту задачу Google Mobile Ads Unity Plugin .

Предварительная загрузка рекламы имеет следующие преимущества по сравнению с ручной загрузкой рекламы:

  • Управление ссылками: блокирует загруженные рекламные объявления, поэтому вам не нужно поддерживать ссылки до тех пор, пока вы не будете готовы их показать.
  • Автоматическая перезагрузка: автоматически загружает новую рекламу, когда вы извлекаете предыдущую из кэша.
  • Управляемые повторные попытки: автоматически повторяют неудачные запросы, используя экспоненциальную задержку.
  • Обработка истечения срока действия: автоматически обновляет объявления до истечения их срока действия (обычно через час).
  • Оптимизация кэширования: если вы используете размер кэша больше единицы, Google Mobile Ads Unity Plugin оптимизирует порядок кэширования для показа наилучшей рекламы.

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

Предварительные требования

Прежде чем приступить к выполнению инструкций, необходимо выполнить следующие действия:

Начать предварительную загрузку рекламы

Чтобы начать предварительную загрузку рекламы, вызовите Preload() . Вызывайте этот метод только один раз при запуске приложения. После вызова Preload() Google Mobile Ads Unity Plugin автоматически выполнит предварительную загрузку рекламы и повторит неудачные запросы на предварительно загруженные конфигурации.

В следующем примере запускается предварительная загрузка рекламы:

var preloadConfiguration = new PreloadConfiguration
{
    AdUnitId = AD_UNIT_ID,
    Request = new AdRequest(),
};

// Start the preloading initialization process after MobileAds.Initialize().
InterstitialAdPreloader.Preload(
    // The Preload ID can be any unique string to identify this configuration.
    AD_UNIT_ID,
    preloadConfiguration);

Получите и покажите предварительно загруженную рекламу.

При использовании предварительной загрузки рекламы Google Mobile Ads Unity Plugin сохраняет кэшированные объявления. Чтобы показать объявление, вызовите DequeueAd() . Google Mobile Ads Unity Plugin получит доступное объявление и автоматически загрузит следующее объявление в фоновом режиме.

Не вызывайте этот метод, пока не будете готовы показать рекламу. Сохранение рекламы в кэше позволяет Google Mobile Ads Unity Plugin автоматически обновлять просроченную рекламу и выполнять оптимизацию кэша.

В следующем примере отображается предварительно загруженная реклама:

// DequeueAd returns the next available ad and loads another ad in the background.
var ad = InterstitialAdPreloader.DequeueAd(AD_UNIT_ID);

if (ad != null)
{
    // [Optional] Interact with the ad object as needed.
    ad.OnAdPaid += (AdValue value) =>
    {
        Debug.Log($"Ad paid: {value.CurrencyCode} {value.Value}");
        // [Optional] Send the impression-level ad revenue information to your preferred
        // analytics server directly within this callback.
    };

    // Do not hold onto preloaded ads, always show a preloaded ad immediately.
    ad.Show();
}

Проверьте доступность предварительной загрузки рекламы.

Чтобы проверить доступность рекламы, выберите один из следующих вариантов:

Получите доступ к предварительно загруженной рекламе.

В следующем примере проверяется доступность рекламы:

var isAdAvailable = InterstitialAdPreloader.IsAdAvailable(AD_UNIT_ID);

Слушайте, доступна ли предустановленная реклама

Зарегистрируйтесь для получения уведомлений о событиях предварительной загрузки, чтобы получать оповещения об успешной предварительной загрузке рекламы, сбое предварительной загрузки или исчерпании рекламного кэша.

События предварительной загрузки предназначены для аналитических целей. Внутри обработчиков событий предварительной загрузки:

  • Не вызывайте функцию Preload() .
  • Не вызывайте DequeueAd() если реклама не будет показана немедленно.

В следующем примере осуществляется регистрация для участия в рекламных мероприятиях:


void StartPreloadWithCallbacks()
{
    var preloadConfiguration = new PreloadConfiguration
    {
        AdUnitId = AD_UNIT_ID,
        Request = new AdRequest(),
    };

    // Start the preloading initialization process after MobileAds.Initialize().
    InterstitialAdPreloader.Preload(
        // The Preload ID can be any unique string to identify this configuration.
        AD_UNIT_ID,
        preloadConfiguration,
        onAdPreloaded,
        onAdFailedToPreload,
        onAdsExhausted);
}

void onAdPreloaded(string preloadId, ResponseInfo responseInfo)
{
    Debug.Log($"Preload ad configuration {preloadId} was preloaded.");
}

void onAdFailedToPreload(string preloadId, AdError adError)
{
    string errorMessage = $"Preload ad configuration {preloadId} failed to " +
                          $"preload with error : {adError.GetMessage()}.";
    Debug.Log(errorMessage);
}

void onAdsExhausted(string preloadId)
{
    Debug.Log($"Preload ad configuration {preloadId} was exhausted");
    // [Important] Don't call Preload() or DequeueAd() from onAdsExhausted.
}

Остановить предварительную загрузку рекламы

Если вам не нужно снова показывать рекламу с определенным идентификатором предварительной загрузки в рамках текущей сессии, вы можете остановить предварительную загрузку рекламы. Чтобы остановить предварительную загрузку рекламы для конкретного идентификатора предварительной загрузки, вызовите Destroy() с указанным идентификатором предварительной загрузки.

InterstitialAdPreloader.Destroy(AD_UNIT_ID);
InterstitialAdPreloader.DestroyAll();

Установите размер буфера

Размер буфера определяет количество предварительно загруженных рекламных объявлений, хранящихся в памяти. По умолчанию Google оптимизирует размер буфера для баланса между потреблением памяти и задержкой показа рекламы. Если ваше приложение показывает рекламу до загрузки следующей рекламы, вы можете установить пользовательский размер буфера, чтобы увеличить количество рекламных объявлений, хранящихся в памяти. Мы рекомендуем размер буфера не более четырех.

new PreloadConfiguration
{
    AdUnitId = AD_UNIT_ID,
    Request = new AdRequest(),
    BufferSize = 5
};