Interstitial-Anzeigen

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Interstitial-Anzeigen sind Vollbildanzeigen, die die Benutzeroberfläche einer App abdecken, bis sie vom Nutzer geschlossen werden. Sie werden in der Regel an natürlichen Übergangspunkten innerhalb einer App eingeblendet, beispielsweise zwischen Aktivitäten oder während der Pause zwischen Leveln in einem Spiel. Wenn in einer App eine Interstitial-Anzeige eingeblendet wird, kann der Nutzer entweder auf die Anzeige tippen und zum Ziel fahren oder sie schließen und zur App zurückkehren. Fallstudie

In diesem Leitfaden erfahren Sie, wie Sie Interstitial-Anzeigen in eine iOS-App einbinden.

Voraussetzungen

  • Google Mobile Ads SDK 8.0.0 oder höher
  • Folgen Sie der Anleitung im Startleitfaden.

Immer mit Testanzeigen testen

Verwenden Sie beim Erstellen und Testen Ihrer Apps Testanzeigen statt Live-Produktionsanzeigen. Andernfalls kann Ihr Konto gesperrt werden.

Am einfachsten laden Sie die Testanzeigen über die ID des entsprechenden Testanzeigenblocks für iOS-Interstitials:
ca-app-pub-3940256099942544/4411468910

Es wurde speziell für die Rückgabe von Testanzeigen für jede Anfrage konfiguriert und kann in Ihren eigenen Apps beim Codieren, Testen und Debuggen verwendet werden. Ersetzen Sie diese vor dem Veröffentlichen Ihrer App einfach durch Ihre eigene Anzeigenblock-ID.

Weitere Informationen zur Funktionsweise der Testanzeigen des Mobile Ads SDK finden Sie unter Testanzeigen.

Implementierung

So binden Sie Interstitial-Anzeigen ein:

  1. Laden Sie eine Anzeige.
  2. Registriere dich für Callbacks.
  3. Die Anzeige einblenden und das Prämienereignis bearbeiten

Anzeige laden

Eine Anzeige wird mithilfe der statischen Methode loadWithAdUnitID:request:completionHandler: in der Klasse GADInterstitialAd geladen. Für die Lademethode sind Ihre Anzeigenblock-ID, ein GADRequest-Objekt und ein Abschluss-Handler erforderlich. Diese werden aufgerufen, wenn das Laden der Anzeige erfolgreich ist oder fehlschlägt. Das geladene GADInterstitialAd-Objekt wird als Parameter im Abschluss-Handler bereitgestellt. Das folgende Beispiel zeigt, wie ein GADInterstitialAd in eine ViewController-Klasse geladen wird.

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;
  }];
}

Für Callbacks registrieren

Wenn Sie Benachrichtigungen zu Präsentationsereignissen erhalten möchten, müssen Sie das GADFullScreenContentDelegate-Protokoll implementieren und es der Property fullScreenContentDelegate der zurückgegebenen Anzeige zuweisen. Das Protokoll GADFullScreenContentDelegate verarbeitet Callbacks, wenn die Anzeige erfolgreich oder nicht erfolgreich präsentiert oder abgelehnt wurde. Der folgende Code zeigt, wie das Protokoll implementiert und der Anzeige zugewiesen wird:

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 ist ein Objekt zur einmaligen Verwendung. Eine Interstitial-Anzeige kann also nicht mehr ausgeliefert werden. Als Best Practice wird empfohlen, eine andere Interstitial-Anzeige in der Methode adDidDismissFullScreenContent: von GADFullScreenContentDelegate zu laden, damit die nächste Interstitial-Anzeige geladen wird, sobald die vorherige Anzeige geschlossen ist.

Anzeige einblenden

Interstitials sollten während der natürlichen Pause im Ablauf einer App eingeblendet werden. Zwischen Leveln in einem Spiel ist ein gutes Beispiel oder nachdem ein Nutzer eine Aufgabe abgeschlossen hat. Hier ein Beispiel dafür, wie dies mit einer der Aktionsmethoden in einem UIViewController funktioniert:

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 Practices

Überlegen Sie, ob Interstitial-Anzeigen der richtige Anzeigentyp für Ihre App sind.
Interstitial-Anzeigen funktionieren in Apps mit natürlichen Übergangspunkten am besten. Der Abschluss einer Aufgabe in einer App, z. B. das Teilen eines Bildes oder das Abschließen eines Levels, erzeugt einen solchen Punkt. Da der Nutzer eine Unterbrechung erwartet, kann eine Interstitial-Anzeige leicht präsentiert werden, ohne dass die Nutzererfahrung beeinträchtigt wird. Überlegen Sie, an welchen Stellen im App-Workflow Interstitial-Anzeigen eingeblendet werden und wie die Wahrscheinlichkeit hoch ist, dass der Nutzer darauf reagiert.
Denken Sie daran, die Aktion bei der Auslieferung einer Interstitial-Anzeige zu pausieren.
Es gibt verschiedene Arten von Interstitial-Anzeigen: Text, Bild, Video und mehr. Wenn eine App eine Interstitial-Anzeige präsentiert, wird außerdem die Verwendung einiger Ressourcen ausgesetzt, damit sie in der Anzeige genutzt werden kann. Wenn Sie beispielsweise den Aufruf zur Auslieferung einer Interstitial-Anzeige starten, müssen Sie jede Audioausgabe in Ihrer App pausieren. Sie können die Wiedergabe von Ton im adDidDismissFullScreenContent:-Ereignis-Handler fortsetzen. Dieser wird aufgerufen, wenn der Nutzer mit der Anzeige fertig ist. Außerdem sollten Sie in der Lage sein, intensive Rechenaufgaben (z. B. eine Spielschleife) vorübergehend zu stoppen, während die Anzeige ausgeliefert wird. Dadurch wird sichergestellt, dass der Nutzer keine langsamen oder nicht reagierenden Grafiken oder keine ruckeligen Videos sieht.
Achten Sie auf eine angemessene Ladezeit.
Es ist nicht nur wichtig, Interstitial-Anzeigen zum richtigen Zeitpunkt auszuliefern, sondern auch, bis der Nutzer sie laden kann. Wenn Sie die Anzeige vorab laden, bevor Sie sie präsentieren möchten, kann es sein, dass Ihre App eine vollständig geladene Interstitial-Anzeige hat, wenn eine solche Anzeige ausgeliefert werden kann.
Überschwemmen Sie den Nutzer nicht mit Anzeigen.
Die Häufigkeit von Interstitial-Anzeigen in Ihrer App zu steigern, mag zwar eine hervorragende Möglichkeit sein, Ihren Umsatz zu steigern, kann aber auch die Nutzererfahrung beeinträchtigen und die Klickrate senken. Achten Sie darauf, dass Nutzer so oft unterbrochen werden, dass sie die App nicht mehr verwenden können.
Verwenden Sie keinen Callback, um die Interstitial-Anzeige auszuliefern.
Dies kann die Nutzererfahrung beeinträchtigen. Laden Sie die Anzeige stattdessen vorab, damit sie ausgeliefert werden kann. Prüfen Sie dann die Methode canPresentFromRootViewController:error: in GADInterstitialAd, um festzustellen, ob sie angezeigt werden kann.

Weitere Informationen

Beispiele auf GitHub

Videoanleitungen zur Garage für mobile Anzeigen

Erfolgsgeschichten

Weitere Informationen