Gli annunci interstitial sono annunci a schermo intero che coprono l'interfaccia di un'app fino alla chiusura da parte dell'utente. In genere vengono visualizzati nei punti di transizione naturali nel flusso di un'app, ad esempio tra le attività o durante la pausa tra i livelli di un gioco. Quando un'app mostra un annuncio interstitial, l'utente può scegliere di toccare l'annuncio e continuare fino alla destinazione oppure di chiuderlo e tornare all'app. Case study.
Questa guida illustra come integrare gli annunci interstitial in un'app per iOS.
Prerequisiti
- SDK Google Mobile Ads 8.0.0 o versioni successive.
- Completa la Guida introduttiva.
Eseguire sempre i test con gli annunci di prova
Durante la creazione e il test delle tue app, assicurati di utilizzare annunci di prova anziché annunci attivi di produzione. In caso contrario, l'account potrebbe essere sospeso.
Il modo più semplice per caricare gli annunci di prova è utilizzare l'ID della nostra unità pubblicitaria di prova dedicata per gli interstitial iOS:
ca-app-pub-3940256099942544/4411468910
È stato configurato appositamente per restituire annunci di test per ogni richiesta e puoi utilizzarlo liberamente nelle tue app durante la programmazione, i test e il debug. Devi solo assicurarti di sostituirlo con il tuo ID unità pubblicitaria prima di pubblicare l'app.
Per maggiori informazioni su come funzionano gli annunci di prova dell'SDK Mobile Ads, consulta Testa annunci.
Implementazione
I passaggi principali per l'integrazione degli annunci interstitial sono:
- Caricare un annuncio.
- Registrati per richiamare.
- Mostra l'annuncio e gestisci l'evento premio.
Caricare un annuncio
Il caricamento di un annuncio viene eseguito utilizzando il metodo statico loadWithAdUnitID:request:completionHandler:
nella classe GADInterstitialAd
. Il metodo di caricamento richiede
il tuo ID unità pubblicitaria, un oggetto GADRequest
e un
gestore di completamento che viene richiamato quando il caricamento dell'annuncio ha esito positivo o negativo. L'oggetto GADInterstitialAd
caricato viene fornito come parametro nel gestore di completamento. L'esempio seguente mostra come caricare un
GADInterstitialAd
nel tuo corso ViewController
.
Swift
import GoogleMobileAds import UIKit class ViewController: UIViewController { private var interstitial: GADInterstitialAd? override func viewDidLoad() { super.viewDidLoad() let request = GADRequest() GADInterstitialAd.load(withAdUnitID:"ca-app-pub-3940256099942544/4411468910", request: request, completionHandler: { [self] ad, error in if let error = error { print("Failed to load interstitial ad with error: \(error.localizedDescription)") return } interstitial = ad } ) } }
Objective-C
@import GoogleMobileAds; @import UIKit; @interface ViewController () @property(nonatomic, strong) GADInterstitialAd *interstitial; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; GADRequest *request = [GADRequest request]; [GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910" request:request completionHandler:^(GADInterstitialAd *ad, NSError *error) { if (error) { NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]); return; } self.interstitial = ad; }]; }
Registrati per i callback
Per ricevere notifiche per gli eventi di presentazione, devi implementare il protocollo GADFullScreenContentDelegate
e assegnarlo alla proprietà fullScreenContentDelegate
dell'annuncio restituito. Il protocollo GADFullScreenContentDelegate
gestisce i callback per presentare l'annuncio correttamente o non correttamente e quando viene ignorato. Il seguente codice mostra come implementare il protocollo e assegnarlo all'annuncio:
Swift
class ViewController: UIViewController, GADFullScreenContentDelegate { private var interstitial: GADInterstitialAd? override func viewDidLoad() { super.viewDidLoad() let request = GADRequest() GADInterstitialAd.load(withAdUnitID:"ca-app-pub-3940256099942544/4411468910", request: request, completionHandler: { [self] ad, error in if let error = error { print("Failed to load interstitial ad with error: \(error.localizedDescription)") return } interstitial = ad interstitial?.fullScreenContentDelegate = self } ) } /// Tells the delegate that the ad failed to present full screen content. func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) { print("Ad did fail to present full screen content.") } /// Tells the delegate that the ad will present full screen content. func adWillPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) { print("Ad will present full screen content.") } /// Tells the delegate that the ad dismissed full screen content. func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) { print("Ad did dismiss full screen content.") } }
Objective-C
@interface ViewController ()<GADFullScreenContentDelegate> @property(nonatomic, strong) GADInterstitialAd *interstitial; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; GADRequest *request = [GADRequest request]; [GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910" request:request completionHandler:^(GADInterstitialAd *ad, NSError *error) { if (error) { NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]); return; } self.interstitial = ad; self.interstitial.fullScreenContentDelegate = self; }]; } /// Tells the delegate that the ad failed to present full screen content. - (void)ad:(nonnull id<GADFullScreenPresentingAd>)ad didFailToPresentFullScreenContentWithError:(nonnull NSError *)error { NSLog(@"Ad did fail to present full screen content."); } /// Tells the delegate that the ad will present full screen content. - (void)adWillPresentFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad { NSLog(@"Ad will present full screen content."); } /// Tells the delegate that the ad dismissed full screen content. - (void)adDidDismissFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad { NSLog(@"Ad did dismiss full screen content."); }
GADInterstitialAd
è un oggetto monouso. Ciò significa che, una volta pubblicato, un annuncio interstitial non può più essere pubblicato. Una best practice consiste nel caricare un altro annuncio interstitial nel metodo adDidDismissFullScreenContent:
su GADFullScreenContentDelegate
, in modo che l'annuncio interstitial successivo inizi a caricarsi non appena l'annuncio precedente viene ignorato.
Mostra l'annuncio
Gli interstitial devono essere visualizzati durante le pause naturali nel flusso di un'app.
Tra i livelli di un gioco è un buon esempio o dopo che l'utente completa un'attività.
Ecco un esempio di come eseguire questa operazione in uno dei metodi di azione in un
UIViewController
:
Swift
@IBAction func doSomething(_ sender: Any) { if interstitial != nil { interstitial.present(fromRootViewController: self) } else { print("Ad wasn't ready") } }
Objective-C
- (IBAction)doSomething:(id)sender { ... if (self.interstitial) { [self.interstitial presentFromRootViewController:self]; } else { NSLog(@"Ad wasn't ready"); } }
Best practice
- Valuta se il tipo di annuncio della tua app è quello corretto.
- Gli annunci interstitial funzionano meglio nelle app con punti di transizione naturali. La conclusione di un'attività all'interno di un'app, come la condivisione di un'immagine o il completamento di un livello di gioco, crea questo punto. Poiché l'utente si aspetta un'interruzione dell'azione, è facile presentare un annuncio interstitial senza interrompere la sua esperienza. Assicurati di considerare i punti del flusso di lavoro della tua app in cui visualizzerai gli annunci interstitial e la probabilità che l'utente risponda.
- Ricorda di mettere in pausa l'azione quando visualizzi un annuncio interstitial.
- Esistono diversi tipi di annunci interstitial: di testo, illustrati, video e altri. È importante assicurarsi che quando la tua app visualizza un annuncio interstitial, sospende anche l'utilizzo di alcune risorse per consentirne l'utilizzo. Ad esempio, quando effettui la chiamata per visualizzare un annuncio interstitial, assicurati di mettere in pausa l'output audio prodotto dalla tua app. Puoi riprendere la riproduzione dei suoni nel gestore di eventi
adDidDismissFullScreenContent:
, che verrà richiamato quando l'utente ha finito di interagire con l'annuncio. Inoltre, valuta la possibilità di interrompere temporaneamente le attività di calcolo più intense (ad esempio un ciclo di gioco) durante la visualizzazione dell'annuncio. In questo modo, l'utente non si imbatterà in video lenti o che non rispondono in modo reattivo o video con interruzioni. - Concedi un tempo di caricamento adeguato.
- Così come è importante assicurarsi di visualizzare annunci interstitial al momento opportuno, è altrettanto importante assicurarsi che l'utente non debba attendere il caricamento. Caricare l'annuncio in anticipo prima della pubblicazione puoi assicurarti che la tua app disponga di un annuncio interstitial completamente caricato quando è il momento di mostrarne uno.
- Non inondare l'utente degli annunci.
- Sebbene l'aumento della frequenza degli annunci interstitial nella tua app possa sembrare un ottimo modo per aumentare le entrate, può anche ridurre l'esperienza utente e ridurre le percentuali di clic. Assicurati che gli utenti non la interrompeno così spesso da non poter più usare l'app.
- Non utilizzare il callback di completamento del caricamento per mostrare la versione interstitial.
- Ciò può compromettere l'esperienza utente. Precarica invece l'annuncio prima di mostrarlo. Controlla il metodo
canPresentFromRootViewController:error:
suGADInterstitialAd
per scoprire se è pronto per essere mostrato.
Risorse aggiuntive
Esempi su GitHub
- Esempio di annunci interstitial: Swift | Objective-C
Tutorial video di Mobile Ads Garage
Casi di successo
Passaggi successivi
- Se non l'hai già fatto, crea la tua unità pubblicitaria interstitial nell'UI di AdMob.
- Scopri il targeting degli annunci e le linee guida per gli annunci interstitial.