Gli annunci interstitial sono annunci a schermo intero che coprono l'interfaccia di un'app fino alla chiusura dall'utente. In genere sono mostrati 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 ha la possibilità di toccare l'annuncio e continuare con la destinazione oppure di chiuderla 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.
Esegui sempre il test con gli annunci di prova
Quando crei e testi le tue app, assicurati di utilizzare gli annunci di prova anziché gli annunci di produzione. In caso contrario, il tuo account potrebbe essere sospeso.
Il modo più semplice per caricare gli annunci di prova è utilizzare l'ID unità pubblicitaria di prova dedicato per gli interstitial per iOS:
ca-app-pub-3940256099942544/4411468910
È stato appositamente configurato per restituire annunci di test per ogni richiesta e può essere utilizzato 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 Mobile Ads, consulta Annunci di prova.
Implementazione
Ecco i passaggi principali per l'integrazione degli annunci interstitial:
- Caricare un annuncio.
- Registrati per richiamare.
- Mostrare l'annuncio e gestire l'evento relativo ai premi.
Carica un annuncio
Il caricamento di un annuncio viene eseguito utilizzando il metodo loadWithAdUnitID:request:completionHandler:
statico nella classe GADInterstitialAd
. Il metodo di caricamento richiede
l'ID dell'unità pubblicitaria, un oggetto GADRequest
e un
gestore del completamento che viene chiamato 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 elemento GADInterstitialAd
nella classe 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 quando l'annuncio viene presentato correttamente o meno e quando viene ignorato. Il codice riportato di seguito 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 utilizzabile una sola volta. Ciò significa che, una volta mostrato un annuncio interstitial, non può essere mostrato di nuovo. Una best practice
è caricare un altro annuncio interstitial nel
adDidDismissFullScreenContent:
metodo GADFullScreenContentDelegate
in modo che
il successivo annuncio interstitial inizi a essere caricato non appena viene ignorato.
Visualizza l'annuncio
Gli interstitial devono essere visualizzati durante le pause naturali del 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
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 gli annunci interstitial sono il tipo di annuncio giusto per la tua app.
- 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 un punto simile. 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 devi mostrare 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 propria 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 avrà completato l'interazione con l'annuncio. Inoltre, prendi in considerazione l'interruzione temporanea di attività di calcolo intense (ad esempio, un ciclo di gioco) durante la visualizzazione dell'annuncio. In questo modo, l'utente non riscontrerà immagini reiterate o lente o video non regolari. - I tempi di caricamento sono corretti.
- Così come è importante assicurarsi di mostrare gli annunci interstitial nel momento appropriato, è altrettanto importante assicurarsi che l'utente non debba attendere il caricamento. Caricare l'annuncio in anticipo prima della pubblicazione, puoi assicurarti che il tuo annuncio interstitial nella tua app sia pronto quando arriva il momento di mostrarne uno.
- Non inondare l'utente degli annunci.
- L'aumento della frequenza degli annunci interstitial nella tua app potrebbe sembrare un ottimo modo per incrementare le entrate, ma può anche ridurre l'esperienza utente e ridurre le percentuali di clic. Assicurati che gli utenti non vengano interrotti così spesso che non possano più usare la tua app.
- Non usare il callback di completamento del caricamento per mostrare l'annuncio interstitial.
- Ciò può compromettere l'esperienza utente. Precarica l'annuncio prima di mostrarlo. Poi controllate il metodo
canPresentFromRootViewController:error:
suGADInterstitialAd
per sapere 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'interfaccia utente di AdMob.
- Scopri di più sul targeting degli annunci e sulle linee guida per gli annunci interstitial. * Scopri di più sulla privacy degli utenti.