Caricare un annuncio nativo

Gli annunci nativi sono asset pubblicitari presentati agli utenti tramite componenti dell'interfaccia utente nativi della piattaforma. Vengono mostrati utilizzando le stesse classi che usi già negli storyboard e possono essere formattati in modo da corrispondere al design visivo della tua app.

Quando viene caricato un annuncio nativo, la tua app riceve un oggetto annuncio che contiene i relativi asset, e l'app, anziché Google Mobile Ads SDK—è quindi responsabile della loro visualizzazione.

In generale, l'implementazione corretta degli annunci nativi prevede due passaggi: caricare un annuncio utilizzando l'SDK e poi visualizzare i contenuti dell'annuncio nella tua app.

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

Prerequisiti

Prima di continuare, configura Google Mobile Ads SDK.

Esegui sempre i test con gli annunci di prova

Quando crei e testi le tue app, assicurati di utilizzare annunci di prova anziché annunci di produzione live.

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

/21775744923/example/native

È stato configurato appositamente 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 maggiori dettagli sugli annunci di prova Google Mobile Ads SDK, consulta la pagina Attivare gli annunci di prova.

Caricare gli annunci

Gli annunci nativi vengono caricati con la GADAdLoader classe, che invia messaggi ai relativi delegati in base al GADAdLoaderDelegate protocollo.

Oltre al formato nativo definito dal sistema, puoi anche creare i tuoi formati degli annunci nativi personalizzati che possono essere utilizzati per gli annunci nativi venduti direttamente. I formati degli annunci nativi personalizzati ti consentono di passare dati strutturati arbitrari alla tua app. Questi annunci sono rappresentati dalla classe GADCustomNativeAd.

Inizializzare il caricatore di annunci

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

Swift

adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  // The UIViewController parameter is optional.
  rootViewController: self,
  // To receive native ads, the ad loader's delegate must
  // conform to the NativeAdLoaderDelegate protocol.
  adTypes: [.native],
  // Use nil for default options.
  options: nil)
// Set the delegate before making an ad request.
adLoader.delegate = self

Sostituisci nativeAdUnitID con il tuo ID unità pubblicitaria.

Objective-C

self.adLoader =
    [[GADAdLoader alloc] initWithAdUnitID:"kNativeAdUnitID"
                       // The UIViewController parameter is optional.
                       rootViewController:self
                                  // To receive native ads, the ad loader's delegate must
                                  // conform to the NativeAdLoaderDelegate protocol.
                                  adTypes:@[ GADAdLoaderAdTypeNative ]
                                  // Use nil for default options.
                                  options:nil];
// Set the delegate before making an ad request.
self.adLoader.delegate = self;

Sostituisci kNativeAdUnitID con il tuo ID unità pubblicitaria.

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

L'array adTypes deve contenere una o più delle seguenti costanti :

Implementare il delegato del caricatore di annunci

Il delegato del caricatore di annunci deve implementare protocolli specifici per il tipo di annuncio. Per gli annunci nativi, il protocollo GADNativeAdLoaderDelegate include un messaggio inviato al delegato quando viene caricato un annuncio nativo.

Swift

func adLoader(_ adLoader: AdLoader, didReceive nativeAd: NativeAd) {
  // Set the delegate to receive notifications for interactions with the native ad.
  nativeAd.delegate = self

  // TODO: Display the native ad.
}

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader didReceiveNativeAd:(GADNativeAd *)nativeAd {
  // Set the delegate to receive notifications for interactions with the native ad.
  nativeAd.delegate = self;

  // TODO: Display the native ad.
}

Il protocollo GADCustomNativeAdLoaderDelegate include un messaggio inviato al delegato quando viene caricato un annuncio con modello personalizzato.

Swift

func adLoader(_ adLoader: AdLoader, didReceive customNativeAd: CustomNativeAd) {
  // To be notified of events related to the custom native ad interactions, set the delegate
  // property of the native ad
  customNativeAd.delegate = self

  // TODO: Display the custom native ad.
}

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader
    didReceiveCustomNativeAd:(GADCustomNativeAd *)customNativeAd {
  // To be notified of events related to the custom native ad interactions, set the delegate
  // property of the native ad
  customNativeAd.delegate = self;

  // TODO: Display the custom native ad.
}

