Annunci nativi

Gli annunci nativi sono asset dell'annuncio presentati agli utenti tramite i componenti dell'interfaccia utente nativi della piattaforma. Vengono visualizzati utilizzando gli stessi corsi che già utilizzi negli storyboard e possono essere formattati in base al design visivo dell'app. Quando viene caricato un annuncio nativo, la tua app riceve un oggetto annuncio contenente i propri asset e l'app (anziché l'SDK) è responsabile della visualizzazione di questi ultimi. A differenza degli altri formati di annunci, che non consentono di personalizzare l'aspetto dell'annuncio.

Questa guida ti mostrerà come utilizzare l'SDK Google Mobile Ads per implementare gli annunci nativi in un'app per iOS e alcuni aspetti importanti da considerare durante il processo.

In generale, ci sono due parti per implementare correttamente gli annunci nativi: caricare un annuncio tramite l'SDK e visualizzarne i contenuti nell'app. In questa pagina viene spiegato il caricamento degli annunci tramite l'SDK.

Se stai già caricando correttamente gli annunci nativi e devi solo sapere come visualizzarli, non esitare a passare alle nostre guide sui modelli nativi o su Nativo avanzato.

Prerequisiti

Eseguire sempre i test con gli annunci di prova

Prima di iniziare, ricorda che, quando crei e verifichi le app, devi assicurarti di utilizzare annunci di test anziché annunci di produzione attivi. I test con gli annunci di produzione potrebbero portare alla sospensione del tuo account.

Il modo più semplice per caricare gli annunci di prova è utilizzare il nostro ID unità pubblicitaria di prova dedicato per tutti gli annunci nativi avanzati su iOS:

ca-app-pub-3940256099942544/3986624511

È stato configurato appositamente per restituire annunci di test per ogni richiesta e puoi utilizzarlo liberamente nelle tue app durante la programmazione, i test e il debug. Devi solo assicurarti di sostituirlo con il tuo ID unità pubblicitaria prima di pubblicare l'app.

Per maggiori informazioni su come funzionano gli annunci di prova dell'SDK Mobile Ads, consulta Testa annunci.

Caricamento degli annunci in corso...

Gli annunci nativi vengono caricati tramite oggetti GADAdLoader, che inviano messaggi ai delegati in base al protocollo GADAdLoaderDelegate.

Inizializzare il caricatore di annunci

Per poter caricare un annuncio, devi inizializzarlo. Il seguente codice mostra come inizializzare un GADAdLoader:

Swift

adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
    rootViewController: self,
    adTypes: [ .native ],
    options: [ ... ad loader options objects ... ])
adLoader.delegate = self

Objective-C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative ]
               options:@[ ... ad loader options objects ... ]];
self.adLoader.delegate = self;

