Настройки нативных стилей позволяют Google Ad Manager управлять отображением ваших нативных объявлений на основе нативных стилей, которые вы указываете в продукте. Сначала укажите размер и таргетинг. Затем добавьте HTML, CSS и JavaScript, чтобы определить адаптивные объявления, обеспечивающие качественное отображение на всех экранах. Вам не нужно ничего делать самостоятельно; Ad Manager автоматически применяет правильный нативный стиль для целевого экрана. Нативные стили реализуются так же, как и баннерные объявления, с использованием GAMBannerView . Их можно использовать с фиксированным размером объявления, определенным заранее, или с изменяемым размером объявления, определяемым во время выполнения.
Предварительные требования
- Версия Google Mobile Ads SDK: 7.14.0 или выше.
Данное руководство предполагает наличие у вас базовых знаний о Google Mobile Ads SDK. Если вы еще не знакомы с ним, рекомендуем ознакомиться с нашим руководством по началу работы .
Фиксированный размер
Стилизации с фиксированным размером позволяют управлять шириной и высотой нативной рекламы. Чтобы установить фиксированный размер, выполните следующие действия:
Создайте позицию в пользовательском интерфейсе Ad Manager и выберите один из предопределенных размеров в раскрывающемся списке поля
Size.В Interface Builder установите ширину и высоту
GAMBannerViewв соответствии с предопределенным размером, выбранным на шаге 1. Список размеров и соответствующих им константGADAdSizeможно увидеть в разделе «Размер баннера» .
Внедрение нативных стилей с фиксированным размером так же просто, как следование инструкциям в вашем первом запросе на баннер , но при этом вы получаете гибкость и контроль над HTML, CSS и JavaScript, чтобы придать вашему баннеру внешний вид и ощущение, органично вписывающиеся в ваше приложение.
Размер жидкости
В некоторых случаях фиксированный размер может быть нецелесообразен. Например, вам может потребоваться, чтобы ширина объявления соответствовала содержимому вашего приложения, но при этом его высота должна динамически подстраиваться под содержимое объявления. Для решения этой проблемы вы можете указать Fluid в качестве размера объявления в пользовательском интерфейсе Ad Manager, что означает, что размер объявления определяется во время выполнения в приложении. SDK предоставляет специальную константу GADAdSize , kGADAdSizeFluid , для обработки этого случая. Высота объявления с изменяемым размером определяется динамически на основе ширины, заданной издателем, что позволяет GAMBannerView регулировать свою высоту в соответствии с высотой креатива.
Запрос на жидкость
В отличие от других форматов рекламы, размер объявления kGADAdSizeFluid не имеет предопределенной ширины, поэтому обязательно явно задайте ширину рамки баннера в своем коде или в Interface Builder. Если ширина не указана, SDK по умолчанию устанавливает высоту баннера на основе полной ширины устройства.
Если вы отправляете запрос с несколькими размерами, включающий kGADAdSizeFluid , возвращаемое объявление всегда размещается внутри гибкого контейнера и ведет себя как гибкое объявление. В случае, если в этом гибком контейнере возвращается негибкое креативное объявление, SDK центрирует объявление в контейнере, чтобы вам не приходилось изменять ограничение ширины каждый раз, когда возвращается новое объявление.
Реализация запросов на один размер и запросов на несколько размеров очень похожа; единственное отличие заключается в том, что для запроса на несколько размеров вы устанавливаете свойство validAdSizes , чтобы указать размеры объявлений, допустимые для данного запроса:
Быстрый
bannerView.validAdSizes = [nsValue(for: AdSizeFluid), nsValue(for: AdSizeBanner)]
Objective-C
_bannerView.validAdSizes = @[ NSValueFromGADAdSize(kGADAdSizeFluid),
NSValueFromGADAdSize(kGADAdSizeBanner) ];
Вот как выглядит полная реализация в коде:
Быстрый
var bannerView: AdManagerBannerView!
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 = AdManagerBannerView(adSize: AdSizeFluid)
var frameRect = bannerView.frame
frameRect.size.width = view.bounds.width
bannerView.frame = frameRect
// Uncomment this code for a multisize fluid request.
// bannerView.validAdSizes = [nsValue(for: AdSizeFluid), nsValue(for: AdSizeBanner)]
bannerView.adUnitID = "YOUR_AD_UNIT_ID"
bannerView.rootViewController = self
// Make the ad request.
bannerView.load(AdManagerRequest())
}
Objective-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, загрузите демонстрационное приложение 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: BannerView, willChangeAdSizeTo adSize: AdSize) {
let height = adSize.size.height
let width = adSize.size.width
}
Objective-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;
}