Richiedere annunci

Una volta inizializzato GADAdLoader, chiama il metodo loadRequest: per richiedere un annuncio:

Swift

adLoader.load(AdManagerRequest())

Objective-C

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

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

(Facoltativo) Caricare più annunci

Per caricare più annunci in una singola richiesta, imposta l' GADMultipleAdsAdLoaderOptions oggetto quando inizializzi un GADAdLoader.

Swift

let multipleAdOptions = MultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5
adLoader = AdLoader(
  adUnitID: "nativeAdUnitID",
  // The UIViewController parameter is optional.
  rootViewController: self,
  adTypes: [.native],
  options: [multipleAdOptions])

Objective-C

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

self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:"kNativeAdUnitID"
                                   // The UIViewController parameter is optional.
                                   rootViewController:self
                                              adTypes:@[ GADAdLoaderAdTypeNative ]
                                              options:@[ multipleAdOptions ]];

Il numero di annunci per richiesta è limitato a cinque e non è garantito che l'SDK restituisca il numero esatto di annunci richiesti.

Tutti gli annunci Google restituiti saranno diversi l'uno dall'altro, anche se non è garantito che gli annunci provenienti da inventario prenotato o da acquirenti di terze parti siano univoci.

Non utilizzare la classe GADMultipleAdsAdLoaderOptions se utilizzi la mediazione, poiché le richieste di più annunci nativi non funzionano per gli ID unità pubblicitarie configurati per la mediazione.

Determinare quando il caricamento è terminato

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

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

Una richiesta di più annunci comporterà almeno un callback ai metodi sopra indicati, ma non più del numero massimo di annunci richiesti.

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 per caricare più annunci nativi contemporaneamente:

Swift

func adLoaderDidFinishLoading(_ adLoader: AdLoader) {
  // The adLoader has finished loading ads.
}

Objective-C

- (void)adLoaderDidFinishLoading:(GADAdLoader *)adLoader {
  // The adLoader has finished loading ads.
}

Gestire le richieste non riuscite

I protocolli estendono il protocollo GADAdLoaderDelegate, che definisce un messaggio inviato quando il caricamento degli annunci non riesce.

Swift

func adLoader(_ adLoader: AdLoader, didFailToReceiveAdWithError error: any Error) {
  // The adLoader failed to receive an ad.
}

Objective-C

- (void)adLoader:(GADAdLoader *)adLoader didFailToReceiveAdWithError:(NSError *)error {
  // The adLoader failed to receive an ad.
}

Ricevere notifiche sugli eventi degli annunci nativi

Per ricevere notifiche sugli eventi relativi alle interazioni con gli annunci nativi, imposta la proprietà delegate dell'annuncio nativo:

Swift

nativeAd.delegate = self

Objective-C

nativeAd.delegate = self;

Poi implementa GADNativeAdDelegate per ricevere le seguenti chiamate delegate:

Swift

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

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

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

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

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

func nativeAdWillLeaveApplication(_ nativeAd: NativeAd) {
  // 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 quando carichi gli annunci.

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

  • Quando prememorizzi gli annunci nella cache, svuota la cache e ricarica dopo un'ora.

  • Non chiamare di nuovo loadRequest: su un GADAdLoader finché il caricamento della richiesta precedente non è terminato, come indicato da adLoaderDidFinishLoading:.

  • Limita la memorizzazione nella cache degli annunci nativi solo a ciò che è necessario. Ad esempio, quando si esegue il precaching, memorizza nella cache solo gli annunci immediatamente visibili sullo schermo. Gli annunci nativi hanno un footprint della memoria elevato e la memorizzazione nella cache degli annunci nativi senza eliminarli comporta un utilizzo eccessivo della memoria.

  • Elimina gli annunci nativi quando non sono più in uso.

Visualizzare l'annuncio

Una volta caricato un annuncio, non ti resta che mostrarlo agli utenti. Consulta la nostra Guida avanzata agli annunci nativi per scoprire come fare.