Implementazione di AFS per app mobile (AFSMA) per iOS

Prerequisiti

Questa guida all'implementazione presuppone che tu conosca quanto segue:

Panoramica

Questo documento illustra il processo di integrazione degli annunci AFS per app mobile (AFSMA) nell'app mobile iOS. A volte gli annunci AFSMA vengono chiamati annunci dinamici della rete di ricerca. Per richiedere e visualizzare gli annunci AFSMA su iOS, devi implementare quanto segue:

GADSearchBannerView

  • Questa classe eredita dalla classe UIView iOS e mostra gli annunci AFSMA. GADSearchBannerView effettua la richiesta di un annuncio con GADDynamicHeightSearchRequest e mostra gli annunci restituiti. GADSearchBannerView deve essere aggiunto a una qualsiasi delle viste esistenti dell'app; in genere è il controller della vista principale che contiene la vista a cui viene aggiunto GADSearchBannerView. Nella pagina GADSearchBannerView devono essere impostati i delegati appropriati.
  • Per richiedere gli annunci AFSMA è necessario creare un'istanza di GADSearchBannerView con initWithAdSize:kGADAdSizeFluid. Creazione dell'istanza di GADSearchBannerView con initWithAdSize:kGADAdSizeBanner richieste di annunci AFSMA precedenti.
  • La proprietà adUnitID su questo oggetto deve essere impostata sul codice della proprietà.

GADDynamicHeightSearchRequest

  • Questo oggetto include i parametri della richiesta di annuncio. Ciò è analogo all'impostazione dei parametri negli oggetti di richiesta di annuncio JavaScript (opzioni di pagina, opzioni di unità) per AFS per desktop e Web mobile.

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

  • Questo callback viene richiamato quando viene restituita la richiesta di annuncio. Poiché l'unità pubblicitaria restituita potrebbe contenere un numero di annunci con estensioni diverse, le dimensioni esatte dell'unità pubblicitaria vengono sconosciute quando viene effettuata la richiesta di annuncio. Una volta ripristinato l'annuncio, la visualizzazione banner deve essere aggiornata per adattarsi alle nuove dimensioni dell'unità pubblicitaria. Il codice per ridimensionare GADSearchBannerView nella vista padre deve essere implementato qui.

Esempio di implementazione

L'esempio seguente mostra l'utilizzo di un GBannerViewController per creare un GADSearchBannerView come visualizzazione secondaria di un UIScrollView. Per richiedere correttamente gli annunci AFSMA, è necessario creare l'istanza dell'oggetto GADSearchBannerView con 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];
  }

All'interno dello stesso GBannerViewController, crea un GADDynamicHeightSearchRequest che determini i parametri dell'annuncio che verrà visualizzato nel GADSearchView.

// 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"];

Sono possibili altre opzioni di personalizzazione impostando proprietà aggiuntive nell'oggetto GADDynamicHeightSearchRequest.

Per effettuare una richiesta di annuncio, chiama loadRequest con l'oggetto GADDynamicHeightSearchRequest dall'oggetto GADSearchBannerView:

[self.searchBannerView loadRequest:searchRequest];

Affinché la vista principale includa correttamente GADSearchBannerView dopo la pubblicazione degli annunci, deve essere implementato il seguente callback.

// 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.
  ...
}

Opzioni avanzate

La maggior parte dei parametri delle richieste di annunci può essere impostata tramite le proprietà dell'oggetto GADDynamicHeightSearchRequest (searchRequest sopra). Altri parametri dovranno essere impostati utilizzando le coppie chiave-valore con il metodo 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"];

Visualizza l'elenco completo dei parametri disponibili.

Analizzare gli errori

GADBannerViewDelegate contiene un callback che ti aiuta a esaminare gli errori:

- (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"]);
}

Se una richiesta di annuncio non va a buon fine, puoi utilizzare questo callback per gestire correttamente l'errore e analizzare l'errore attraverso l'oggetto errore.