Voraussetzungen
In diesem Implementierungsleitfaden wird davon ausgegangen, dass Sie mit Folgendem vertraut sind:
- Entwicklung von iOS-Apps
- Das Google Mobile Ads SDK mit einem iOS-Projekt verknüpfen Laden Sie die neueste Version des SDK herunter.
Überblick
In diesem Dokument wird das Verfahren zur Integration von AFSMA-Anzeigen (AFS für mobile Apps) in Ihre mobile iOS-App beschrieben. AFSMA-Anzeigen werden manchmal auch als Suchanzeigen mit dynamischer Höhe bezeichnet. Wenn Sie AFSMA-Anzeigen unter iOS anfordern und rendern möchten, müssen Sie Folgendes implementieren:
- Diese Klasse übernimmt die Elemente der iOS UIView-Klasse und zeigt die AFSMA-Anzeigen an.
GADSearchBannerView
stellt die Anfrage für eine Anzeige mit einerGADDynamicHeightSearchRequest
und rendert die zurückgegebenen Anzeigen. DieGADSearchBannerView
sollte zu einer beliebigen vorhandenen Ansicht der Anwendung hinzugefügt werden. In der Regel ist es der übergeordnete Ansichts-Controller, der die Ansicht enthält, der dieGADSearchBannerView
hinzugefügt wird. Die entsprechenden Bevollmächtigten müssen fürGADSearchBannerView
festgelegt werden. GADSearchBannerView
muss mitinitWithAdSize:kGADAdSizeFluid
instanziiert werden, um AFSMA-Anzeigen anzufordern. Durch die Instanziierung vonGADSearchBannerView
mitinitWithAdSize:kGADAdSizeBanner
werden alte AFSMA-Anzeigen angefordert.- Die Eigenschaft
adUnitID
für dieses Objekt muss auf Ihren Property-Code festgelegt werden.
- Dieses Objekt enthält die Parameter der Anzeigenanfrage. Die Vorgehensweise entspricht dem Festlegen von Parametern in den JavaScript-Anzeigenanfrageobjekten (Seitenoptionen, Einheitenoptionen) für AFS-Desktops und das mobile Web.
(void)adView:(GADBannerView *)bannerView willChangeAdSizeTo:(GADAdSize)size
- Dieser Callback wird aufgerufen, wenn die Anzeigenanfrage zurückgegeben wird. Da der zurückgegebene Anzeigenblock mehrere Anzeigen mit unterschiedlichen Erweiterungen enthalten kann, ist die genaue Größe des Anzeigenblocks bei der Anzeigenanfrage nicht bekannt. Sobald die Anzeige zurückgegeben wird, muss die Banneransicht an die neue Größe des Anzeigenblocks angepasst werden. Hier sollte Code zum Anpassen der Größe von
GADSearchBannerView
in der übergeordneten Ansicht implementiert sein.
Implementierungsbeispiel
Im folgenden Beispiel wird gezeigt, wie mit GBannerViewController
eine GADSearchBannerView
als Teilansicht einer UIScrollView
erstellt wird. Damit AFSMA-Anzeigen ordnungsgemäß angefordert werden, muss das Objekt GADSearchBannerView
mit initWithAdSize:kGADAdSizeFluid
instanziiert werden.
// 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];
}
Erstellen Sie innerhalb derselben GBannerViewController
eine GADDynamicHeightSearchRequest
, mit der die Parameter der Anzeige festgelegt werden, die im GADSearchView
gerendert werden soll.
// 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 durch Festlegen zusätzlicher Eigenschaften für das GADDynamicHeightSearchRequest
-Objekt möglich.
Wenn Sie eine Anzeigenanfrage stellen möchten, rufen Sie loadRequest
mit dem Objekt GADDynamicHeightSearchRequest
aus dem Objekt GADSearchBannerView
auf:
[self.searchBannerView loadRequest:searchRequest];
Damit die übergeordnete Ansicht GADSearchBannerView
nach Rückgabe der Anzeigen richtig einbinden kann, muss der folgende Callback implementiert werden.
// 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 im GADDynamicHeightSearchRequest
-Objekt festgelegt werden (searchRequest
oben). Andere Parameter müssen mithilfe von Schlüssel/Wert-Paaren mit der Methode setAdvancedOptionValue
festgelegt werden:
// 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
GADBannerViewDelegate
enthält einen Callback, mit dem Sie Fehler untersuchen können:
- (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"]);
}
Wenn eine Anzeigenanfrage fehlschlägt, können Sie mit diesem Callback den Fehler ordnungsgemäß beheben und ihn mithilfe des Fehlerobjekts untersuchen.