Нативная реклама — это рекламные материалы, которые отображаются для пользователей через компоненты пользовательского интерфейса, встроенные в платформу. Они отображаются с использованием тех же типов представлений, которые используются в макетах, и могут быть отформатированы в соответствии с визуальным дизайном вашего приложения.
При загрузке нативной рекламы ваше приложение получает объект рекламы, содержащий ее активы, и приложение, а не Google Mobile Ads SDK (бета-версия), отвечает за их отображение.
В общих чертах, успешная реализация нативной рекламы состоит из двух частей: загрузка рекламы с помощью SDK и последующее отображение рекламного контента в вашем приложении.
На этой странице показано, как использовать SDK для загрузки нативной рекламы .
Предпосылки
- Заполните руководство по началу работы .
- Google Mobile Ads SDK (бета) 0.6.0-alpha01 или выше.
Всегда проверяйте с помощью тестовых объявлений
При создании и тестировании приложений обязательно используйте тестовые объявления, а не реальные, производственные. В противном случае ваш аккаунт может быть заблокирован.
Самый простой способ загрузить тестовую рекламу — использовать наш специальный идентификатор тестового рекламного блока для нативной рекламы:
Формат рекламы | Пример идентификатора рекламного блока |
---|---|
Родной | /21775744923/example/native |
Нативное видео | /21775744923/example/native-video |
Загрузить объявление
Чтобы загрузить нативную рекламу, вызовите метод NativeAdLoader.load()
, который принимает NativeAdRequest
и NativeAdLoaderCallback
.
import com.google.android.libraries.ads.mobile.sdk.common.LoadAdError
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAd
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdLoader
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdLoaderCallback
import com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdRequest
class NativeFragment : Fragment() {
private var nativeAd: NativeAd? = null
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
loadAd()
}
private fun loadAd() {
// Build an ad request with native ad options to customize the ad.
val adRequest = NativeAdRequest
.Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.NATIVE))
.build()
val adCallback =
object : NativeAdLoaderCallback {
override fun onNativeAdLoaded(nativeAd: NativeAd) {
// Called when a native ad has loaded.
}
override fun onAdFailedToLoad(adError: LoadAdError) {
// Called when a native ad has failed to load.
}
}
// Load the native ad with our request and callback.
NativeAdLoader.load(adRequest, adCallback)
}
companion object {
// Sample native ad unit ID.
const val AD_UNIT_ID = "/21775744923/example/native"
}
}
Установите обратный вызов события нативной рекламы
При обработке onNativeAdLoaded
установите полученный NativeAd
с NativeAdEventCallback
, чтобы определить функции для получения событий жизненного цикла нативной рекламы:
nativeAd.adEventCallback =
object : NativeAdEventCallback {
override fun onAdShowedFullScreenContent() {
// Native ad showed full screen content.
}
override fun onAdDismissedFullScreenContent() {
// Native ad dismissed full screen content.
}
override fun onAdFailedToShowFullScreenContent {
// Native ad failed to show full screen content.
}
override fun onAdImpression() {
// Native ad recorded an impression.
}
override fun onAdClicked() {
// Native ad recorded a click.
}
}
Необязательно: загрузите несколько объявлений
Чтобы загрузить несколько объявлений, вызовите метод load()
с необязательным параметром numberOfAds
. Максимальное значение, которое можно задать, — 5
, что соответствует количеству объявлений. Google Mobile Ads SDK (бета-версия) может не возвращать точное количество запрошенных вами объявлений.
private fun loadAd() {
// Build an ad request with native ad options to customize the ad.
val adRequest = NativeAdRequest
.Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.NATIVE))
.build()
val adCallback =
object : NativeAdLoaderCallback {
override fun onNativeAdLoaded(nativeAd: NativeAd) {
// Called when a native ad has loaded.
}
override fun onAdFailedToLoad(adError: LoadAdError) {
// Called when a native ad has failed to load.
}
override fun onAdLoadingCompleted() {
// Called when all native ads have loaded.
}
}
// Load the native ad with our request and callback.
NativeAdLoader.load(adRequest, 3, adCallback)
}
Объявления, возвращаемые Google Mobile Ads SDK (бета-версия), являются уникальными, хотя объявления из зарезервированного инвентаря или от сторонних покупателей могут не быть уникальными.
Если вы используете медиацию, не вызывайте метод load()
. Запросы нескольких нативных объявлений не работают для идентификаторов рекламных блоков, настроенных для медиации.
Лучшие практики
Соблюдайте эти правила при загрузке объявлений.
Приложения, использующие нативную рекламу в списке, должны предварительно кэшировать список рекламы.
При предварительном кэшировании рекламы очистите кэш и перезагрузите страницу через час.
Ограничьте кэширование нативной рекламы только необходимыми элементами. Например, при предварительном кэшировании кэшируйте только те объявления, которые сразу видны на экране. Нативная реклама занимает большой объём памяти, и кэширование нативной рекламы без её удаления приводит к её чрезмерному использованию.
Удаляйте нативную рекламу, если она больше не используется.
Аппаратное ускорение для видеорекламы
Для успешного показа видеорекламы в нативных рекламных окнах необходимо включить аппаратное ускорение .
Аппаратное ускорение включено по умолчанию, но некоторые приложения могут его отключить. Если это относится к вашему приложению, мы рекомендуем включить аппаратное ускорение для классов 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>
Дополнительную информацию о параметрах управления аппаратным ускорением см. в руководстве по аппаратному ускорению. Обратите внимание, что аппаратное ускорение для отдельных показов рекламы невозможно включить, если Activity отключено, поэтому для самого Activity необходимо включить аппаратное ускорение.
Покажите свою рекламу
После загрузки рекламы вам остаётся только показывать её пользователям. Подробнее об этом читайте в нашем руководстве Native Advanced .
Пример
Загрузите и запустите пример приложения , демонстрирующий использование Google Mobile Ads SDK (бета-версия).