Gli interstitial sono annunci a schermo intero che coprono l'interfaccia di un'app fino a quando chiuso dall'utente. In genere, vengono visualizzati in punti di transizione naturali il flusso di un'app, ad esempio tra un'attività e l'altra o durante la pausa livelli in un gioco. Quando un'app mostra un annuncio interstitial, l'utente può scegliere toccare l'annuncio e continuare fino alla destinazione oppure 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.
Effettua sempre test con annunci di prova
Durante la creazione e il test delle tue app, assicurati di utilizzare annunci di prova anziché annunci di produzione attivi. In caso contrario, l'account verrà sospeso.
Il modo più semplice per caricare annunci di prova è utilizzare il nostro ID unità pubblicitaria di prova dedicato
per gli interstitial su iOS:
ca-app-pub-3940256099942544/4411468910
È stato appositamente configurato per restituire annunci di prova per ogni richiesta Puoi usarlo senza costi nelle tue app durante la programmazione, i test e il debug. Crea assicurati di sostituirlo con il tuo ID unità pubblicitaria prima di pubblicare l'app.
Per ulteriori informazioni sul funzionamento degli annunci di prova dell'SDK Mobile Ads, consulta Annunci di prova.
Implementazione
I passaggi principali per integrare gli annunci interstitial sono:
- Carica un annuncio.
- Registrati per le richiamate.
- Mostrare l'annuncio e gestire l'evento premio.
Carica un annuncio
Il caricamento di un annuncio viene eseguito utilizzando
load(adUnitID:request)
nella
GADInterstitial
corso.
Swift
import GoogleMobileAds
import UIKit
class ViewController: UIViewController {
private var interstitial: GADInterstitial?
override func viewDidLoad() {
super.viewDidLoad()
Task {
do {
interstitial = try await GADInterstitial.load(
withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: GADRequest())
} catch {
print("Failed to load interstitial ad with error: \(error.localizedDescription)")
}
}
}
}
SwiftUI
import GoogleMobileAds
class InterstitialViewModel: NSObject, GADFullScreenContentDelegate {
private var interstitialAd: GADInterstitialAd?
func loadAd() async {
do {
interstitialAd = try await GADInterstitialAd.load(
withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: GADRequest())
interstitialAd?.fullScreenContentDelegate = self
} catch {
print("Failed to load interstitial ad with error: \(error.localizedDescription)")
}
}
Objective-C
@import GoogleMobileAds;
@import UIKit;
@interface ViewController ()
@property(nonatomic, strong) GADInterstitial *interstitial;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
GADRequest *request = [GADRequest request];
[GADInterstitial loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
request:request
completionHandler:^(GADInterstitial *ad, NSError *error) {
if (error) {
NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]);
return;
}
self.interstitial = ad;
}];
}
Registrati per le richiamate
Per ricevere notifiche per gli eventi di presentazione, devi implementare
il protocollo GADFullScreenContentDelegate
e assegnarlo al
Proprietà fullScreenContentDelegate
dell'annuncio restituito. La
Il protocollo GADFullScreenContentDelegate
gestisce i callback quando l'annuncio
presenta correttamente o meno e quando viene ignorato. Le seguenti
mostra come implementare il protocollo e assegnarlo all'annuncio:
Swift
import GoogleMobileAds
import UIKit
class ViewController: UIViewController, GADFullScreenContentDelegate {
private var interstitial: GADInterstitial?
override func viewDidLoad() {
super.viewDidLoad()
Task {
do {
interstitial = try await GADInterstitial.load(
withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: GADRequest())
interstitial?.fullScreenContentDelegate = self
} catch {
print("Failed to load interstitial ad with error: \(error.localizedDescription)")
}
}
}
/// 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.")
}
}
SwiftUI
Assegna la proprietà fullScreenContentDelegate
all'annuncio restituito:
interstitialAd?.fullScreenContentDelegate = self
Implementa il protocollo:
func adDidRecordImpression(_ ad: GADFullScreenPresentingAd) {
print("\(#function) called")
}
func adDidRecordClick(_ ad: GADFullScreenPresentingAd) {
print("\(#function) called")
}
func ad(
_ ad: GADFullScreenPresentingAd,
didFailToPresentFullScreenContentWithError error: Error
) {
print("\(#function) called")
}
func adWillPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) {
print("\(#function) called")
}
func adWillDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
print("\(#function) called")
}
func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
print("\(#function) called")
// Clear the interstitial ad.
interstitialAd = nil
}
Objective-C
@import GoogleMobileAds;
@import UIKit;
@interface ViewController () <GADFullScreenContentDelegate>
@property(nonatomic, strong) GADInterstitial *interstitial;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
GADRequest *request = [GADRequest request];
[GADInterstitial loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
request:request
completionHandler:^(GADInterstitial *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.");
}
GADInterstitial
è un oggetto monouso. Questo
indica che un annuncio interstitial visualizzato non può essere mostrato di nuovo. Una migliore
è caricare un altro annuncio interstitial nella
Metodo adDidDismissFullScreenContent:
su GADFullScreenContentDelegate
quindi
l'annuncio interstitial successivo inizia a caricarsi non appena quello precedente viene
ignorata.
Mostrare 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 ha completato un'attività.
Swift
guard let interstitial = interstitial else {
return print("Ad wasn't ready.")
}
// The UIViewController parameter is an optional.
interstitial.present(fromRootViewController: nil)
SwiftUI
Monitora gli eventi dell'interfaccia utente nella vista per determinare quando mostrare l'annuncio.
var body: some View {
// ...
}
.onChange(of: countdownTimer.isComplete) { newValue in
showGameOverAlert = newValue
}
.alert(isPresented: $showGameOverAlert) {
Alert(
title: Text("Game Over"),
message: Text("You lasted \(countdownTimer.countdownTime) seconds"),
dismissButton: .cancel(
Text("OK"),
action: {
viewModel.showAd()
}))
Presenta l'annuncio interstitial dal modello di visualizzazione:
func showAd() {
guard let interstitialAd = interstitialAd else {
return print("Ad wasn't ready.")
}
interstitialAd.present(fromRootViewController: nil)
}
Objective-C
if (self.interstitial) {
// The UIViewController parameter is nullable.
[self.interstitial presentFromRootViewController:nil];
} 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 al meglio nelle app con punti di transizione naturali. La conclusione di un'attività all'interno di un'app, ad esempio la condivisione di un'immagine o il completamento a livello di gioco, crea un punto di questo tipo. Poiché l'utente si aspetta un'interruzione nella è facile presentare un annuncio interstitial senza interrompere la un'esperienza senza intervento manuale. Assicurati di considerare in quali punti del flusso di lavoro della tua app gli annunci interstitial display e la probabilità che l'utente risponda.
- Ricorda di mettere in pausa l'azione quando visualizzi un annuncio interstitial.
- Esistono vari tipi di annunci interstitial: di testo, illustrati,
video e altro ancora. È importante assicurarsi che quando nell'app sia visualizzata
un annuncio interstitial, sospende anche l'utilizzo di alcune risorse per consentire
sfruttarle. 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 nelle
adDidDismissFullScreenContent:
, che verrà richiamato al termine dell'interazione dell'utente. con l'annuncio. Inoltre, valuta la possibilità di interrompere temporaneamente i calcoli intensivi attività (come un ciclo di gioco) durante la visualizzazione dell'annuncio. Questo assicura che l'utente non riscontri grafici lenti o che non rispondono, né stuttering video. - Attendi un tempo di caricamento adeguato.
- Così come è importante assicurarsi di mostrare gli annunci interstitial a un al momento giusto, è inoltre importante assicurarsi che l'utente non debba e attenderemo il loro caricamento. Caricare l'annuncio in anticipo prima della data in cui vuoi pubblicarlo puoi assicurarti che nell'app sia disponibile un annuncio interstitial completamente caricato arriva il momento di mostrarne uno.
- Non inondare l'utente di annunci.
- L'aumento della frequenza degli annunci interstitial nella tua app può sembrare come un ottimo modo per aumentare le entrate, può anche peggiorare l'esperienza utente e percentuali di clic più basse. Assicurati che gli utenti non siano così di frequente interrotti in modo che non possano più utilizzare la tua app.
- Non utilizzare il callback di completamento del caricamento per mostrare l'interstitial.
- Ciò può causare un'esperienza utente scadente. ma precarica l'annuncio prima di
devi mostrarlo. Quindi controlla il metodo
canPresentFromRootViewController:error:
il giornoGADInterstitial
per scoprire se è pronto come mostrato nell'immagine.
Risorse aggiuntive
Esempi su GitHub
Visualizza esempi completi di annunci interstitial nella tua lingua preferita:
Tutorial video di Mobile Ads Garage
Casi di successo
Passaggi successivi
- Se non l'hai già fatto, crea la tua unità pubblicitaria interstitial nella UI di AdMob.
- Scopri di più sul targeting degli annunci e linee guida sugli annunci interstitial.
- Scopri di più sulla privacy dell'utente.