Interstitial-Anzeigen

Plattform auswählen:Android iOS Unity Flutter

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 in den Pausen zwischen den Levels eines Spiels. Wenn in einer App eine Interstitial-Anzeige eingeblendet wird, kann der Nutzer entweder auf die Anzeige tippen und zur Zielseite 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

Immer Testanzeigen verwenden

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

Am einfachsten lassen sich Testanzeigen laden, wenn Sie unsere spezielle Testanzeigenblock-ID für iOS-Interstitials verwenden:
ca-app-pub-3940256099942544/4411468910

Sie ist speziell dafür konfiguriert, 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, sie vor der Veröffentlichung Ihrer App durch Ihre eigene Anzeigenblock-ID zu ersetzen.

Weitere Informationen zur Funktionsweise von Testanzeigen im Mobile Ads SDK finden Sie unter Testanzeigen.

Implementierung

Die wichtigsten Schritte zum Einbinden von Interstitial-Anzeigen sind:

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

Anzeige laden

Das Laden einer Anzeige erfolgt mit der Methode load(adUnitID:request) für die Klasse GADInterstitialAd.

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 zu Präsentationsereignissen erhalten, müssen Sie der zurückgegebenen Anzeige die Eigenschaft GADFullScreenContentDelegate to thefullScreenContentDelegate` 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 einmal ausgeliefert wurde. Es empfiehlt sich, in der Methode adDidDismissFullScreenContent: auf GADFullScreenContentDelegate eine weitere Interstitial-Anzeige zu laden, 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 präsentiert 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 geschaffen, etwa 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 dass die Nutzererfahrung beeinträchtigt wird. Ü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 ausgeliefert wird.
Es gibt verschiedene Arten von Interstitial-Anzeigen: Text-, Bild- und Videoanzeigen. Wenn in Ihrer App eine Interstitial-Anzeige ausgeliefert wird, muss die App die Verwendung bestimmter Ressourcen unterbrechen, damit die Anzeige diese nutzen kann. Wenn Sie beispielsweise einen Aufruf zum Anzeigen eines Interstitials ausführen, müssen Sie die gesamte Audioausgabe Ihrer App pausieren. Sie können die Wiedergabe von Sounds im adDidDismissFullScreenContent:-Ereignishandler fortsetzen, der aufgerufen wird, wenn der Nutzer die Interaktion mit der Anzeige beendet hat. Außerdem sollten Sie während der Anzeigendarstellung rechenintensive Aufgaben wie eine Spielschleife vorübergehend anhalten. So wird sichergestellt, dass der Nutzer keine langsamen oder nicht reagierenden Grafiken oder ruckelnde Videos sieht.
Planen Sie ausreichend Ladezeit ein.
Es ist wichtig, dass Interstitial-Anzeigen zum richtigen Zeitpunkt eingeblendet werden. Außerdem sollten Nutzer nicht warten müssen, bis sie 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 den Nutzer nicht mit Anzeigen.
Auch wenn es verlockend sein mag, die Häufigkeit von Interstitial-Anzeigen in Ihrer App zu erhöhen, um den Umsatz zu steigern, kann dies 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 mit der Methode canPresentFromRootViewController:error: auf GADInterstitialAd, 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:

Video-Tutorials in der Mobile Ads Garage

Erfolgsgeschichten

Nächste Schritte