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 Version du SDK APRMA à la place.

Prérequis

  • 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 fichier Podfile et ajoutez cette ligne à la cible de votre application:

pod 'Google-AFSNative'

Ensuite, à partir de la ligne de commande, exécutez la commande suivante:

pod install --repo-update

Si vous débutez avec CocoaPods, consultez leurs documentation officielle pour en savoir plus sur la création et l'utilisation de Podfiles.

Présentation

Si vous effectuez une mise à niveau vers la version 4.0 ou une version ultérieure à partir de la version 2.0.8 ou antérieure, consultez la page consultez notre guide de migration.

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

GANSearchAdController

  • Vous devez fournir au constructeur GANSearchAdController le code de la propriété Web de l'éditeur, l'identifiant des paramètres souhaités et les attributs GANSearchAdControllerOptions.
  • Chaque appel à loadAds() indique une nouvelle recherche, et la requête actuelle ensemble d'annonces à supprimer et invalider.
  • Les créations publicitaires sont stockées dans GANAdView.
  • Les annonces sont insérées dans l'annonce GANAdView avec la méthode populateAdView. Dans en plus de GANAdView, qui doit être renseigné, l'appelant fournit une adIdentifier, qui est une chaîne arbitraire devant identifier l'annonce de manière unique. Dans l'API, une annonce spécifique est attribuée à chaque adIdentifier transmis. po. Chaque fois que cette clé d'annonce sera de nouveau transmise ultérieurement, la même annonce sera renvoyé. Par exemple, si populateAdView est appelé pour la première fois avec adIdentifier "keyA", chaque appel suivant à populateAdView lors de la transmission "cléA" car adIdentifier entraînera la diffusion de la même annonce.

GANAdView

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

GANSearchAdControllerOptions

  • Transmettez cet objet au constructeur GANSearchAdController pour spécifier le de la façon dont les annonces sont demandées et affichées.

GANSearchAdRequest

  • Appelez la méthode loadAds sur l'instance GANSearchAdController avec ce pour envoyer une demande d'annonce.

GANSearchAdControllerDelegate

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

Exemple d'implémentation

L'exemple ci-dessous montre comment créer un GANSearchAdController et un GANView pour diffuser une annonce dans un ViewController d'exemple.

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