Нативные объявления – это объекты объявлений, которые показываются пользователям через компоненты интерфейса, нативные для платформы. Они показываются с помощью тех же классов, которые вы уже используете в раскадровках, и могут быть оформлены в соответствии с визуальным дизайном вашего приложения.
При загрузке нативного объявления приложение получает объект объявления, содержащий его объекты, и затем приложение, а не Google Mobile Ads SDK, отвечает за их показ.
В целом успешное внедрение нативных объявлений состоит из двух частей: загрузка объявления с помощью SDK и последующий показ рекламного контента в приложении.
На этой странице рассказывается, как использовать SDK для загрузки нативных объявлений.
Требования
Прежде чем продолжить, настройте Google Mobile Ads SDK.
Всегда используйте тестовые объявления
При создании и тестировании приложений используйте тестовые объявления, а не реальные.
Проще всего загрузить тестовые объявления, используя идентификатор тестового рекламного блока для нативных объявлений на iOS:
ca-app-pub-3940256099942544/3986624511
Он специально настроен так, чтобы возвращать тестовые объявления для каждого запроса. Вы можете использовать его в своих приложениях при написании кода, тестировании и отладке. Не забудьте заменить его на идентификатор своего рекламного блока перед публикацией приложения.
Подробнее о Google Mobile Ads SDKтестовых объявлениях …
Загрузка объявлений
Нативные объявления загружаются с помощью класса GADAdLoader, который отправляет сообщения своим представителям в соответствии с протоколом GADAdLoaderDelegate.
Инициализируйте загрузчик объявлений
Прежде чем загрузить объявление, необходимо инициализировать загрузчик объявлений.
В следующем примере кода показано, как инициализировать GADAdLoader:
Swift
Замените nativeAdUnitID идентификатором своего рекламного блока.
Objective-C
Замените kNativeAdUnitID идентификатором своего рекламного блока.
Вам понадобится идентификатор рекламного блока (можно использовать тестовый), константы, которые нужно передать в массиве adTypes, чтобы указать, какие нативные форматы вы хотите запросить, и любые параметры, которые вы хотите задать в параметре options. Список возможных значений параметра options можно найти на странице Настройка параметров нативных объявлений.
Массив adTypes должен содержать эту константу :
Реализуйте делегат загрузчика объявлений
Делегат загрузчика объявлений должен реализовывать протоколы, соответствующие типу объявления.
Для нативных объявлений протокол GADNativeAdLoaderDelegate включает сообщение, которое отправляется делегату после загрузки нативного объявления.
Swift
func adLoader(_ adLoader: AdLoader, didReceive nativeAd: NativeAd) {
// Set the delegate to receive notifications for interactions with the native ad.
nativeAd.delegate = self
// TODO: Display the native ad.
}
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader didReceiveNativeAd:(GADNativeAd *)nativeAd {
// Set the delegate to receive notifications for interactions with the native ad.
nativeAd.delegate = self;
// TODO: Display the native ad.
}
Запросить объявления
После инициализации GADAdLoader вызовите метод loadRequest:, чтобы запросить объявление:
Swift
adLoader.load(Request())
Objective-C
[self.adLoader loadRequest:[GADRequest request]];
Метод loadRequest: в GADAdLoader принимает те же объекты GADRequest, что и баннеры и межстраничные объявления. Как и в случае с другими типами объявлений, вы можете использовать объекты запросов, чтобы добавлять информацию о таргетинге.
Загрузка нескольких объявлений (необязательно)
Чтобы загрузить несколько объявлений в одном запросе, задайте объект GADMultipleAdsAdLoaderOptions при инициализации GADAdLoader.
Swift
Objective-C
Количество объявлений в запросе не может превышать пяти. При этом нет гарантии, что SDK вернет именно столько объявлений, сколько было запрошено.
Все объявления Google будут отличаться друг от друга, однако объявления из зарезервированного инвентаря или от сторонних покупателей могут повторяться.
Не используйте класс GADMultipleAdsAdLoaderOptions, если вы используете медиацию, поскольку запросы нескольких нативных объявлений не работают для идентификаторов рекламных блоков, настроенных для медиации.
Как определить, что загрузка завершена
После вызова loadRequest: приложение может получить результаты запроса, используя вызовы:
adLoader:didFailToReceiveAdWithError:вGADAdLoaderDelegateadLoader:didReceiveNativeAd:вGADNativeAdLoaderDelegate
Запрос одного объявления приведет к одному вызову одного из этих методов.
Запрос нескольких объявлений приведет как минимум к одному обратному вызову указанных выше методов, но не более чем к максимальному количеству запрошенных объявлений.
Кроме того, в GADAdLoaderDelegate есть обратный вызов adLoaderDidFinishLoading. Этот метод делегата указывает, что загрузчик объявлений завершил загрузку объявлений и больше не будет сообщать о других объявлениях или ошибках для запроса. Ниже приведен пример того, как использовать этот метод при одновременной загрузке нескольких нативных объявлений.
Swift
func adLoaderDidFinishLoading(_ adLoader: AdLoader) {
// The adLoader has finished loading ads.
}
Objective-C
- (void)adLoaderDidFinishLoading:(GADAdLoader *)adLoader {
// The adLoader has finished loading ads.
}
Обработка неудачных запросов
Протоколы расширяют протокол GADAdLoaderDelegate, который определяет сообщение, отправляемое в случае, если объявления не загружаются.
Swift
func adLoader(_ adLoader: AdLoader, didFailToReceiveAdWithError error: any Error) {
// The adLoader failed to receive an ad.
}
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader didFailToReceiveAdWithError:(NSError *)error {
// The adLoader failed to receive an ad.
}
Как получать уведомления о событиях, связанных с нативными объявлениями
Чтобы получать уведомления о событиях, связанных с взаимодействием с нативными объявлениями, задайте свойство delegate для нативного объявления:
Swift
nativeAd.delegate = self
Objective-C
nativeAd.delegate = self;
Затем реализуйте GADNativeAdDelegate, чтобы получать следующие вызовы делегата:
Swift
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:.Кешируйте только необходимые нативные объявления. Например, при предварительном кешировании кешируйте только те объявления, которые сразу видны на экране. Нативные объявления занимают много памяти, и их кеширование без удаления приводит к ее чрезмерному использованию.
Удаляйте нативные объявления, когда они больше не используются.
Показ объявления
После загрузки объявления остается только показать его пользователям. Дополнительную информацию вы найдете в статьях Расширенные нативные объявления и Полноэкранные нативные объявления.