Gli annunci nativi sono asset annuncio presentati agli utenti tramite componenti dell'interfaccia utente nativi della piattaforma. Vengono mostrati usando le stesse classi che hai già usato nei tuoi storyboard e possono essere formattati in base al design visivo della tua app.
Quando un annuncio nativo viene caricato, l'app riceve un oggetto dell'annuncio che contiene i relativi asset e l'app, anziché l'SDK Google Mobile Ads, ne è responsabile.
In linea di massima, una corretta implementazione degli annunci nativi si compone di due parti: il caricamento di un annuncio tramite l'SDK e la visualizzazione dei contenuti 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 test le tue app, assicurati di utilizzare annunci di prova anziché annunci di produzione pubblicati.
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
È configurato appositamente per restituire annunci di prova per ogni richiesta e puoi utilizzarlo nelle tue app durante la programmazione, il 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 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 protocollo GADAdLoaderDelegate
.
Inizializzare il caricatore di annunci
Prima di poter caricare un annuncio, devi inizializzare il caricatore di annunci.
Il seguente codice mostra come inizializzare 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 trasferire nell'array
adTypes
per specificare i formati nativi da richiedere e
le opzioni che vuoi impostare nel parametro options
. L'elenco dei possibili valori per il parametro options
è disponibile nella pagina Impostazione delle opzioni per gli 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, il protocollo GADNativeAdLoaderDelegate
include un messaggio che viene inviato all'utente delegata quando è stato caricato un annuncio nativo.
Swift
public func adLoader(_ adLoader: GADAdLoader,
didReceive nativeAd: GADNativeAd)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didReceiveNativeAd:(GADNativeAd *)nativeAd;
Richiedi annunci
Una volta 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 sul targeting, proprio come faresti con altri tipi di annuncio.
Carica più annunci (facoltativo)
Per caricare più annunci in una singola richiesta, imposta l'oggetto GADMultipleAdsAdLoaderOptions
durante l'inizializzazione di un valore GADAdLoader
.
Swift
let multipleAdOptions = GADMultipleAdsAdLoaderOptions()
multipleAdOptions.numberOfAds = 5;
adLoader = GADAdLoader(adUnitID: "ca-app-pub-3940256099942544/3986624511",
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"
rootViewController:rootViewController
adTypes:@[ GADAdLoaderAdTypeNative ]
options:@[ multipleAdsOptions ]];
Il numero massimo di annunci per richiesta è cinque e non è garantito che l'SDK restituisca il numero esatto di annunci richiesti.
Gli annunci Google restituiti saranno tutti diversi, 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 usi la mediazione, in quanto le richieste di più annunci nativi al momento non funzionano per gli ID unità pubblicitaria configurati per la mediazione.
Individuazione del termine del caricamento
Dopo che un'app chiama loadRequest:
, può ricevere i risultati della richiesta utilizzando le chiamate per:
adLoader:didFailToReceiveAdWithError:
aGADAdLoaderDelegate
adLoader:didReceiveNativeAd:
aGADNativeAdLoaderDelegate
Una richiesta per un singolo annuncio comporterà una chiamata a uno di questi metodi.
Una richiesta per più annunci comporterà almeno un callback ai metodi sopra indicati, ma non oltre il numero massimo di annunci richiesti.
Inoltre, GADAdLoaderDelegate
offre il
callback di adLoaderDidFinishLoading
. Questo metodo delegato indica che un caricatore di annunci ha terminato il caricamento degli annunci e che non vengono 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",
rootViewController: self,
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"
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 di cui sopra estendono il protocollo GADAdLoaderDelegate
, che definisce un messaggio inviato quando gli annunci non si caricano.
Swift
public func adLoader(_ adLoader: GADAdLoader,
didFailToReceiveAdWithError error: NSError)
Objective-C
- (void)adLoader:(GADAdLoader *)adLoader
didFailToReceiveAdWithError:(NSError *)error;
Ricevere notifiche relative agli eventi degli annunci nativi
Per ricevere notifiche di eventi relativi alle interazioni con gli annunci nativi, imposta la proprietà delegata dell'annuncio nativo:
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 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 gli annunci nativi in un elenco dovrebbero memorizzare nella cache l'elenco di annunci.
Quando inserisci gli annunci nella cache, svuota la cache e ricarica dopo un'ora.
Non chiamare di nuovo
loadRequest:
su unGADAdLoader
finché non viene completato il caricamento della richiesta precedente, come indicato daadLoaderDidFinishLoading:
.
Visualizza il tuo annuncio
Una volta caricato un annuncio, non ti resta che visualizzarlo agli utenti. Consulta la nostra guida agli annunci nativi avanzati per scoprire come.