Нативная реклама — это рекламные ресурсы, которые отображаются для пользователей через компоненты пользовательского интерфейса, встроенные в платформу. Они отображаются с использованием тех же классов, которые вы уже используете в своих раскадровках, и могут быть отформатированы в соответствии с визуальным дизайном вашего приложения.
При загрузке нативной рекламы ваше приложение получает объект рекламы, содержащий ее активы, и приложение, а не Google Mobile Ads SDK, отвечает за их отображение.
В общих чертах, успешная реализация нативной рекламы состоит из двух частей: загрузка рекламы с помощью SDK и последующее отображение рекламного контента в вашем приложении.
На этой странице показано, как использовать SDK для загрузки нативной рекламы .
Предпосылки
- Заполните руководство по началу работы .
Всегда проверяйте с помощью тестовых объявлений
При создании и тестировании приложений обязательно используйте тестовые объявления, а не реальные, производственные.
Самый простой способ загрузить тестовую рекламу — использовать наш специальный идентификатор тестового рекламного блока для нативной рекламы на iOS:
/21775744923/example/native
Он специально настроен для возврата тестовых объявлений при каждом запросе, и вы можете использовать его в своих приложениях при кодировании, тестировании и отладке. Просто убедитесь, что вы заменили его на свой идентификатор рекламного блока перед публикацией приложения.
Дополнительную информацию о работе тестовых объявлений Google Mobile Ads SDK см. в разделе Тестовые объявления .
Загрузить рекламу
Нативная реклама загружается с помощью класса GADAdLoader
, который отправляет сообщения своим делегатам в соответствии с протоколом GADAdLoaderDelegate
.
Помимо системного нативного формата, вы также можете создавать собственные форматы нативной рекламы , которые можно использовать для прямых продаж нативной рекламы. Пользовательские форматы нативной рекламы позволяют передавать в приложение произвольные структурированные данные. Такие объявления представлены классом GADCustomNativeAd
.
Инициализируйте загрузчик рекламы
Прежде чем загрузить рекламу, необходимо инициализировать загрузчик рекламы. Следующий код демонстрирует, как инициализировать GADAdLoader
:
Быстрый
adLoader = AdLoader(adUnitID: "/21775744923/example/native",
// The UIViewController parameter is optional.
rootViewController: rootViewController,
adTypes: [ .native ],
options: [ ... ad loader options objects ... ])
adLoader.delegate = self
Objective-C
self.adLoader = [[GADAdLoader alloc]
initWithAdUnitID:@"/21775744923/example/native"
// The UIViewController parameter is nullable.
rootViewController:rootViewController
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;
Вам понадобится идентификатор рекламного блока (можно использовать тестовый идентификатор), константы для передачи в массив adTypes
, чтобы указать, какие нативные форматы вы хотите запросить, и любые параметры, которые вы хотите задать в параметре options
. Список возможных значений параметра options
можно найти на странице «Настройка параметров нативной рекламы» .
Массив adTypes
должен содержать одну или несколько из следующих констант:
Реализуйте делегат загрузчика рекламы
Делегат загрузчика рекламы должен реализовывать протоколы, специфичные для вашего типа рекламы. Для нативной рекламы протокол GADNativeAdLoaderDelegate
включает сообщение, которое отправляется делегату после загрузки нативной рекламы.
Быстрый
public func adLoader(_ adLoader: AdLoader,
didReceive nativeAd: NativeAd)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveNativeAd:(GADNativeAd *)nativeAd;
Протокол GADCustomNativeAdLoaderDelegate
включает сообщение, которое отправляется делегату после загрузки пользовательского шаблона рекламы.
Быстрый
func adLoader(_ adLoader: AdLoader,
Receive customNativeAd: CustomNativeAd)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveCustomNativeAd:(GADCustomNativeAd *) customNativeAd;
Запрос рекламы
После инициализации GADAdLoader
вызовите его метод loadRequest:
чтобы запросить рекламу:
Быстрый
adLoader.load(AdManagerRequest())
Objective-C
[self.adLoader loadRequest:[GAMRequest request]];
Метод loadRequest:
в GADAdLoader
принимает те же объекты GAMRequest
, что и баннеры и полноэкранные объявления. Вы можете использовать объекты request для добавления информации о таргетинге , как и для других типов рекламы.
Определение момента завершения загрузки
После того, как приложение вызовет loadRequest:
оно может получить результаты запроса, используя вызовы:
-
adLoader:didFailToReceiveAdWithError:
вGADAdLoaderDelegate
-
adLoader:didReceiveNativeAd:
вGADNativeAdLoaderDelegate
Запрос одного объявления приведет к одному вызову одного из этих методов.
Обработка неудачных запросов
Вышеуказанные протоколы расширяют протокол GADAdLoaderDelegate
, который определяет сообщение, отправляемое в случае, если реклама не загружается.
Быстрый
public func adLoader(_ adLoader: AdLoader,
didFailToReceiveAdWithError error: NSError)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didFailToReceiveAdWithError:(NSError *)error;
Получайте уведомления о событиях нативной рекламы
Чтобы получать уведомления о событиях, связанных с взаимодействием с нативной рекламой, задайте свойство делегата нативной рекламы:
Быстрый
nativeAd.delegate = self
Objective-C
nativeAd.delegate = self;
Затем реализуйте GADNativeAdDelegate
для получения следующих вызовов делегата:
Быстрый
func nativeAdDidRecordImpression(_ nativeAd: NativeAd) {
// The native ad was shown.
}
func nativeAdDidRecordClick(_ nativeAd: NativeAd) {
// The native ad was clicked on.
}
func nativeAdWillPresentScreen(_ nativeAd: NativeAd) {
// The native ad will present a full screen view.
}
func nativeAdWillDismissScreen(_ nativeAd: NativeAd) {
// The native ad will dismiss a full screen view.
}
func nativeAdDidDismissScreen(_ nativeAd: NativeAd) {
// The native ad did dismiss a full screen view.
}
func nativeAdWillLeaveApplication(_ nativeAd: NativeAd) {
// The native ad will cause the app to become inactive and
// open a new app.
}
Objective-C
- (void)nativeAdDidRecordImpression:(GADNativeAd *)nativeAd {
// The native ad was shown.
}
- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
// The native ad was clicked on.
}
- (void)nativeAdWillPresentScreen:(GADNativeAd *)nativeAd {
// The native ad will present a full screen view.
}
- (void)nativeAdWillDismissScreen:(GADNativeAd *)nativeAd {
// The native ad will dismiss a full screen view.
}
- (void)nativeAdDidDismissScreen:(GADNativeAd *)nativeAd {
// The native ad did dismiss a full screen view.
}
- (void)nativeAdWillLeaveApplication:(GADNativeAd *)nativeAd {
// The native ad will cause the app to become inactive and
// open a new app.
}
Лучшие практики
Соблюдайте эти правила при загрузке объявлений.
Приложения, использующие нативную рекламу в списке, должны предварительно кэшировать список рекламы.
При предварительном кэшировании рекламы очистите кэш и перезагрузите страницу через час.
Не вызывайте
loadRequest:
снова вGADAdLoader
, пока не завершится загрузка предыдущего запроса, как указано вadLoaderDidFinishLoading:
.Ограничьте кэширование нативной рекламы только необходимыми элементами. Например, при предварительном кэшировании кэшируйте только те объявления, которые сразу видны на экране. Нативная реклама занимает большой объём памяти, и кэширование нативной рекламы без её удаления приводит к её чрезмерному использованию.
Удаляйте нативную рекламу, если она больше не используется.
Покажите свою рекламу
После загрузки рекламы вам останется только показывать её пользователям. Подробнее об этом читайте в нашем руководстве Native Advanced .