Gli annunci nativi sono asset annuncio che vengono presentati agli utenti tramite componenti dell'interfaccia utente nativi della piattaforma. Vengono mostrati utilizzando gli stessi corsi che già utilizzi negli storyboard e possono essere formattati in base alla grafica dell'app.
Quando viene caricato un annuncio nativo, la tua app riceve un oggetto annuncio contenente gli asset e sarà responsabile della loro visualizzazione, anziché l'SDK Google Mobile Ads.
In generale, la corretta implementazione 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
- Completa la Guida introduttiva.
Esegui sempre test con annunci di prova
Quando crei e testi le tue app, assicurati di utilizzare annunci di prova anziché annunci pubblicati in produzione.
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:
ca-app-pub-3940256099942544/3986624511
È stato configurato appositamente per restituire annunci di prova per ogni richiesta e puoi usarlo 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 con la classe
GADAdLoader
, che invia messaggi ai propri delegati in base al
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
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 annunci
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
GADRequest
oggetti di banner e interstitial. Puoi utilizzare gli oggetti request per aggiungere informazioni sul targeting, come faresti con 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.
Determinare quando il caricamento è terminato
Dopo che un'app chiama loadRequest:
, può ricevere i risultati della richiesta utilizzando
chiamate a:
adLoader:didFailToReceiveAdWithError:
traGADAdLoaderDelegate
adLoader:didReceiveNativeAd:
inGADNativeAdLoaderDelegate
Una 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 il callback adLoaderDidFinishLoading
. 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 utilizzarlo quando carichi 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 precedenti estendono il protocollo GADAdLoaderDelegate
, che definisce un messaggio inviato quando non riesce a caricare gli annunci.
Swift
public func adLoader(_ adLoader: GADAdLoader,
didFailToReceiveAdWithError error: NSError)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didFailToReceiveAdWithError:(NSError *)error;
Ricevere notifiche sugli eventi degli 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 quando carichi gli annunci.
Le app che utilizzano annunci nativi in un elenco dovrebbero prememorizzare nella cache l'elenco di annunci.
Quando memorizzi nella cache gli annunci, svuota la cache e ricarica dopo un'ora.
Non chiamare più
loadRequest:
suGADAdLoader
fino alla richiesta precedente termina il caricamento, come indicato daadLoaderDidFinishLoading:
.Limita la memorizzazione nella cache degli annunci nativi solo a ciò che è necessario. Ad esempio, durante il pre-caching, memorizza nella cache solo gli annunci immediatamente visibili sullo schermo. Gli annunci nativi hanno un'impronta in memoria elevata e la loro memorizzazione nella cache senza distruggerli comporta un utilizzo eccessivo della memoria.
Elimina gli annunci nativi quando non sono più in uso.
Mostra il tuo annuncio
Una volta caricato un annuncio, è sufficiente mostrarlo agli utenti. Vai al nostro corso native Advanced per scoprire come.