Interstitial-Anzeigen

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

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

Vorbereitung

Bevor Sie fortfahren, richten Sie Google Mobile Ads SDK ein.

Immer Testanzeigen verwenden

Verwenden Sie beim Entwickeln und Testen Ihrer Apps Testanzeigen anstelle von Live-Anzeigen. Andernfalls kann es zu einer Kontosperrung kommen.

Testanzeigen lassen sich unter iOS am einfachsten mit unserer speziellen Test-Anzeigenblock-ID für Interstitials laden:
ca-app-pub-3940256099942544/4411468910

Sie wurde speziell konfiguriert, um für jede Anfrage Testanzeigen zurückzugeben. Sie können sie also beim Programmieren, Testen und Debuggen in Ihren eigenen Apps verwenden. Denken Sie daran, die ID vor der Veröffentlichung Ihrer App durch Ihre eigene Anzeigenblock-ID zu ersetzen.

Weitere Informationen zu Google Mobile Ads SDK-Testanzeigen finden Sie unter Testanzeigen aktivieren.

Implementierung

Die wichtigsten Schritte zum Einbinden von Interstitial-Anzeigen sind:

  1. Laden Sie eine Anzeige.
  2. Callbacks registrieren
  3. Anzeige ausliefern

Anzeige laden

Eine Anzeige wird mit der Methode load(adUnitID:request) in der Klasse GADInterstitialAd geladen.

Swift

fileprivate func loadInterstitial() async {
  do {
    interstitial = try await InterstitialAd.load(
      with: "ca-app-pub-3940256099942544/4411468910", request: Request())
    interstitial?.fullScreenContentDelegate = self
  } catch {
    print("Failed to load interstitial ad with error: \(error.localizedDescription)")
  }
}

SwiftUI

import GoogleMobileAds

class InterstitialViewModel: NSObject, FullScreenContentDelegate {
  private var interstitialAd: InterstitialAd?

