Настройки нативного стиля позволяют Google Ad Manager обрабатывать нативные объявления на основе нативных стилей, которые вы указываете в продукте. Сначала укажите размер и таргетинг. Затем добавьте HTML, CSS и JavaScript, чтобы определить адаптивные объявления и обеспечить качественное отображение на всех экранах. Вам не нужно выполнять какой-либо рендеринг; Менеджер рекламы автоматически применяет правильный нативный стиль для места назначения. Нативные стили реализуются так же, как рекламные баннеры, с использованием GAMBannerView
. Их можно использовать с фиксированным размером объявления, определенным заранее, или с гибким размером объявления, определяемым во время выполнения.
Предварительные условия
- Google Mobile Ads SDK версии 7.14.0 или выше.
В этом руководстве предполагается наличие некоторых практических знаний Google Mobile Ads SDK. Если вы еще этого не сделали, ознакомьтесь с нашим руководством по началу работы .
Фиксированный размер
Нативные стили с фиксированным размером позволяют вам контролировать ширину и высоту нативного объявления. Чтобы установить фиксированный размер, выполните следующие действия:
Создайте позицию в пользовательском интерфейсе Менеджера рекламы и выберите один из предопределенных размеров в раскрывающемся списке поля
Size
.В Interface Builder установите ширину и высоту
GAMBannerView
в соответствии с предопределенным размером, выбранным на шаге 1. Список размеров и соответствующие им константыGADAdSize
можно увидеть в разделе «Размер баннера» .
Внедрить нативные стили с фиксированным размером так же просто, как следовать инструкциям в первом запросе на баннер , но вы получаете гибкость и контроль над HTML, CSS и JavaScript, чтобы придать вашему баннерному объявлению естественный внешний вид, естественный для вашего приложения. .
Размер жидкости
В некоторых случаях фиксированный размер может не иметь смысла. Например, вы можете захотеть, чтобы ширина объявления соответствовала содержимому вашего приложения, но вам необходимо, чтобы его высота динамически настраивалась в соответствии с содержимым объявления. Чтобы справиться с этим случаем, вы можете указать Fluid
в качестве размера объявления в пользовательском интерфейсе Менеджера рекламы, что означает, что размер объявления определяется во время выполнения в приложении. SDK предоставляет специальную константу GADAdSize
, kGADAdSizeFluid
, для обработки этого случая. Высота изменяемого размера объявления определяется динамически на основе ширины, определенной издателем, что позволяет GAMBannerView
регулировать его высоту в соответствии с высотой объявления.
Запрос жидкости
В отличие от других форматов объявлений, размер объявления kGADAdSizeFluid
не имеет предопределенной ширины, поэтому обязательно задайте ширину рамки баннера явно в своем коде или в Interface Builder. Если ширина не указана, SDK по умолчанию устанавливает высоту баннера на основе полной ширины устройства.
Если вы делаете запрос с несколькими размерами, включающий kGADAdSizeFluid
, возвращаемое объявление всегда помещается внутри гибкого контейнера и ведет себя как гибкое объявление. Если в этот гибкий контейнер возвращается негибкое объявление, SDK центрирует объявление в контейнере, чтобы вам не приходилось изменять ограничение ширины каждый раз, когда возвращается новое объявление.
Реализация запроса жидкости одного и нескольких размеров очень похожа; единственное отличие состоит в том, что для запроса с несколькими размерами вы устанавливаете свойство validAdSizes
, чтобы указать размеры объявлений, действительные для запроса объявления:
Быстрый
bannerView.validAdSizes = [NSValueFromGADAdSize(kGADAdSizeFluid),
NSValueFromGADAdSize(kGADAdSizeBanner)]
Цель-C
_bannerView.validAdSizes = @[ NSValueFromGADAdSize(kGADAdSizeFluid),
NSValueFromGADAdSize(kGADAdSizeBanner) ];
Вот как выглядит полная реализация в коде:
Быстрый
var bannerView: GAMBannerView!
override func viewDidLoad() {
super.viewDidLoad()
// Create the GAMBannerView and set its width to a width that makes sense for your
// app. In this example, the width is set to the width of the UIViewController's
// root view.
bannerView = GAMBannerView(adSize: kGADAdSizeFluid)
var frameRect = bannerView.frame
frameRect.size.width = view.bounds.width
bannerView.frame = frameRect
// Uncomment this code for a multisize fluid request.
// bannerView.validAdSizes = [NSValueFromGADAdSize(kGADAdSizeFluid),
// NSValueFromGADAdSize(kGADAdSizeBanner)]
bannerView.adUnitID = "YOUR_AD_UNIT_ID"
bannerView.rootViewController = self
// Make the ad request.
bannerView.load(GAMRequest())
}
Цель-C
GAMBannerView *_bannerView;
- (void)viewDidLoad {
[super viewDidLoad];
// Create the GAMBannerView and set its width to a width that makes sense for your
// app. In this example, the width is set to the width of the UIViewController's
// root view.
_bannerView = [[GAMBannerView alloc] initWithAdSize:kGADAdSizeFluid];
CGRect frameRect = _bannerView.frame;
frameRect.size.width = CGRectGetWidth(self.view.bounds);
_bannerView.frame = frameRect;
// Uncomment this code for a multisize fluid request.
// _bannerView.validAdSizes = @[ NSValueFromGADAdSize(kGADAdSizeFluid),
// NSValueFromGADAdSize(kGADAdSizeBanner) ];
_bannerView.adUnitID = @"YOUR_AD_UNIT_ID";
_bannerView.rootViewController = self;
// Make the ad request.
[_bannerView loadRequest:[GAMRequest request]];
}
Чтобы увидеть пример реализации размера объявления Ad Manager Fluid, загрузите демо-приложение iOS API на Swift или Objective-C.
Протокол GADAdSizeDelegate
Возможно, вам захочется узнать высоту баннера до изменения размера его объявления. adView:willChangeAdSizeTo:
уведомляет своего делегата до того, как вид баннера изменится на новый GADAdSize
. Чтобы получить уведомление до того, как вид баннера изменится на новый размер объявления, ваш класс должен соответствовать протоколу GADAdSizeDelegate
.
Вот пример реализации обратного вызова adView:willChangeAdSizeTo:
который показывает, как получить новую ширину и высоту баннера:
Быстрый
// To be notified before the banner's ad size changes, your view controller class must
// conform to the GADAdSizeDelegate protocol.
bannerView.adSizeDelegate = self
// MARK: - GADAdSizeDelegate
func adView(_ bannerView: GADBannerView, willChangeAdSizeTo adSize: GADAdSize) {
let height = adSize.size.height
let width = adSize.size.width
}
Цель-C
// To be notified before the banner's ad size changes, your view controller class must
// conform to the GADAdSizeDelegate protocol.
_bannerView.adSizeDelegate = self;
#pragma mark - GADAdSizeDelegate
- (void)adView:(GADBannerView *)bannerView willChangeAdSizeTo:(GADAdSize)adSize {
CGFloat height = adSize.size.height;
CGFloat width = adSize.size.width;
}