Avrai bisogno di un ID unità pubblicitaria (puoi utilizzare l'ID test), delle costanti da passare nell'array adTypes per specificare i formati nativi da richiedere e le eventuali opzioni da impostare nel parametro options. L'elenco dei possibili valori per il parametro options è disponibile nella pagina di impostazione delle opzioni degli annunci nativi.

L'array adTypes deve contenere questa costante:

Implementare la delega di caricamento degli annunci

Il delegato del caricatore di annunci deve implementare protocolli specifici per il tuo tipo di annuncio. Per gli annunci nativi:

  • GADNativeAdLoaderDelegate Questo protocollo include un messaggio che viene inviato al delegato quando viene caricato un annuncio nativo:

    Swift

    public func adLoader(_ adLoader: GADAdLoader,
        didReceive nativeAd: GADNativeAd)
    

    Objective-C

    - (void)adLoader:(GADAdLoader *)adLoader
        didReceiveNativeAd:(GADNativeAd *)nativeAd;
    

Richiedi l'annuncio

Dopo aver inizializzato GADAdLoader, chiama il metodo loadRequest: per richiedere un annuncio:

Swift

adLoader.load(GADRequest())

Objective-C

[self.adLoader loadRequest:[GADRequest request]];

Il metodo loadRequest: in GADAdLoader accetta gli stessi oggetti GADRequest di banner e interstitial. Puoi utilizzare gli oggetti richiesta per aggiungere informazioni di targeting, come faresti con altri tipi di annunci.

Quando richiedere gli annunci

Le app che pubblicano annunci nativi possono richiederle in anticipo rispetto al momento in cui verranno effettivamente visualizzate. In molti casi, questa è la pratica consigliata. Un'app che mostra un elenco di elementi con annunci nativi uniti, ad esempio, può caricare annunci nativi per l'intero elenco, sapendo che alcuni verranno mostrati solo dopo che l'utente scorre la visualizzazione e altri potrebbero non essere visualizzati affatto.

Sebbene il precaricamento degli annunci sia una tecnica eccezionale, è importante non conservare gli annunci per sempre senza visualizzarli. Tutti gli oggetti degli annunci nativi che sono stati conservati per più di un'ora senza essere pubblicati devono essere eliminati e sostituiti con nuovi annunci provenienti da una nuova richiesta.

Determinazione al termine del caricamento

Dopo aver chiamato loadRequest:, un'app può recuperare i risultati della richiesta tramite le chiamate a:

La richiesta di un singolo annuncio genera una chiamata a uno di questi metodi.

La richiesta di più annunci avrà come risultato almeno un callback per i metodi sopra riportati, ma non più del numero massimo di annunci richiesto.

Inoltre, GADAdLoaderDelegate offre il callback adLoaderDidFinishLoading. Questo metodo delegato indica che un caricatore di annunci ha terminato il caricamento degli annunci e che non verranno segnalati altri annunci o errori per la richiesta. Ecco un esempio di come utilizzarlo durante il caricamento di più annunci nativi in una volta sola:

Swift

class ViewController: UIViewController, GADNativeAdLoaderDelegate {

  var adLoader: GADAdLoader!

  override func viewDidLoad() {
    super.viewDidLoad()

    let multipleAdsOptions = GADMultipleAdsAdLoaderOptions()
    multipleAdsOptions.numberOfAds = 5

    adLoader = GADAdLoader(adUnitID: YOUR_AD_UNIT_ID, rootViewController: self,
        adTypes: [.native],
        options: [multipleAdsOptions])
    adLoader.delegate = self
    adLoader.load(GADRequest())
  }

  func adLoader(_ adLoader: GADAdLoader,
                didReceive nativeAd: GADNativeAd) {
    // A native ad has loaded, and can be displayed.
  }

  func adLoaderDidFinishLoading(_ adLoader: GADAdLoader) {
      // The adLoader has finished loading ads, and a new request can be sent.
  }

}

Objective-C

@interface ViewController () <GADNativeAdLoaderDelegate, GADVideoControllerDelegate>
@property(nonatomic, strong) GADAdLoader *adLoader;

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];

  GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
      [[GADMultipleAdsAdLoaderOptions alloc] init];
  multipleAdsOptions.numberOfAds = 5;

  self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:YOUR_AD_UNIT_ID
          rootViewController:self
                     adTypes:@[GADAdLoaderAdTypeNative]
                     options:@[multipleAdsOptions]];
  self.adLoader.delegate = self;
  [self.adLoader loadRequest:[GADRequest request]];
}

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveNativeAd:(GADNativeAd *)nativeAd {
   // A native ad has loaded, and can be displayed.
}

- (void)adLoaderDidFinishLoading:(GADAdLoader *) adLoader {
  // The adLoader has finished loading ads, and a new request can be sent.
}

@end

Gestione delle richieste non riuscite

I protocolli riportati sopra estendono il protocollo GADAdLoaderDelegate, che definisce un messaggio inviato quando gli annunci non vengono caricati.

Swift

public func adLoader(_ adLoader: GADAdLoader,
    didFailToReceiveAdWithError error: NSError)

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didFailToReceiveAdWithError:(NSError *)error;

Ricevi notifiche sugli eventi degli annunci nativi

Per ricevere notifiche relative a eventi relativi alle interazioni degli annunci nativi, imposta la proprietà del delegato dell'annuncio nativo:

Swift

nativeAd.delegate = self

Objective-C

nativeAd.delegate = self;

Quindi implementa GADNativeAdDelegate per ricevere le seguenti chiamate delegati:

Swift

func nativeAdDidRecordImpression(_ nativeAd: GADNativeAd) {
  // The native ad was shown.
}

func nativeAdDidRecordClick(_ nativeAd: GADNativeAd) {
  // The native ad was clicked on.
}

func nativeAdWillPresentScreen(_ nativeAd: GADNativeAd) {
  // The native ad will present a full screen view.
}

func nativeAdWillDismissScreen(_ nativeAd: GADNativeAd) {
  // The native ad will dismiss a full screen view.
}

func nativeAdDidDismissScreen(_ nativeAd: GADNativeAd) {
  // The native ad did dismiss a full screen view.
}

func nativeAdWillLeaveApplication(_ nativeAd: GADNativeAd) {
  // The native ad will cause the application to become inactive and
  // open a new application.
}

Objective-C

- (void)nativeAdDidRecordImpression:(GADNativeAd *)nativeAd {
  // The native ad was shown.
}

- (void)nativeAdDidRecordClick:(GADNativeAd *)nativeAd {
  // The native ad was clicked on.
}

- (void)nativeAdWillPresentScreen:(GADNativeAd *)nativeAd {
  // The native ad will present a full screen view.
}

- (void)nativeAdWillDismissScreen:(GADNativeAd *)nativeAd {
  // The native ad will dismiss a full screen view.
}

- (void)nativeAdDidDismissScreen:(GADNativeAd *)nativeAd {
  // The native ad did dismiss a full screen view.
}

- (void)nativeAdWillLeaveApplication:(GADNativeAd *)nativeAd {
  // The native ad will cause the application to become inactive and
  // open a new application.
}

Mostra il tuo annuncio

Dopo aver caricato un annuncio, non rimane che mostrarlo agli utenti. Consulta la nostra guida avanzata per gli annunci nativi per scoprire come fare.