Implémentation d'AFS pour les annonces natives sur iOS

Le SDK Google Mobile Ads accepte également les styles de recherche personnalisés. Si votre application utilise déjà le SDK Google Mobile Ads, nous vous recommandons d'utiliser plutôt la version du SDK AFSMA.

Conditions préalables

  • Utiliser Xcode 8.0 ou une version ultérieure
  • Cibler iOS 8.0 ou version ultérieure
  • Un code de propriété Web d'éditeur valide (par exemple, vert-ppa-test1-srp)
  • CocoaPods

Importer le SDK natif AFS

CocoaPods

Importez le SDK Google-AFSNative dans un projet iOS à l'aide de CocoaPods. Ouvrez le Podfile de votre projet et ajoutez cette ligne à la cible de votre application:

pod 'Google-AFSNative'

Ensuite, exécutez la commande suivante dans la ligne de commande:

pod install --repo-update

Si vous ne connaissez pas CocoaPods, consultez la documentation officielle pour découvrir comment créer et utiliser des fichiers Podfiles.

Présentation

Si vous passez à la version 4.0 ou à une version ultérieure, veuillez consulter notre guide de migration.

Ce document décrit le processus à suivre pour intégrer des annonces natives APR dans votre application mobile iOS.

GANSearchAdController

  • Le constructeur GANSearchAdController doit recevoir le code de la propriété Web de l'éditeur, l'ID des paramètres souhaités et l'objet GANSearchAdControllerOptions associé.
  • Chaque appel de loadAds() indique une nouvelle recherche, et l'ensemble d'annonces actuel est supprimé et invalidé.
  • Les créations sont stockées dans GANAdView.
  • Les annonces sont insérées dans l'annonce GANAdView à l'aide de la méthode populateAdView. En plus du GANAdView qui doit être renseigné, l'appelant fournit un adIdentifier, qui est une chaîne arbitraire qui doit identifier de manière unique l'annonce. Dans l'API, une annonce spécifique est attribuée à chaque identifiant publicitaire transmis. Ensuite, chaque fois que cette clé d'annonce est transmise à nouveau, la même annonce est renvoyée. Par exemple, si populateAdView est appelé pour la première fois avec l'identifiant "keyA", chaque appel ultérieur à populateAdView en transmettant "keyA" comme adIdentifier entraînera la diffusion de la même annonce.

GANAdView

  • Il s'agit de l'UIView qui contient la création publicitaire.
  • Remplissez cette vue avec une annonce à l'aide de la méthode populateAdView sur GANSearchAdController.

GANSearchAdControllerOptions

  • Transmettez cet objet au constructeur GANSearchAdController pour spécifier le comportement de la manière dont les annonces sont demandées et affichées.

GANSearchAdRequest

  • Appelez la méthode loadAds sur l'instance GANSearchAdController avec cet objet pour effectuer une demande d'annonce.

GANSearchAdControllerDelegate

  • Implémentez cette interface et fournissez-la à GANSearchAdController pour enregistrer des rappels pour plusieurs états.

Exemple d'implémentation

L'exemple ci-dessous illustre la création d'un GANSearchAdController et d'un GANView pour diffuser une annonce dans un exemple de ViewController.

// SampleAppViewController.m implementation

#import <AFSNative/AFSNative.h>

@interface GBannerViewController () {
  // The Ad Controller used by the sample application.
  GANSearchAdController *_adController;

  // The Ad View to display the loaded ad.
  GANAdView *_adView;
}
// scrollView will be where we place our ads in this example.
@property(nonatomic, strong) UIScrollView *scrollView;
@end
...

- (void)viewDidLoad {
  [super viewDidLoad];

  // Create the scroll view.
  ...
  [self.view addSubview:scrollView];

  // Create a test button and link the ad request to its action.
  UIButton *loadBannerButton = [UIButton buttonWithType:UIButtonTypeCustom];
  ...
  [loadBannerButton addTarget:self
                       action:@selector(loadAd:)
             forControlEvents:UIControlEventTouchUpInside];
  [self.scrollView addSubview:loadBannerButton];

  // Construct the Ad Controller.
  GANSearchAdControllerOptions *options = [[GANSearchAdControllerOptions alloc] init];
  options.prefetchEnabled = YES;
  options.adType = GANSearchAdTypeSPA;
  options.adFetchCount = 3;

  _adController = [[GANSearchAdController alloc]
                     initWithPublisherID: @"your-client-id"
                                 styleID: @"your-settings-id"
                                 options: options
                                delegate: self];

  _adView = [_adController adView];
  [self.scrollView addSubview:_adView];
}

// Request ads when the test button is pressed.
- (void)loadAd:(id)sender {
  // Construct the Ad Request.
  GANSearchAdRequest *adRequest = [[GANSearchAdRequest alloc] init];
  adRequest.query =  @"some-query";
  // Start loading ads. Note that the loading is asynchronous.
  [_adController loadAds: adRequest];
}

// Insert ads into GANAdView if the request returns successfully.
- (void)searchAdController:(GANSearchAdController *)adController  
                didLoadAds:(NSInteger)numberOfAds {
  if (numberOfAds <= 0) {
    NSLog(@"No ads found on the server");
  } else {
    [_adController populateAdView:_adView identifier:@"demoAd"];
  }
}
...