Предварительная загрузка рекламы (бета-версия)

Выберите платформу: Android iOS Unity Android (Legacy)

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

Избегайте вызова метода DequeueAd , пока не будете готовы показать рекламу. Хранение рекламы в кэше позволяет 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 с указанным идентификатором предварительной загрузки. Чтобы остановить предварительную загрузку для всех предварительных загрузчиков, вызовите DestroyAll .

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

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

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

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

Ограничения предварительной загрузки кэша

Google Mobile Ads Unity Plugin устанавливает общеприложениевое ограничение на общее количество предварительно загруженных объявлений во всех рекламных блоках и идентификаторах предварительной загрузки:

  • Ограничение по умолчанию: Google Mobile Ads Unity Plugin хранит в памяти максимум 6 предварительно загруженных объявлений. Это ограничение действует для всех форматов и идентификаторов предварительной загрузки.
  • Мы рекомендуем устанавливать размер буфера равным 2 или 3 на каждый идентификатор предварительной загрузки.