Vorbereitung
In diesem Implementierungsleitfaden wird davon ausgegangen, dass Sie mit Folgendem vertraut sind:
- Entwicklung von iOS-Apps.
- Google Mobile Ads SDK mit einem iOS-Projekt verknüpfen Laden Sie die aktuelle Version des SDK herunter.
Übersicht
In diesem Dokument wird die Integration von AFSMA-Anzeigen (AFS for Mobile Apps) beschrieben. in der mobilen iOS-App. AFSMA-Anzeigen werden auch als dynamisch Höhenanzeigen zu vergleichen. Um AFSMA-Anzeigen unter iOS anzufordern und zu rendern, müssen Sie implementieren Sie Folgendes:
- Diese Klasse übernimmt aus der iOS-Klasse "UIView" und zeigt die AFSMA-Anzeigen an. Die
GADSearchBannerView
sendet die Anfrage für eine Anzeige mit einemGADDynamicHeightSearchRequest
und rendert die zurückgegebenen Anzeigen. DieGADSearchBannerView
sollte zu einer der vorhandenen Ansichten der App hinzugefügt werden. In der Regel ist es der übergeordnete Ansichts-Controller, der die Ansicht enthält, die derGADSearchBannerView
wurde hinzugefügt. Die entsprechenden Bevollmächtigten solltenGADSearchBannerView
. GADSearchBannerView
muss mit instanziiert werden.initWithAdSize:kGADAdSizeFluid
, um AFSMA-Anzeigen anzufordern. InstanziierungGADSearchBannerView
mitinitWithAdSize:kGADAdSizeBanner
Anfragen (alte AFSMA-Version) Anzeigen.- Die Eigenschaft
adUnitID
für dieses Objekt muss auf Ihren Property-Code festgelegt werden.
- Dieses Objekt schließt die Anzeigenanfrageparameter ein. Dies ist analog zu in den JavaScript-Anzeigenanfrageobjekten (Seitenoptionen, Block Optionen) für AFS (Desktop- und mobiles Web) verfügbar.
(void)adView:(GADBannerView *)bannerView willChangeAdSizeTo:(GADAdSize)size
- Dieser Callback wird aufgerufen, wenn die Anzeigenanfrage zurückgegeben wird. Da die zurückgegebene Anzeige
mehrere Anzeigen mit unterschiedlichen Erweiterungen enthalten, deren Größe
des Anzeigenblocks ist bei der Anzeigenanfrage unbekannt. Sobald die Anzeige
zurückgegeben wird, muss die Banneransicht an die neue Größe
des Anzeigenblocks. Der Code zur Größenanpassung von
GADSearchBannerView
in der übergeordneten Ansicht sollte hier implementiert werden.
Beispielimplementierung
Im folgenden Beispiel wird gezeigt, wie mit einem GBannerViewController
ein
„GADSearchBannerView
“ als Unteransicht von „UIScrollView
“. ordnungsgemäße Anforderung von AFSMA
Anzeigen verwenden, muss das GADSearchBannerView
-Objekt mit
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];
}
GADDynamicHeightSearchRequest
im selben GBannerViewController
erstellen
die die Parameter der Anzeige vorgibt, die im GADSearchView
gerendert wird.
// 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"];
Weitere Anpassungsoptionen
sind möglich, indem zusätzliche Eigenschaften für die GADDynamicHeightSearchRequest
festgelegt werden.
-Objekt enthält.
Rufen Sie loadRequest
mit der GADDynamicHeightSearchRequest
auf, um eine Anzeigenanfrage zu stellen.
aus dem GADSearchBannerView
-Objekt:
[self.searchBannerView loadRequest:searchRequest];
Damit die übergeordnete Ansicht die GADSearchBannerView
korrekt unterbringt, sobald die
der folgende Callback implementiert wird.
// 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.
...
}
Erweiterte Optionen
Die meisten Parameter für Anzeigenanfragen können über Eigenschaften auf der
GADDynamicHeightSearchRequest
-Objekt (searchRequest
oben). Weitere Parameter
müssen mithilfe von Schlüssel/Wert-Paaren mit dem 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"];
Vollständige Liste der verfügbaren Parameter
Fehler untersuchen
Das GADBannerViewDelegate
enthält einen Callback, mit dem du Fehler untersuchen kannst:
- (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"]);
}
Schlägt eine Anzeigenanfrage fehl, können Sie mit diesem Callback den Fehler und untersuchen Sie den Fehler mithilfe des Fehlerobjekts.