Implementierung von AdSense für mobile Apps (AFSMA) für iOS

Voraussetzungen

In diesem Implementierungsleitfaden wird davon ausgegangen, dass Sie mit Folgendem vertraut sind:

Ü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:

GADSearchBannerView

  • Diese Klasse übernimmt die Elemente der iOS UIView-Klasse und zeigt die AFSMA-Anzeigen an. GADSearchBannerView stellt die Anfrage für eine Anzeige mit einer GADDynamicHeightSearchRequest und rendert die zurückgegebenen Anzeigen. Die GADSearchBannerView 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 die GADSearchBannerView hinzugefügt wird. Die entsprechenden Bevollmächtigten müssen für GADSearchBannerView festgelegt werden.
  • GADSearchBannerView muss mit initWithAdSize:kGADAdSizeFluid instanziiert werden, um AFSMA-Anzeigen anzufordern. Durch die Instanziierung von GADSearchBannerView mit initWithAdSize:kGADAdSizeBanner werden alte AFSMA-Anzeigen angefordert.
  • Die Eigenschaft adUnitID für dieses Objekt muss auf Ihren Property-Code festgelegt werden.

GADDynamicHeightSearchRequest

  • 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.