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 invece la versione dell'SDK AFSMA.

Prerequisiti

  • Usa 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

Importa l'SDK nativo di Google-AFS in un progetto iOS utilizzando CocoaPods. Apri il podfile del progetto e aggiungi questa riga alla destinazione dell'app:

pod 'Google-AFSNative'

Quindi dalla riga di comando esegui:

pod install --repo-update

Se non hai mai utilizzato CocoaPods, consulta la documentazione ufficiale per informazioni su come creare e utilizzare i podfile.

Panoramica

Se esegui l'upgrade alla versione 4.0 o successiva dalla 2.0.8 o versioni precedenti, consulta la nostra guida alla migrazione.

Questo documento descrive la procedura per integrare gli annunci nativi AFS nella tua app mobile iOS.

GANSearchAdController

  • È necessario fornire al costruttore GANSearchAdController il codice proprietà web del publisher, l'ID impostazioni desiderato e l'oggetto GANSearchAdControllerOptions associato.
  • Ogni chiamata a loadAds() indica una nuova ricerca e l'insieme di annunci corrente verrà annullato e invalidato.
  • Le creatività degli annunci sono memorizzate in GANAdView.
  • Gli annunci vengono inseriti nell'annuncio GANAdView con il metodo populateAdView. Oltre al GANAdView che deve essere compilato, il chiamante fornisce un adIdentifier, ovvero una stringa arbitraria che deve identificare in modo univoco l'annuncio. All'interno dell'API, a ogni adIdentifier viene assegnato un annuncio specifico. Quindi, ogni volta che l'adKey viene passato di nuovo 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 mentre si trasmette "keyA" come adIdentifier comporta la visualizzazione dello stesso annuncio.

GANAdView

  • Si tratta della visualizzazione UI che contiene la creatività annuncio.
  • Completa questa visualizzazione con un annuncio utilizzando il metodo populateAdView nella GANSearchAdController.

GANSearchAdControllerOptions

  • Passa questo oggetto al costruttore GANSearchAdController per specificare il comportamento della richiesta e della visualizzazione degli annunci.

GANSearchAdRequest

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

GANSearchAdControllerDelegate

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

Esempio di implementazione

L'esempio riportato di seguito illustra la creazione di un GANSearchAdController e 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"];
  }
}
...