  func loadAd() async {
    do {
      interstitialAd = try await InterstitialAd.load(
        with: "ca-app-pub-3940256099942544/4411468910", request: Request())
      interstitialAd?.fullScreenContentDelegate = self
    } catch {
      print("Failed to load interstitial ad with error: \(error.localizedDescription)")
    }
  }

Objective-C

[GADInterstitialAd
     loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
              request:[GADRequest 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;
    }];

Callbacks registrieren

Damit Sie Benachrichtigungen für Präsentationsereignisse erhalten, müssen Sie der fullScreenContentDelegate-Eigenschaft der zurückgegebenen Anzeige die GADFullScreenContentDelegate zuweisen:

Swift

interstitial?.fullScreenContentDelegate = self

SwiftUI

interstitialAd?.fullScreenContentDelegate = self

Objective-C

self.interstitial.fullScreenContentDelegate = self;

Das GADFullScreenContentDelegate-Protokoll verarbeitet Callbacks für den Fall, dass die Anzeige erfolgreich oder nicht erfolgreich präsentiert wird und wenn sie geschlossen wird. Der folgende Code zeigt, wie das Protokoll implementiert wird:

Swift

func adDidRecordImpression(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func adDidRecordClick(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func ad(_ ad: FullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
  print("\(#function) called with error: \(error.localizedDescription)")
  // Clear the interstitial ad.
  interstitial = nil
}

func adWillPresentFullScreenContent(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func adWillDismissFullScreenContent(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func adDidDismissFullScreenContent(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
  // Clear the interstitial ad.
  interstitial = nil
}

SwiftUI

func adDidRecordImpression(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func adDidRecordClick(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func ad(
  _ ad: FullScreenPresentingAd,
  didFailToPresentFullScreenContentWithError error: Error
) {
  print("\(#function) called")
}

func adWillPresentFullScreenContent(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func adWillDismissFullScreenContent(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func adDidDismissFullScreenContent(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
  // Clear the interstitial ad.
  interstitialAd = nil
}

Objective-C

- (void)adDidRecordImpression:(id<GADFullScreenPresentingAd>)ad {
  NSLog(@"%s called", __PRETTY_FUNCTION__);
}

- (void)adDidRecordClick:(id<GADFullScreenPresentingAd>)ad {
  NSLog(@"%s called", __PRETTY_FUNCTION__);
}

- (void)ad:(id<GADFullScreenPresentingAd>)ad
    didFailToPresentFullScreenContentWithError:(NSError *)error {
  NSLog(@"%s called with error: %@", __PRETTY_FUNCTION__, error.localizedDescription);
  // Clear the interstitial ad.
  self.interstitial = nil;
}

- (void)adWillPresentFullScreenContent:(id<GADFullScreenPresentingAd>)ad {
  NSLog(@"%s called", __PRETTY_FUNCTION__);
}

- (void)adWillDismissFullScreenContent:(id<GADFullScreenPresentingAd>)ad {
  NSLog(@"%s called", __PRETTY_FUNCTION__);
}

- (void)adDidDismissFullScreenContent:(id<GADFullScreenPresentingAd>)ad {
  NSLog(@"%s called", __PRETTY_FUNCTION__);
  // Clear the interstitial ad.
  self.interstitial = nil;
}

GADInterstitialAd ist ein Einmalobjekt. Das bedeutet, dass eine Interstitial-Anzeige nicht noch einmal ausgeliefert werden kann, nachdem sie bereits ausgeliefert wurde. Am besten laden Sie eine weitere Interstitial-Anzeige in der Methode adDidDismissFullScreenContent: für GADFullScreenContentDelegate, damit die nächste Interstitial-Anzeige geladen wird, sobald die vorherige geschlossen wird.

Anzeige einblenden

Interstitial-Anzeigen sollten während natürlicher Pausen im Ablauf einer App eingeblendet werden, z. B. zwischen den Levels eines Spiels, oder nachdem der Nutzer eine Aufgabe abgeschlossen hat.

Swift

ad.present(from: self!)

SwiftUI

Warten Sie auf UI-Ereignisse in der Ansicht, um zu bestimmen, wann die Anzeige eingeblendet werden soll.

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()
        }))

Interstitial-Anzeige über das View-Modell präsentieren:

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

  interstitialAd.present(from: nil)
}

Objective-C

[self.interstitial presentFromRootViewController:self];

Best Practices

Überlegen Sie, ob Interstitial-Anzeigen die richtige Art von Anzeigen für Ihre App sind.
Interstitial-Anzeigen funktionieren am besten in Apps mit natürlichen Übergangspunkten. Ein solcher Punkt wird beispielsweise durch den Abschluss einer Aufgabe in einer App erstellt, z. B. durch das Teilen eines Bildes oder das Abschließen eines Levels in einem Spiel. Da der Nutzer eine Unterbrechung der Aktion erwartet, kann eine Interstitial-Anzeige problemlos präsentiert werden, ohne das Nutzererlebnis zu beeinträchtigen. Überlegen Sie, an welchen Stellen im Workflow Ihrer App Sie Interstitial-Anzeigen einblenden und wie der Nutzer wahrscheinlich reagieren wird.
Denken Sie daran, die Aktion zu pausieren, wenn eine Interstitial-Anzeige eingeblendet wird.
Es gibt verschiedene Arten von Interstitials, darunter Text-, Bild- und Videoanzeigen. Wenn in Ihrer App eine Interstitial-Anzeige ausgeliefert wird, muss die App die Nutzung bestimmter Ressourcen unterbrechen, damit die Anzeige diese Ressourcen nutzen kann. Wenn Sie beispielsweise einen Aufruf zum Anzeigen einer Interstitial-Anzeige ausführen, müssen Sie die gesamte Audioausgabe Ihrer App pausieren. Sie können die Wiedergabe von Sounds im adDidDismissFullScreenContent:-Event-Handler fortsetzen, der aufgerufen wird, wenn der Nutzer die Interaktion mit der Anzeige beendet hat. Außerdem sollten Sie während der Anzeigendarstellung alle rechenintensiven Aufgaben (z. B. eine Spielschleife) vorübergehend anhalten. So wird sichergestellt, dass der Nutzer keine langsamen oder nicht reagierenden Grafiken oder ruckelnde Videos sieht.
Planen Sie genügend Ladezeit ein.
Es ist wichtig, dass Sie Interstitial-Anzeigen zu einem geeigneten Zeitpunkt präsentieren. Außerdem sollten Sie darauf achten, dass Nutzer nicht warten müssen, bis die Anzeigen geladen sind. Wenn Sie die Anzeige im Voraus laden, bevor Sie sie einblenden möchten, ist sichergestellt, dass Ihre App eine vollständig geladene Interstitial-Anzeige bereithält, wenn es an der Zeit ist, eine einzublenden.
Überhäufen Sie die Nutzer nicht mit Anzeigen.
Die Häufigkeit von Interstitial-Anzeigen in Ihrer App zu erhöhen, mag zwar eine gute Möglichkeit sein, den Umsatz zu steigern, kann aber auch die Nutzerfreundlichkeit beeinträchtigen und die Klickraten senken. Achten Sie darauf, dass Nutzer nicht so häufig unterbrochen werden, dass sie Ihre App nicht mehr nutzen können.
Verwenden Sie den Callback für den Abschluss des Ladevorgangs nicht, um das Interstitial zu präsentieren.
Dies kann zu einer schlechten Nutzererfahrung führen. Laden Sie die Anzeige stattdessen vorab, bevor Sie sie präsentieren müssen. Prüfen Sie dann die canPresentFromRootViewController:error:-Methode auf GADInterstitialAd, um festzustellen, ob sie angezeigt werden kann.

Zusätzliche Ressourcen

Beispiele auf GitHub

Hier finden Sie vollständige Beispiele für Interstitial-Anzeigen in Ihrer bevorzugten Sprache:

Videoanleitungen in der Mobile Ads Garage

Erfolgsgeschichten

Nächste Schritte