Annunci interstitial

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

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 annunci 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:

  1. Carica un annuncio.
  2. Registrati per le richiamate.
  3. Mostrare l'annuncio e gestire l'evento premio.

Carica un annuncio

Il caricamento di un annuncio viene eseguito utilizzando loadWithAdUnitID:request:completionHandler: nella GADInterstitialAd corso. Il metodo di caricamento richiede l'ID unità pubblicitaria, un oggetto GADRequest e un che viene chiamato quando il caricamento dell'annuncio ha esito positivo o negativo. La l'oggetto GADInterstitialAd caricato viene fornito come nel gestore del completamento. L'esempio seguente mostra come caricare GADInterstitialAd nel tuo corso ViewController.

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController {

  private var interstitial: GADInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()

    do {
      interstitial = try await GADInterstitialAd.load(
        withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: GADRequest())
    } catch {
      print("Failed to load interstitial ad with error: \(error.localizedDescription)")
    }
  }
}

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 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: GADInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()

    do {
      interstitial = try await GADInterstitialAd.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.")
  }
}

Objective-C

@import GoogleMobileAds;
@import UIKit;

@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. Questo indica che un annuncio interstitial dopo averlo 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.

Visualizza 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à. Di seguito è riportato un esempio di come eseguire questa operazione in uno dei metodi di azione in un UIViewController:

Swift

guard let interstitial = interstitial else {
  return print("Ad wasn't ready.")
}

// The UIViewController parameter is an optional.
interstitial.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 interromperne 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 attendere 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 giorno GADInterstitialAd per scoprire se è pronto come mostrato nell'immagine.

Risorse aggiuntive

Esempi su GitHub

Tutorial video di Mobile Ads Garage

Casi di successo

Passaggi successivi