Implementazione di AFS per app mobile (AFSMA) per iOS

Prerequisiti

Questa guida all'implementazione presuppone che tu abbia familiarità con quanto segue:

Panoramica

Questo documento descrive il processo per integrare gli annunci AFS per app mobile (AFSMA) nell'app mobile iOS. Gli annunci AFSMA sono a volte denominati anche dinamici annunci della rete di ricerca in altezza. Per richiedere e visualizzare gli annunci AFSMA su iOS, devi implementare quanto segue:

GADSearchBannerView

  • Questa classe eredita dalla classe UIView di iOS e visualizza gli annunci AFSMA. La GADSearchBannerView effettua la richiesta di un annuncio con un GADDynamicHeightSearchRequest e mostra gli annunci restituiti. La GADSearchBannerView deve essere aggiunto a una qualsiasi delle viste esistenti dell'app. di solito è il controller della vista padre che contiene la vista GADSearchBannerView è stato aggiunto. I delegati appropriati devono essere impostati GADSearchBannerView.
  • Deve essere creata un'istanza di GADSearchBannerView con initWithAdSize:kGADAdSizeFluid per richiedere annunci AFSMA. Creazione dell'istanza GADSearchBannerView con initWithAdSize:kGADAdSizeBanner richiede la versione precedente di AFSMA annunci.
  • La proprietà adUnitID di questo oggetto deve essere impostata sul codice proprietà.

GADDynamicHeightSearchRequest

  • Questo oggetto incapsula i parametri della richiesta di annuncio. In questo caso, impostare parametri negli oggetti di richiesta di annuncio JavaScript (opzioni di pagina, opzioni) per AFS per desktop e web mobile.

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

  • Questo callback viene chiamato quando viene restituita la richiesta di annuncio. Poiché l'annuncio restituito potrebbe contenere vari annunci con estensioni diverse, le dimensioni esatte dell'unità pubblicitaria è sconosciuto quando viene effettuata la richiesta di annuncio. Una volta che l'annuncio , la visualizzazione banner deve essere aggiornata per adattarsi alle nuove dimensioni l'unità pubblicitaria. Il codice per ridimensionare GADSearchBannerView nella vista principale deve essere implementate qui.

Esempio di implementazione

L'esempio seguente mostra l'utilizzo di un GBannerViewController per creare un GADSearchBannerView come visualizzazione secondaria di UIScrollView. Per richiedere correttamente AFSMA di annunci, è necessario creare un'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 determina i parametri dell'annuncio che verrà visualizzato nell'elemento 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"];

Altre opzioni di personalizzazione sono possibili impostando proprietà aggiuntive nella GADDynamicHeightSearchRequest .

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

[self.searchBannerView loadRequest:searchRequest];

Per fare in modo che la vista genitore possa alloggiare correttamente GADSearchBannerView una volta , è necessario implementare 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 di richiesta di annuncio può essere impostata tramite le proprietà nella Oggetto GADDynamicHeightSearchRequest (searchRequest sopra). Altri parametri dovrà essere impostato utilizzando coppie chiave-valore con l'attributo 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"];

Consulta l'elenco completo dei parametri disponibili.

Analisi degli errori

Il 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 analizza l'errore tramite l'oggetto errore.