Implémentation d'AFS pour les applications mobiles (AFSMA) pour iOS

Prérequis

Dans ce guide d'implémentation, nous partons du principe que vous connaissez bien les éléments suivants:

Présentation

Ce document décrit le processus d'intégration des annonces APR pour les applications mobiles (AFSMA). dans votre application mobile iOS. Les annonces AFSMA sont aussi parfois appelées annonces dynamiques de hauteur pour les annonces sur le Réseau de Recherche. Pour demander et afficher des annonces AFSMA sur iOS, vous devez implémentez les éléments suivants:

GADSearchBannerView

  • Cette classe hérite de la classe UIView iOS et affiche les annonces AFSMA. La GADSearchBannerView envoie la demande d'annonce avec un élément GADDynamicHeightSearchRequest et affiche les annonces renvoyées. La GADSearchBannerView doit être ajouté à n'importe quelle vue existante de l'application. C'est généralement le contrôleur de vue parent qui contient la vue GADSearchBannerView est ajouté à. Les délégués appropriés doivent être définis sur le GADSearchBannerView.
  • Le GADSearchBannerView doit être instancié avec initWithAdSize:kGADAdSizeFluid pour demander des annonces AFSMA. Instanciation... GADSearchBannerView avec initWithAdSize:kGADAdSizeBanner demandes (ancienne version de l'AFSMA) annonces.
  • La propriété adUnitID de cet objet doit être définie sur votre code de propriété.

GADDynamicHeightSearchRequest

  • Cet objet encapsule les paramètres de demande d'annonce. Ceci est analogue à la définition de paramètres dans les objets d'appel d'annonce JavaScript (options de page, bloc options) pour APR pour le Web mobile et pour ordinateur.

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

  • Ce rappel est appelé lorsque la demande d'annonce est renvoyée. Puisque l'annonce renvoyée peut contenir un certain nombre d'annonces avec des extensions différentes, la taille exacte du bloc d'annonces est inconnu lorsque la demande d'annonce est effectuée. Une fois que l'annonce est affiché, l'affichage de la bannière doit être mis à jour pour s'adapter à la nouvelle taille le bloc d'annonces. Le code permettant de redimensionner GADSearchBannerView dans sa vue parent doit être implémentées ici.

Exemple d'implémentation

L'exemple ci-dessous montre comment utiliser un GBannerViewController pour créer un GADSearchBannerView en tant que sous-vue d'un UIScrollView. Pour demander correctement un AFSMA l'objet GADSearchBannerView doit être instancié avec 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];
  }

Dans le même GBannerViewController, créez un GADDynamicHeightSearchRequest. qui détermine les paramètres de l'annonce qui sera affichée dans 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"];

Autres options de personnalisation sont possibles en définissant des propriétés supplémentaires sur GADDynamicHeightSearchRequest. .

Pour effectuer une demande d'annonce, appelez loadRequest avec GADDynamicHeightSearchRequest. à partir de l'objet GADSearchBannerView:

[self.searchBannerView loadRequest:searchRequest];

Pour que la vue parent s'adapte correctement à GADSearchBannerView une fois que la les annonces renvoyées, le rappel suivant doit être implémenté.

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

Options avancées

La plupart des paramètres de demande d'annonce peuvent être définis via les propriétés de la Objet GADDynamicHeightSearchRequest (searchRequest ci-dessus). Autres paramètres doit être défini à l'aide de paires clé/valeur avec l'setAdvancedOptionValue méthode:

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

Consultez la liste complète des paramètres disponibles.

Examiner les erreurs

GADBannerViewDelegate contient un rappel pour vous aider à examiner les erreurs:

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

Si une demande d'annonce échoue, vous pouvez utiliser ce rappel pour gérer correctement l'erreur. et examiner l'erreur via l'objet d'erreur.