Interstitial-Anzeigen

Interstitial-Anzeigen sind Vollbildanzeigen, die die Benutzeroberfläche einer App verdecken, bis sie vom Nutzer geschlossen werden. Sie werden normalerweise an natürlichen Übergangspunkten im Ablauf einer App eingeblendet, z. B. 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 weiter zum Ziel gelangen oder sie schließen und zur App zurückkehren. Fallstudie

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

Voraussetzungen

  • Google Mobile Ads SDK 8.0.0 oder höher.
  • Arbeiten Sie den Startleitfaden durch.

Immer mit Testanzeigen testen

Verwenden Sie beim Entwickeln und Testen Ihrer Apps Testanzeigen und keine Produktionsanzeigen. Andernfalls kann Ihr Konto gesperrt werden.

Am einfachsten lassen sich Testanzeigen mit unserer Testanzeigenblock-ID für iOS-Interstitials laden:
ca-app-pub-3940256099942544/4411468910

Sie wurde speziell so konfiguriert, dass bei jeder Anfrage Testanzeigen zurückgegeben werden. Sie können die Funktion beim Programmieren, Testen und Debuggen in Ihren eigenen Apps verwenden. Ersetzen Sie sie einfach vor der Veröffentlichung Ihrer App durch Ihre Anzeigenblock-ID.

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

Implementierung

Die wichtigsten Schritte zur Integration von Interstitial-Anzeigen sind:

  1. Laden Sie eine Anzeige.
  2. Registrieren Sie sich für Rückrufe.
  3. Blenden Sie die Anzeige ein und bearbeiten Sie das Prämienereignis.

Anzeige laden

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

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

Für Rückrufe registrieren

Wenn Sie Benachrichtigungen zu Präsentationsereignissen erhalten möchten, müssen Sie das Protokoll GADFullScreenContentDelegate implementieren und dem Attribut fullScreenContentDelegate der zurückgegebenen Anzeige zuweisen. Das Protokoll GADFullScreenContentDelegate verarbeitet Callbacks, wenn die Anzeige erfolgreich oder nicht ausgeliefert werden kann und geschlossen wird. Der folgende Code zeigt, wie das Protokoll implementiert und der Anzeige zugewiesen wird:

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 ist ein Objekt zur einmaligen Verwendung. Das bedeutet, dass eine Interstitial-Anzeige nicht mehr ausgeliefert werden kann, sobald sie eingeblendet wurde. Es empfiehlt sich, eine andere Interstitial-Anzeige in der Methode adDidDismissFullScreenContent: auf GADFullScreenContentDelegate zu laden, damit die nächste Interstitial-Anzeige sofort nach dem Schließen der vorherigen Anzeige geladen wird.

Anzeige einblenden

Interstitials sollten bei natürlichen Pausen im Nutzerfluss eingeblendet werden. Zwischen Levels eines Spiels sind gute Beispiele dafür oder nachdem der Nutzer eine Aufgabe abgeschlossen hat. Hier ein Beispiel für eine der Aktionsmethoden in einem UIViewController:

Swift

@IBAction func doSomething(_ sender: Any) {
  guard let interstitial = interstitial else {
    return print("Ad wasn't ready.")
  }

  // The UIViewController parameter is an optional.
  interstitial.present(fromRootViewController: nil)
}

Objective-C

- (IBAction)doSomething:(id)sender {
  if (self.interstitial) {
    // The UIViewController parameter is nullable.
    [self.interstitial presentFromRootViewController:nil];
  } else {
    NSLog(@"Ad wasn't ready");
  }
}

Best Practices

Überlegen Sie, ob Interstitial-Anzeigen der richtige Anzeigentyp für Ihre App sind.
Interstitial-Anzeigen funktionieren am besten in Apps mit natürlichen Übergangspunkten. Der Abschluss einer Aufgabe innerhalb einer App, z. B. das Teilen eines Bildes oder das Abschließen eines Levels in einem Spiel, schafft einen solchen Punkt. Da der Nutzer eine Unterbrechung der Aktion erwartet, kann eine Interstitial-Anzeige präsentiert werden, ohne die Nutzererfahrung zu beeinträchtigen. Überlege dir gut, an welchen Stellen im Workflow deiner App Interstitial-Anzeigen ausgeliefert werden sollen und wie die Nutzer wahrscheinlich darauf reagieren werden.
Pausieren Sie die Aktion, 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 auch die Nutzung einiger Ressourcen unterbrochen werden, damit diese von der Anzeige genutzt werden können. Wenn Sie beispielsweise eine Interstitial-Anzeige aufrufen, müssen Sie die Audioausgabe Ihrer App anhalten. Sie können die Wiedergabe von Sounds im Event-Handler adDidDismissFullScreenContent: fortsetzen. Dieser wird aufgerufen, wenn der Nutzer die Interaktion mit der Anzeige beendet hat. Außerdem sollten Sie intensive Rechenaufgaben (z. B. eine Spielschleife) vorübergehend anhalten, während die Anzeige zu sehen ist. So wird verhindert, dass der Nutzer eine langsame oder nicht reagierende Grafik oder ein ruckeliges Video sieht.
Achten Sie auf eine ausreichende Ladezeit.
Die Interstitial-Anzeigen sollten zum richtigen Zeitpunkt ausgeliefert werden. Außerdem muss der Nutzer nicht darauf warten, dass die Anzeigen geladen werden. Wenn Sie die Anzeige im Voraus laden, bevor sie ausgeliefert werden soll, sorgen Sie dafür, dass in Ihrer App eine vollständig geladene Interstitial-Anzeige verfügbar ist.
Überschwemmen Sie Nutzer nicht mit Anzeigen.
Die Häufigkeit von Interstitial-Anzeigen in Ihrer App scheint eine gute Möglichkeit zu sein, den Umsatz zu steigern. Sie kann aber auch die Nutzerfreundlichkeit beeinträchtigen und die Klickraten senken. Achte darauf, dass Nutzer nicht so häufig unterbrochen werden, dass sie die Nutzung deiner App nicht mehr genießen können.
Verwenden Sie nicht den Callback für den Abschluss des Ladevorgangs, um die Interstitial-Anzeige auszuliefern.
Dies kann zu einer schlechten Nutzererfahrung führen. Stattdessen sollten Sie die Anzeige im Voraus laden, bevor Sie sie schalten müssen. Prüfen Sie dann die Methode canPresentFromRootViewController:error: für GADInterstitialAd, um herauszufinden, ob sie angezeigt werden kann.

Weitere Ressourcen

Beispiele auf GitHub

Videoanleitungen der Google Zukunftswerkstatt

Erfolgsgeschichten

Nächste Schritte