Annunci nativi

Gli annunci nativi sono asset degli annunci che vengono 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, l'app riceve un oggetto annuncio contenente i relativi asset e l'app (anziché l'SDK) è quindi responsabile di visualizzarli. Diverso dagli altri formati dell'annuncio, che non consentono di personalizzare l'aspetto dell'annuncio.

Questa guida ti spiegherà come utilizzare l'SDK Google Mobile Ads per implementare gli annunci nativi in un'app per iOS, nonché alcuni aspetti importanti da prendere in considerazione.

In generale, esistono due parti per implementare correttamente gli annunci nativi: caricare un annuncio tramite l'SDK e visualizzare il contenuto dell'annuncio nella tua app. In questa pagina viene spiegato il caricamento degli annunci utilizzando l'SDK.

Se hai già completato il caricamento degli annunci nativi e devi solo sapere come pubblicarli, non esitare a consultare le nostre guide Modelli nativi o Nativa avanzata.

Prerequisiti

Esegui sempre il test con gli annunci di prova

Prima di iniziare, tieni presente che, quando crei e test le tue app, devi assicurarti di utilizzare annunci di prova anziché annunci di produzione attivi. Il test con gli annunci di produzione potrebbe comportare la 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 appositamente configurato per restituire annunci di prova per ogni richiesta e puoi utilizzarlo nelle tue app durante la codifica, i test e il debug. Assicurati di sostituirlo con il tuo ID unità pubblicitaria prima di pubblicare l'app.

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

Caricamento annunci

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

Inizializzare il caricatore di annunci

Per poter caricare un annuncio, devi inizializzare il caricatore. 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), costanti per passare nell'array adTypes per specificare i formati nativi che vuoi richiedere e qualsiasi opzione da impostare nel parametro options. L'elenco di possibili valori per il parametro options è disponibile nella pagina di impostazione delle opzioni degli annunci nativi.

L'array adTypes deve contenere questa costante:

Implementare il delegato del caricatore di 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 relativo 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 essere richieste in anticipo e in tempo reale quando verranno effettivamente visualizzate. In molti casi, è questa la prassi 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 avrà fatto scorrere la visualizzazione, mentre altri potrebbero non essere visualizzati affatto.

Il precaricamento di annunci è un'ottima tecnica, ma è importante non conservare gli annunci precedenti in modo permanente senza mostrarli. Gli oggetti degli annunci nativi che sono stati trattenuti senza visualizzazione per più di un'ora devono essere ignorati e sostituiti con nuovi annunci da una nuova richiesta.

Rilevamento del termine del caricamento

Quando un'app chiama loadRequest:, può ricevere i risultati della richiesta chiamando:

Una richiesta per un singolo annuncio comporterà una chiamata a uno di questi metodi.

Una richiesta per più annunci comporterà 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 del delegato indica che il caricamento di un annuncio è terminato e che non vengono segnalati altri annunci o errori per la richiesta. Ecco un esempio di come utilizzarlo per caricare più annunci nativi contemporaneamente:

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 non vengono caricati gli annunci.

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 una notifica degli eventi relativi alle interazioni con gli annunci nativi, imposta la proprietà del delegato della stessa:

Swift

nativeAd.delegate = self

Objective-C

nativeAd.delegate = self;

Quindi implementa GADNativeAdDelegate per ricevere le seguenti chiamate delegate:

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 devi fare altro che mostrarlo agli utenti. Per saperne di più, consulta la guida per gli annunci nativi avanzati.