Нативная реклама — это рекламные материалы, которые отображаются пользователям через компоненты пользовательского интерфейса, являющиеся нативными для платформы. Она отображается с использованием тех же типов представлений, с помощью которых вы уже создаете свои макеты, и может быть отформатирована в соответствии с визуальным дизайном вашего приложения.
Когда загружается нативная реклама, ваше приложение получает объект рекламы, содержащий её ресурсы, и приложение, а не Google Mobile Ads SDK, затем отвечает за их отображение.
В общих чертах, успешная реализация нативной рекламы состоит из двух частей: загрузка рекламы с помощью SDK и последующее отображение рекламного контента в вашем приложении.
На этой странице показано, как использовать SDK для загрузки нативной рекламы . Совет: Узнайте больше о нативной рекламе в нашем руководстве по нативной рекламе .
Вы также можете ознакомиться с историями успеха наших клиентов: пример 1 , пример 2 .
Предварительные требования
- Пройдите руководство по началу работы .
Всегда проводите тестирование с помощью тестовых объявлений.
При разработке и тестировании приложений используйте тестовые объявления, а не рабочие, запущенные рекламные ролики.
Самый простой способ загрузить тестовую рекламу — использовать наш специальный идентификатор тестового рекламного блока для нативной рекламы на Android:
ca-app-pub-3940256099942544/2247696110
Он специально настроен на возврат тестовых объявлений для каждого запроса, и вы можете использовать его в своих приложениях во время кодирования, тестирования и отладки. Просто убедитесь, что вы заменили его на свой собственный идентификатор рекламного блока перед публикацией приложения.
Подробную информацию о тестовых объявлениях в Google Mobile Ads SDK см. в разделе «Включение тестовых объявлений» .
Загрузить рекламу
Нативная реклама загружается с помощью класса AdLoader , который имеет собственный класс Builder для его настройки во время создания. Добавляя обработчики событий к AdLoader при его создании, приложение указывает, какие типы нативной рекламы оно готово получать. Затем AdLoader запрашивает только эти типы.
Создайте AdLoader
Приведённый ниже код демонстрирует, как создать AdLoader , способный загружать нативную рекламу:
Java
Котлин
Замените AD_UNIT_ID на идентификатор вашего тестового устройства.
Метод forNativeAd() отвечает за подготовку AdLoader к формату NativeAd . После успешной загрузки объявления вызывается метод onNativeAdLoaded() объекта-слушателя.
Настройте AdListener с помощью AdLoader (необязательно)
При создании AdLoader функция withAdListener устанавливает AdListener для загрузчика. Метод принимает AdListener в качестве единственного параметра, который получает обратные вызовы от AdLoader при наступлении событий жизненного цикла объявления:
Java
adLoaderBuilder.withAdListener(
// Override AdListener callbacks here.
new AdListener() {});
Котлин
adLoaderBuilder.withAdListener(
// Override AdListener callbacks here.
object : AdListener() {}
)
Запросить рекламу
После завершения создания AdLoader , пришло время использовать его для запроса рекламы. Для этого доступны два метода: loadAd() и loadAds() .
loadAd()
Этот метод отправляет запрос на показ одного рекламного объявления.
Java
adLoader.loadAd(new AdRequest.Builder().build());
Котлин
adLoader.loadAd(AdRequest.Builder().build())
loadAds()
Этот метод отправляет запрос на показ нескольких объявлений (до пяти):
Java
// Load three native ads.
adLoader.loadAds(new AdRequest.Builder().build(), 3);
Котлин
// Load three native ads.
adLoader.loadAds(AdRequest.Builder().build(), 3)
Оба метода принимают в качестве первого параметра объект AdRequest . Это тот же класс AdRequest , который используется для баннеров и межстраничной рекламы, и вы можете использовать методы класса AdRequest для добавления информации о таргетинге , как и в других форматах рекламы.
Загрузить несколько объявлений (необязательно)
Метод loadAds() принимает дополнительный параметр: количество рекламных объявлений, которые SDK должен попытаться загрузить для запроса. Это число ограничено пятью, и нет гарантии, что SDK вернет точное количество запрошенных объявлений.
Все объявления Google, полученные в результате поиска, будут отличаться друг от друга, хотя уникальность объявлений, полученных из зарезервированного инвентаря или от сторонних покупателей, не гарантируется.
Не используйте метод loadAds() , если вы используете медиацию, поскольку запросы на показ нескольких нативных объявлений не работают для идентификаторов рекламных блоков, настроенных для медиации.
Обратные звонки
После вызова функции loadAd() выполняется единственный обратный вызов к ранее определенным методам-слушателям для доставки объекта нативной рекламы или сообщения об ошибке.
После вызова функции loadAds() выполняется несколько подобных обратных вызовов (как минимум один, но не более количества запрошенных объявлений). Приложения, запрашивающие несколько объявлений, должны вызывать AdLoader.isLoading() в своих реализациях обратных вызовов, чтобы определить, завершился ли процесс загрузки.
Вот пример, демонстрирующий, как проверить значение isLoading() в функции обратного вызова onNativeAdLoaded() :
Java
adLoaderBuilder
.forNativeAd(
nativeAd -> {
// This callback is invoked when a native ad is successfully loaded.
})
.build();
Котлин
adLoaderBuilder
.forNativeAd { nativeAd ->
// This callback is invoked when a native ad is successfully loaded.
}
.build()
Выпустить ресурсы
Обязательно используйте метод destroy() для загруженных нативных рекламных объявлений. Это освободит используемые ресурсы и предотвратит утечки памяти.
Убедитесь, что все ссылки NativeAd уничтожены в методе onDestroy() вашего Activity.
В обработчике события onNativeAdLoaded обязательно удалите все существующие нативные объявления, на которые будут ссылаться другие обработчики.
Ещё одна важная проверка — уничтожение активности, и если это так, то следует вызвать destroy() для возвращенного объявления и немедленно вернуться:
Java
nativeAd.destroy();
Котлин
nativeAd.destroy()
Передовые методы
При загрузке рекламы соблюдайте следующие правила.
Приложения, использующие нативную рекламу в виде списка, должны предварительно кэшировать этот список объявлений.
При предварительном кэшировании рекламы очистите кеш и перезагрузите страницу через час.
- Не вызывайте
loadAd()илиloadAds()дляAdLoaderдо тех пор, пока не завершится загрузка первого запроса.
Ограничьте кэширование нативной рекламы только необходимыми данными. Например, при предварительном кэшировании кэшируйте только те объявления, которые сразу видны на экране. Нативная реклама потребляет много памяти, и кэширование нативной рекламы без её удаления приводит к чрезмерному использованию памяти.
Удалять нативную рекламу, когда она больше не используется.
Аппаратное ускорение для видеорекламы
Для корректного отображения видеорекламы в ваших нативных рекламных окнах необходимо включить аппаратное ускорение .
Аппаратное ускорение включено по умолчанию, но некоторые приложения могут его отключить. Если это относится к вашему приложению, мы рекомендуем включить аппаратное ускорение для классов Activity, использующих рекламу.
Включение аппаратного ускорения
Если ваше приложение работает некорректно при глобально включенном аппаратном ускорении, вы можете управлять им и для отдельных активностей. Чтобы включить или отключить аппаратное ускорение, используйте атрибут android:hardwareAccelerated для элементов <application> и <activity> в вашем AndroidManifest.xml . В следующем примере аппаратное ускорение включено для всего приложения, но отключено для одной активности:
<application android:hardwareAccelerated="true">
<!-- For activities that use ads, hardwareAcceleration should be true. -->
<activity android:hardwareAccelerated="true" />
<!-- For activities that don't use ads, hardwareAcceleration can be false. -->
<activity android:hardwareAccelerated="false" />
</application>
Дополнительную информацию о параметрах управления аппаратным ускорением см. в руководстве по аппаратному ускорению . Обратите внимание, что аппаратное ускорение для отдельных рекламных объявлений нельзя включить, если активность отключена, поэтому для самой активности необходимо включить аппаратное ускорение.
Показать свою рекламу
После загрузки рекламы остается только показать ее пользователям. Подробнее об этом читайте в нашем руководстве по расширенным функциям нативной рекламы .