Предварительные условия
В этом руководстве по внедрению предполагается, что вы знакомы со следующим:
- Разработка приложений для iOS.
- Связывание Google Mobile Ads SDK с проектом iOS. Загрузите последнюю версию SDK .
Обзор
В этом документе описан процесс интеграции рекламы AFS для мобильных приложений (AFSMA) в ваше мобильное приложение iOS. Объявления AFSMA также иногда называют поисковыми объявлениями с динамической высотой. Чтобы запросить и отобразить объявления AFSMA на iOS, вам необходимо реализовать следующее:
- Этот класс наследует класс iOS UIView и отображает рекламу AFSMA.
GADSearchBannerView
выполняет запрос объявления с помощьюGADDynamicHeightSearchRequest
и отображает возвращенные объявления.GADSearchBannerView
следует добавить в любое из существующих представлений приложения; обычно родительский контроллер представления содержит представление, к которому добавляетсяGADSearchBannerView
. Соответствующие делегаты должны быть установлены вGADSearchBannerView
. - Для запроса объявлений AFSMA необходимо создать экземпляр
GADSearchBannerView
с помощьюinitWithAdSize:kGADAdSizeFluid
. СозданиеGADSearchBannerView
с помощьюinitWithAdSize:kGADAdSizeBanner
запрашивает устаревшие объявления AFSMA. - Для свойства
adUnitID
этого объекта необходимо задать код вашего свойства.
- Этот объект инкапсулирует параметры запроса объявления. Это аналогично настройке параметров в объектах запроса объявлений JavaScript (параметры страницы, параметры блоков) для настольных компьютеров и мобильных сайтов AFS.
(void)adView:(GADBannerView *)bannerView willChangeAdSizeTo:(GADAdSize)size
- Этот обратный вызов вызывается при возврате запроса объявления. Поскольку возвращенный рекламный блок может содержать несколько объявлений с разными расширениями, точный размер рекламного блока на момент запроса объявления неизвестен. После возврата объявления необходимо обновить вид баннера, чтобы он соответствовал новому размеру рекламного блока. Здесь должен быть реализован код для изменения размера
GADSearchBannerView
в его родительском представлении.
Пример реализации
В приведенном ниже примере показано использование GBannerViewController
для создания GADSearchBannerView
как подпредставления UIScrollView
. Чтобы правильно запросить объявления AFSMA, необходимо создать экземпляр объекта GADSearchBannerView
с помощью initWithAdSize:kGADAdSizeFluid
.
// GBannerViewController.m implementation
@interface GBannerViewController () <GADAdSizeDelegate,
GADBannerViewDelegate>
@property(nonatomic, strong) GADSearchBannerView *searchBannerView;
@property(nonatomic, strong) UIScrollView *scrollView;
@end
@implementation GBannerViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Create the scroll view.
....
....
// Create the banner.
self.searchBannerView = [[GADSearchBannerView alloc] initWithAdSize:kGADAdSizeFluid];
// Replace with your pub ID (e.g. ms-app-pub-9616389000213823).
self.searchBannerView.adUnitID = @"ms-app-pub-################";
// Set the initial location and size of the banner. The initial height
// is set to 0 since we might not get an ad back.
self.searchBannerView.frame = CGRectMake(0,
0,
CGRectGetWidth(self.view.bounds),
0);
self.searchBannerView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
// Set the delegate properties.
self.searchBannerView.adSizeDelegate = self;
self.searchBannerView.delegate = self;
// Add the new search banner into the parent scrollView.
[self.scrollView addSubview:self.searchBannerView];
}
В том же GBannerViewController
создайте GADDynamicHeightSearchRequest
, который определяет параметры объявления, которое будет отображаться в GADSearchView
.
// Create a search request and load the banner. GADDynamicHeightSearchRequest *searchRequest = [[GADDynamicHeightSearchRequest alloc] init]; // Ad request options (set using GADDynamicHeightSearchRequest properties). searchRequest.query = @"flowers"; searchRequest.numberOfAds = 2; // Replace with the ID of a style from your custom search styles [searchRequest setAdvancedOptionValue:@"0000000001" forKey:@"styleId"];
Другие параметры настройки возможны путем установки дополнительных свойств объекта GADDynamicHeightSearchRequest
.
Чтобы сделать запрос объявления, вызовите loadRequest
с объектом GADDynamicHeightSearchRequest
из объекта GADSearchBannerView
:
[self.searchBannerView loadRequest:searchRequest];
Чтобы родительское представление правильно размещало GADSearchBannerView
после возврата рекламы, необходимо реализовать следующий обратный вызов.
// Callback to update the parent view height.
- (void)adView:(GADBannerView *)bannerView willChangeAdSizeTo:(GADAdSize)size {
// Update the banner view based on the ad size.
CGRect newFrame = self.searchBannerView.frame;
newFrame.size.height = size.size.height;
self.searchBannerView.frame = newFrame;
// Perform any additional logic needed due to banner view size change.
...
}
Расширенные параметры
Большинство параметров запроса объявления можно задать с помощью свойств объекта GADDynamicHeightSearchRequest
( searchRequest
выше). Другие параметры необходимо будет установить с использованием пар ключ-значение с помощью метода setAdvancedOptionValue
:
// Advanced customization options (set using key-value pair).
// Set a parameter (parameter_name) and its value (parameter_value).
[searchRequest setAdvancedOptionValue:@"parameter_value"
forKey:@"parameter_name"];
// Example: Show visible URL below description (domainLinkAboveDescription: false).
[searchRequest setAdvancedOptionValue:@"false"
forKey:@"domainLinkAboveDescription"];
См. полный список доступных параметров .
Исследование ошибок
GADBannerViewDelegate
содержит обратный вызов, который поможет вам исследовать ошибки:
- (void)adView:(GADBannerView *)bannerView didFailToReceiveAdWithError:(GADRequestError *)error {
// This callback is triggered when the ad request fails.
// Add code here to debug the error object to discover causes of failure
NSLog(@"Ad call failed due to %@", error.userInfo[@"NSUnderlyingError"]);
}
Если запрос объявления не выполнен, вы можете использовать этот обратный вызов, чтобы правильно обработать ошибку и исследовать ее с помощью объекта ошибки.