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

Vorbereitung

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

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

GADSearchBannerView

  • Diese Klasse übernimmt aus der iOS-Klasse "UIView" und zeigt die AFSMA-Anzeigen an. Die GADSearchBannerView sendet die Anfrage für eine Anzeige mit einem GADDynamicHeightSearchRequest und rendert die zurückgegebenen Anzeigen. Die GADSearchBannerView 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 der GADSearchBannerView wurde hinzugefügt. Die entsprechenden Bevollmächtigten sollten GADSearchBannerView.
  • GADSearchBannerView muss mit instanziiert werden. initWithAdSize:kGADAdSizeFluid, um AFSMA-Anzeigen anzufordern. Instanziierung GADSearchBannerView mit initWithAdSize:kGADAdSizeBanner Anfragen (alte AFSMA-Version) Anzeigen.
  • Die Eigenschaft adUnitID für dieses Objekt muss auf Ihren Property-Code festgelegt werden.

GADDynamicHeightSearchRequest

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