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

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

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

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

  • Управление ссылками: блокирует загруженные рекламные объявления, поэтому вам не нужно поддерживать ссылки до тех пор, пока вы не будете готовы их показать.
  • Автоматическая перезагрузка: автоматически загружает новую рекламу, когда вы извлекаете предыдущую из кэша.
  • Управляемые повторные попытки: автоматически повторяют неудачные запросы, используя экспоненциальную задержку.
  • Обработка истечения срока действия: автоматически обновляет объявления до истечения их срока действия (обычно через час).
  • Оптимизация кэширования: если вы используете размер кэша больше единицы, 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 может хранить в памяти максимум 6 предварительно загруженных объявлений. Это ограничение действует для всех форматов и идентификаторов предварительной загрузки.
  • Мы рекомендуем устанавливать размер буфера равным двум для каждого идентификатора предварительной загрузки.