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

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

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

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

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

Требования

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

Начать предзагрузку объявлений

При запуске приложения вызовите метод start один раз. После вызова метода start Google Mobile Ads Flutter Plugin автоматически выполняет предварительную загрузку объявлений и повторно отправляет запросы, которые не удалось выполнить для предварительно загруженных конфигураций.

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

InterstitialAdPreloader.start(
  preloadId: _adUnitId,
  preloadConfiguration: PreloadConfiguration(adUnitId: _adUnitId),
  callback: const PreloadCallback(),
);

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

Получите и покажите предзагруженное объявление

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

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

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

void _pollAndShowAd() async {
  final InterstitialAd? ad = await InterstitialAdPreloader.pollAd(_adUnitId);
  if (ad != null) {
    _interstitialAd = ad;
    ad.fullScreenContentCallback = FullScreenContentCallback(
      onAdImpression: (ad) {
        // Called when an impression occurs on the ad.
        debugPrint('Ad recorded an impression.');
      },
    );
    ad.onPaidEvent = (ad, valueMicros, precision, currencyCode) {
      // Called when an ad is estimated to have earned money.
      debugPrint('Ad paid: $valueMicros $currencyCode.');
    };
    // Show the ad.
    await ad.show();
  }
}

Как проверить доступность предварительно загруженного объявления

Чтобы проверить доступность объявлений, выполните одно из следующих действий:

Как проверить доступность предзагруженного объявления

В следующем примере проверяется доступность объявления:

void _checkAdAvailability() async {
  final bool isAvailable = await InterstitialAdPreloader.isAdAvailable(
    _adUnitId,
  );
  debugPrint('Is ad available: $isAvailable');
}

Прослушивание доступности предзагруженных объявлений

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

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

  • Не вызывать start.
  • Не вызывайте метод pollAd, если объявление не будет показано сразу.

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

InterstitialAdPreloader.start(
  preloadId: _adUnitId,
  preloadConfiguration: PreloadConfiguration(adUnitId: _adUnitId),
  callback: PreloadCallback(
    onAdPreloaded: (preloadId, responseInfo) {
      debugPrint('Ad preloaded for ID: $preloadId');
    },
    onAdFailedToPreload: (preloadId, error) {
      debugPrint('Ad failed to preload for ID: $preloadId. Error: $error');
    },
    onAdsExhausted: (preloadId) {
      debugPrint('All preloaded ads exhausted for ID: $preloadId');
    },
  ),
);

Как отключить предварительную загрузку объявлений

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

void _stopPreloading() async {
  await InterstitialAdPreloader.destroy(_adUnitId);
}

Как задать размер буфера

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

InterstitialAdPreloader.start(
  preloadId: _adUnitId,
  preloadConfiguration: PreloadConfiguration(
    adUnitId: _adUnitId,
    bufferSize: 3,
  ),
  callback: const PreloadCallback(),
);

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

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

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