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 in der Pause zwischen den Levels in einem Spiel. Wenn in einer App eine Interstitial-Anzeige eingeblendet wird, kann der Nutzer entweder auf die Anzeige tippen und 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 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 anstelle von Produktionsanzeigen. Andernfalls kann dein Konto gesperrt werden.

Am einfachsten lassen sich Testanzeigen laden, wenn Sie unsere spezielle Test-Anzeigenblock-ID für iOS-Interstitials verwenden:
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 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. Die Anzeige präsentieren und das Prämienereignis verarbeiten.

Anzeige laden

Eine Anzeige wird mit der statischen Methode loadWithAdUnitID:request:completionHandler: in der Klasse GADInterstitialAd geladen. Die Lademethode erfordert Ihre Anzeigenblock-ID, ein GADRequest-Objekt und einen Vervollständigungs-Handler, der aufgerufen wird, wenn das Laden der Anzeigen erfolgreich ist oder fehlschlägt. Das geladene GADInterstitialAd-Objekt wird im Abschluss-Handler als Parameter bereitgestellt. Das folgende Beispiel zeigt, wie ein GADInterstitialAd in Ihre 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 für Präsentationsereignisse zu erhalten, müssen Sie das GADFullScreenContentDelegate-Protokoll implementieren und der Eigenschaft fullScreenContentDelegate der zurückgegebenen Anzeige zuweisen. Das GADFullScreenContentDelegate-Protokoll verarbeitet Callbacks, wenn die Anzeige erfolgreich oder nicht erfolgreich präsentiert oder 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. Das bedeutet, dass eine Interstitial-Anzeige nicht noch einmal ausgeliefert werden kann. Am besten laden Sie eine weitere Interstitial-Anzeige in der Methode adDidDismissFullScreenContent: auf GADFullScreenContentDelegate. Die nächste Interstitial-Anzeige wird geladen, sobald die vorherige geschlossen wird.

Anzeige einblenden

Interstitials sollten in natürlichen Pausen im App-Ablauf eingeblendet werden. Ein gutes Beispiel dafür sind zwischen den Levels eines Spiels oder nachdem der Nutzer eine Aufgabe abgeschlossen hat. Hier ein Beispiel dafür, wie dies in 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 am besten in Apps mit natürlichen Übergangspunkten. Der Abschluss einer Aufgabe in 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. Überlegen Sie, an welchen Stellen im Workflow Ihrer App Interstitial-Anzeigen ausgeliefert werden und wie der Nutzer wahrscheinlich darauf reagieren wird.
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, müssen auch einige Ressourcen nicht mehr genutzt werden, damit die Anzeige davon profitieren kann. Wenn Sie beispielsweise eine Interstitial-Anzeige aufrufen, pausieren Sie die gesamte Audioausgabe Ihrer App. Sie können die Wiedergabe von Tönen im Event-Handler adDidDismissFullScreenContent: fortsetzen, der aufgerufen wird, wenn der Nutzer die Interaktion mit der Anzeige beendet hat. Außerdem können Sie intensive Rechenaufgaben (z. B. eine Spielschleife) vorübergehend anhalten, während die Anzeige ausgeliefert wird. Dadurch wird sichergestellt, dass der Nutzer keine langsamen oder nicht reagierenden Grafiken oder ein stotterndes Video sieht.
Warten Sie ausreichend lange.
Interstitial-Anzeigen müssen zum richtigen Zeitpunkt ausgeliefert werden. Nutzer dürfen nicht warten, bis sie geladen sind. Wenn Sie die Anzeige vorab laden, bevor sie ausgeliefert werden soll, können Sie dafür sorgen, dass in Ihrer App zum Zeitpunkt der Auslieferung eine vollständig geladene Interstitial-Anzeige verfügbar ist.
Überschwemmen Sie den Nutzer nicht mit Anzeigen.
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. Nutzer sollten nicht so häufig unterbrochen werden, dass sie die Nutzung der App nicht mehr nutzen können.
Verwenden Sie nicht den Callback für den Ladeabschluss, um die Interstitial-Anzeige auszuliefern.
Das kann zu einer negativen Nutzererfahrung führen. Laden Sie die Anzeige stattdessen vorab, bevor sie ausgeliefert werden muss. Prüfen Sie dann die Methode canPresentFromRootViewController:error: von GADInterstitialAd, um herauszufinden, ob sie angezeigt werden kann.

Weitere Ressourcen

Beispiele auf GitHub

Videoanleitungen der Google Zukunftswerkstatt

Erfolgsgeschichten

Nächste Schritte