Implementazione nativa AFS per iOS

L'SDK Google Mobile Ads supporta anche gli stili di ricerca personalizzati. Se la tua app utilizza già l'SDK Google Mobile Ads, ti consigliamo di utilizzare Versione dell'SDK AFSMA .

Prerequisiti

  • Utilizzare Xcode 8.0 o versioni successive
  • Scegli come target iOS 8.0 o versioni successive
  • Un codice proprietà web del publisher valido (ad es. vert-ppa-test1-srp)
  • CocoaPods

Importa l'SDK nativo AFS

CocoaPods

Importare l'SDK Google-AFS Native in un progetto iOS utilizzando CocoaPods. Apri la finestra di dialogo del progetto Podfile e aggiungi questa riga al target dell'app:

pod 'Google-AFSNative'

Quindi, dalla riga di comando esegui:

pod install --repo-update

Se non hai mai utilizzato CocoaPods, consulta le relative documentazione ufficiale per informazioni sulla creazione e sull'uso dei podfile.

Panoramica

Se esegui l'aggiornamento alla versione 4.0 o successiva dalla 2.0.8 o precedente, vedi la nostra guida alla migrazione.

Questo documento illustra la procedura per integrare gli annunci nativi AFS nell'app mobile iOS.

GANSearchAdController

  • Al costruttore GANSearchAdController deve essere fornito codice proprietà web del publisher, ID impostazioni desiderato e associato Oggetto GANSearchAdControllerOptions.
  • Ogni chiamata a loadAds() indica una nuova ricerca e causerà di annunci da ignorare e invalidare.
  • Le creatività degli annunci sono memorizzate in GANAdView.
  • Gli annunci vengono inseriti nell'annuncio GANAdView con il metodo populateAdView. Nella oltre a GANAdView che deve essere compilato, il chiamante fornisce un adIdentifier, una stringa arbitraria che deve identificare l'annuncio in modo univoco. All'interno dell'API, a ogni adIdentifier viene assegnato un annuncio specifico in. Poi, ogni volta che questa adKey viene passata nuovamente in futuro, lo stesso annuncio verrà restituito. Ad esempio, se populateAdView viene chiamato per la prima volta con adIdentifier "keyA", ogni chiamata successiva a populateAdView durante la trasmissione "chiaveA" perché adIdentifier comporterà la visualizzazione dello stesso annuncio.

GANAdView

  • Si tratta della UIView che contiene la creatività dell'annuncio.
  • Compila questa visualizzazione con un annuncio utilizzando il metodo populateAdView nella GANSearchAdController.

GANSearchAdControllerOptions

  • Passa questo oggetto al costruttore GANSearchAdController per specificare comportamento di come vengono richiesti e visualizzati gli annunci.

GANSearchAdRequest

  • Chiama il metodo loadAds sull'istanza GANSearchAdController con questo per effettuare una richiesta di annuncio.

GANSearchAdControllerDelegate

  • Implementa questa interfaccia e forniscila al GANSearchAdController per per registrare i callback per diversi stati.

Esempio di implementazione

L'esempio seguente mostra la creazione di un GANSearchAdController e di un GANView per mostrare un annuncio in un ViewController di esempio.

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