Предварительная загрузка рекламы — это функция, управляемая Google при загрузке рекламы в Google Mobile Ads Unity Plugin , которая отвечает за загрузку и кэширование рекламы от вашего имени. Для использования предварительной загрузки рекламы необходимо изменить способ управления загрузкой рекламы. Чтобы оптимизировать производительность с помощью предварительной загрузки рекламы, отключите пользовательское кэширование и передайте эту задачу Google Mobile Ads Unity Plugin .
Предварительная загрузка рекламы имеет следующие преимущества по сравнению с ручной загрузкой рекламы:
- Управление ссылками: блокирует загруженные рекламные объявления, поэтому вам не нужно поддерживать ссылки до тех пор, пока вы не будете готовы их показать.
- Автоматическая перезагрузка: автоматически загружает новую рекламу, когда вы извлекаете предыдущую из кэша.
- Управляемые повторные попытки: автоматически повторяют неудачные запросы, используя экспоненциальную задержку.
- Обработка истечения срока действия: автоматически обновляет объявления до истечения их срока действия (обычно через час).
- Оптимизация кэширования: если вы используете размер кэша больше единицы, Google Mobile Ads Unity Plugin оптимизирует порядок кэширования для показа наилучшей рекламы.
В этом руководстве рассматриваются вопросы настройки предварительной загрузки рекламы, проверки доступности предварительной загрузки рекламы и показа предварительно загруженной рекламы.
Предварительные требования
Прежде чем приступить к выполнению инструкций, необходимо выполнить следующие действия:
- Установите Google Mobile Ads Unity Plugin версии 10.3.0 или выше.
- Настройте Google Mobile Ads Unity Plugin .
Используйте Android SDK версии
24.4.0и iOS SDK версии12.6.0.Дополнительно: Загрузите и запустите пример приложения для предварительной загрузки рекламы .
Начать предварительную загрузку рекламы
Чтобы начать предварительную загрузку рекламы, вызовите 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
};