Interstitial-Anzeigen

Interstitial-Anzeigen sind Vollbildanzeigen, die die Benutzeroberfläche einer App überlagern, bis sie vom Nutzer geschlossen werden. Sie werden normalerweise an natürlichen Übergangspunkten im App-Ablauf angezeigt, 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 wechseln 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.
  • Arbeiten Sie den Startleitfaden durch.

Immer mit Testanzeigen testen

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

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

Er wurde speziell so konfiguriert, dass bei jeder Anfrage Testanzeigen zurückgegeben werden. Sie können ihn beim Programmieren, Testen und Debuggen kostenlos in Ihren eigenen Apps verwenden. Ersetzen Sie sie einfach durch Ihre eigene Anzeigenblock-ID, bevor Sie Ihre App veröffentlichen.

Weitere Informationen zur Funktionsweise der 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. Zeigen Sie die Anzeige an und verarbeiten Sie das Prämienereignis.

Anzeige laden

Eine Anzeige wird mit der statischen Methode loadWithAdUnitID:request:completionHandler: in der Klasse GADInterstitialAd geladen. Die Lademethode erfordert die Anzeigenblock-ID, ein GADRequest-Objekt und einen Vervollständigungs-Handler, 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()
    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 Rückrufe registrieren

Um Benachrichtigungen zu Präsentationsereignissen zu erhalten, müssen Sie das GADFullScreenContentDelegate-Protokoll implementieren und der fullScreenContentDelegate-Eigenschaft der zurückgegebenen Anzeige zuweisen. Das GADFullScreenContentDelegate-Protokoll verarbeitet Callbacks, wenn die Anzeige erfolgreich oder nicht erfolgreich ausgeliefert und geschlossen wird. 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 einmal ausgelieferte Interstitial-Anzeige kann also nicht mehr ausgeliefert werden. Als Best Practice wird empfohlen, eine weitere Interstitial-Anzeige in der Methode adDidDismissFullScreenContent: auf GADFullScreenContentDelegate zu laden. Dann wird die nächste Interstitial-Anzeige geladen, sobald die vorherige geschlossen wird.

Anzeige einblenden

Interstitials sollten während natürlicher Pausen im App-Ablauf eingeblendet werden. Ein gutes Beispiel sind die zwischen den Leveln eines Spiels oder nachdem der Nutzer eine Aufgabe abgeschlossen hat. Hier ein Beispiel für die Vorgehensweise in einer der Aktionsmethoden in einem UIViewController:

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 Typ für Ihre App sind.
Interstitial-Anzeigen funktionieren am besten in Apps mit natürlichen Übergangspunkten. Der Abschluss einer Aufgabe in einer App, z. B. das Teilen eines Bildes oder der Abschluss 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. Sie sollten sich überlegen, an welchen Punkten im Workflow Ihrer App Interstitial-Anzeigen ausgeliefert werden und wie der Nutzer wahrscheinlich darauf reagieren wird.
Denken Sie daran, die Aktion beim Ausliefern einer Interstitial-Anzeige zu pausieren.
Es gibt verschiedene Arten von Interstitial-Anzeigen: Text-, Bild- und Videoanzeigen. Wenn in Ihrer App Interstitial-Anzeigen eingeblendet werden, dürfen auch einige Ressourcen nicht mehr genutzt werden, damit diese von der Anzeige genutzt werden können. Wenn Sie beispielsweise die Auslieferung einer Interstitial-Anzeige starten, müssen Sie die Audioausgabe in Ihrer App anhalten. Sie können die Wiedergabe der Töne im Event-Handler adDidDismissFullScreenContent: fortsetzen, der aufgerufen wird, 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 sichergestellt, dass keine langsamen oder nicht reagierenden Grafiken oder ein stockendes Video für den Nutzer zu sehen ist.
Warten Sie ausreichend lange.
Interstitial-Anzeigen sollten zum richtigen Zeitpunkt eingeblendet werden und Nutzer müssen nicht warten, bis sie geladen sind. Wenn die Anzeige vor der Auslieferung geladen wird, kann dafür gesorgt werden, dass in Ihrer App zum Zeitpunkt der Auslieferung eine vollständig geladene Interstitial-Anzeige verfügbar ist.
Überfluten Sie den Nutzer nicht mit Werbung.
Das Erhöhen der Häufigkeit von Interstitial-Anzeigen in Ihrer App scheint eine gute Möglichkeit zur Umsatzsteigerung zu sein. Es kann aber auch die Nutzererfahrung beeinträchtigen und die Klickrate senken. Achte darauf, dass Nutzer nicht so häufig unterbrochen werden, dass sie die Nutzung deiner App nicht mehr nutzen können.
Verwenden Sie nicht den Callback für den Ladeabschluss, um die Interstitial-Anzeige auszuliefern.
Dies kann die Nutzerfreundlichkeit beeinträchtigen. Laden Sie die Anzeige stattdessen vorab, bevor sie ausgeliefert werden muss. 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