Annunci nativi

Gli annunci nativi sono asset annuncio presentati agli utenti tramite componenti dell'interfaccia utente che sono native della piattaforma. Vengono mostrati utilizzando gli stessi corsi che già usi negli storyboard e possono essere formattati in base alla grafica dell'app.

Quando viene caricato un annuncio nativo, l'app riceve un oggetto annuncio che contiene i suoi asset. e l'app, invece dell'SDK Google Mobile Ads, viene responsabile della loro visualizzazione.

In generale, l'implementazione efficace degli annunci nativi si compone di due parti: Caricare un annuncio utilizzando l'SDK e poi mostrare il contenuto dell'annuncio nell'app.

Questa pagina mostra come utilizzare l'SDK per caricare annunci nativi.

Prerequisiti

Effettua sempre test con annunci di prova

Durante la creazione e il test delle tue app, assicurati di utilizzare annunci di prova anziché annunci di produzione attivi.

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

ca-app-pub-3940256099942544/3986624511

È stato appositamente configurato per restituire annunci di prova per ogni richiesta usalo nelle tue app durante la programmazione, i test e il debug. Assicurati solo 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 Google Mobile Ads, consulta Annunci di prova.

Carica annunci

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

Inizializzare il caricatore di annunci

Prima di poter caricare un annuncio, devi inizializzare il caricatore degli annunci. Il seguente codice mostra come inizializzare un GADAdLoader:

Swift

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

Objective-C

self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    // The UIViewController parameter is nullable.
    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) e delle costanti da trasmettere nel adTypes per specificare i formati nativi che vuoi richiedere ed eventuali che vuoi impostare nel parametro options. L'elenco di possibili disponibili nella sezione Impostazione dell'annuncio nativooptions pagina Opzioni.

L'array adTypes deve contenere questa costante :

Implementare il delegato del caricatore annunci

Il delegato del caricatore degli annunci deve implementare protocolli specifici per il tuo tipo di annuncio. Per gli annunci nativi, il protocollo GADNativeAdLoaderDelegate include un messaggio inviato al delegato dopo il caricamento di un annuncio nativo.

Swift

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

Objective-C

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

Richiedi annunci

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

Swift

adLoader.load(GADRequest())

Objective-C

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

La loadRequest: in GADAdLoader accetta lo stesso GADRequest come banner e interstitial. Puoi utilizzare gli oggetti della richiesta per aggiungere informazioni sul targeting, così come con gli altri tipi di annunci.

Carica più annunci (facoltativo)

Per caricare più annunci in una singola richiesta, imposta il valore GADMultipleAdsAdLoaderOptions durante l'inizializzazione di un GADAdLoader.

Swift

let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
    // The UIViewController parameter is optional.
    rootViewController: self,
    adTypes: [ .native ],
    options: [ multipleAdOptions ])

Objective-C

GADMultipleAdsAdLoaderOptions *multipleAdsOptions =
    [[GADMultipleAdsAdLoaderOptions alloc] init];
multipleAdsOptions.numberOfAds = 5;
self.adLoader = [[GADAdLoader alloc]
      initWithAdUnitID:@"ca-app-pub-3940256099942544/3986624511"
    // The UIViewController parameter is nullable.
    rootViewController:rootViewController
               adTypes:@[ GADAdLoaderAdTypeNative ]
               options:@[ multipleAdsOptions ]];

Il numero massimo di annunci per richiesta è cinque e non è garantito che l'SDK restituirà il numero esatto di annunci richiesti.

Gli annunci Google restituiti sono tutti diversi l'uno dall'altro, sebbene gli annunci di inventario riservato o acquirenti di terze parti non sono garantiti come univoci.

Non utilizzare il corso GADMultipleAdsAdLoaderOptions se utilizzi la mediazione, poiché le richieste di più annunci nativi non funzionano per gli ID unità pubblicitaria che che sono stati configurati per la mediazione.

Determinazione del termine del caricamento

Dopo che un'app chiama loadRequest:, può ricevere i risultati della richiesta utilizzando chiamate a:

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

Una richiesta di più annunci comporterà almeno un callback a quanto sopra ma non più del numero massimo di annunci richiesto.

Inoltre, GADAdLoaderDelegate offre i adLoaderDidFinishLoading di Google. Questo metodo delegato indica che il caricatore di annunci ha terminato il caricamento annunci e non verranno segnalati altri annunci o errori per la richiesta. Ecco un esempio di come utilizzarla quando si caricano più annunci nativi contemporaneamente:

Swift

class ViewController: UIViewController, GADNativeAdLoaderDelegate {

  var adLoader: GADAdLoader!

  override func viewDidLoad() {
    super.viewDidLoad()

    let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
    multipleAdOptions.numberOfAds = 5;
    adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
        // The UIViewController parameter is optional.
        rootViewController: rootViewController,
        adTypes: [ .native ],
        options: [ multipleAdOptions ])

    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:@"ca-app-pub-3940256099942544/3986624511"
      // The UIViewController parameter is nullable.
      rootViewController:rootViewController
                 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 viene 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;

Ricevere notifiche sugli eventi relativi agli annunci nativi

Per ricevere notifiche su eventi relativi alle interazioni con gli annunci nativi, imposta il delegato proprietà dell'annuncio nativo:

Swift

nativeAd.delegate = self

Objective-C

nativeAd.delegate = self;

Poi 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 app to become inactive and
  // open a new app.
}

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 app to become inactive and
  // open a new app.
}

Best practice

Segui queste regole durante il caricamento degli annunci.

  • Le app che utilizzano annunci nativi in un elenco dovrebbero prememorizzare nella cache l'elenco di annunci.

  • Quando esegui la pre-memorizzazione degli annunci nella cache, svuota la cache e ricarica la pagina dopo un'ora.

  • Non chiamare più loadRequest: su GADAdLoader fino alla richiesta precedente termina il caricamento, come indicato da adLoaderDidFinishLoading:.

Mostra il tuo annuncio

Una volta caricato un annuncio, è sufficiente mostrarlo agli utenti. Vai al nostro corso native Advanced per scoprire come.