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

Voraussetzungen

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

Übersicht

In diesem Dokument wird beschrieben, wie Sie AFSMA-Anzeigen (AFSMA) in Ihre mobile iOS-App einbinden. AFSMA-Anzeigen werden manchmal auch als dynamische Suchanzeigen für die Höhe bezeichnet. Um AFSMA-Anzeigen unter iOS anzufordern und zu rendern, müssen Sie Folgendes implementieren:

GADSearchBannerView

  • Diese Klasse übernimmt die Klasse „iOSView“ und zeigt die AFSMA-Anzeigen an. GADSearchBannerView sendet eine Anzeigenanfrage an GADDynamicHeightSearchRequest und gibt die zurückgegebenen Anzeigen wieder. Die GADSearchBannerView sollte zu einer der vorhandenen Ansichten der Anwendung hinzugefügt werden. Normalerweise ist es der übergeordnete Ansicht-Controller, der die Ansicht enthält, der die GADSearchBannerView hinzugefügt wird. Die entsprechenden Bevollmächtigten sollten für GADSearchBannerView festgelegt werden.
  • GADSearchBannerView muss mit initWithAdSize:kGADAdSizeFluid instanziiert werden, um AFSMA-Anzeigen anzufordern. Die Instanziierung von GADSearchBannerView mit initWithAdSize:kGADAdSizeBanner fordert Legacy-AFSMA-Anzeigen an.
  • Für die adUnitID-Property dieses Objekts muss der Property-Code festgelegt werden.

GADDynamicHeightSearchRequest

  • Dieses Objekt kapselt die Anzeigenanfrageparameter. Die Vorgehensweise ist analog zum Festlegen der Parameter in den JavaScript-Anzeigenanfrageobjekten (Seitenoptionen, Anzeigenblockoptionen) für Computer und das mobile Web in AFS.

(void)adView:(GADBannerView *)bannerView willChangeAdSizeTo:(GADAdSize)size

  • Dieser Callback wird aufgerufen, wenn die Anzeigenanfrage zurückgegeben wird. Da der zurückgegebene Anzeigenblock eine Reihe von 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 aktualisiert werden, um der neuen Größe des Anzeigenblocks gerecht zu werden. Hier sollte Code zum Anpassen der Größe von GADSearchBannerView in der übergeordneten Ansicht implementiert werden.

Beispielimplementierung

Das folgende Beispiel zeigt, wie ein GBannerViewController verwendet wird, um eine GADSearchBannerView als Unteransicht einer UIScrollView zu erstellen. Damit AFSMA-Anzeigen korrekt angefordert werden, muss das GADSearchBannerView-Objekt 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 desselben GBannerViewController eine GADDynamicHeightSearchRequest, die die Parameter der Anzeige festlegt, die im GADSearchView gerendert werden.

// 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, wenn Sie zusätzliche Attribute für das Objekt GADDynamicHeightSearchRequest festlegen.

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 die GADSearchBannerView ordnungsgemäß unterstützt, sobald die Anzeigen zurückgegeben werden, 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 Properties des GADDynamicHeightSearchRequest-Objekts (searchRequest) festgelegt werden. 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 diesen Callback verwenden, um den Fehler ordnungsgemäß zu bearbeiten und den Fehler mithilfe des Fehlerobjekts zu untersuchen.