Interstitial-Anzeigen

Interstitial-Anzeigen sind Vollbildanzeigen, die die Benutzeroberfläche einer App verdecken, bis sie vom Nutzer geschlossen werden. Sie werden in der Regel an natürlichen Übergangspunkten innerhalb einer App angezeigt, 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 zum Ziel weitergeleitet werden oder sie schließen und zur App zurückkehren. Fallstudie

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

Vorbereitung

  • 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 statt Live-Produktionsanzeigen. Sollten Sie dies nicht tun, kann Ihr Konto gesperrt werden.

Die einfachste Methode zum Laden von Testanzeigen ist die Verwendung unserer speziellen Testanzeigen-ID für iOS-Interstitials:
ca-app-pub-3940256099942544/4411468910

Sie wurde speziell für die Rückgabe von Testanzeigen für jede Anfrage konfiguriert und kann beim Programmieren, Testen und Debuggen in eigenen Apps verwendet werden. Wichtig ist, dass Sie sie vor der Veröffentlichung Ihrer App durch Ihre eigene Anzeigenblock-ID ersetzen.

Weitere Informationen zur Funktionsweise der Testanzeigen des Mobile Ads SDKs finden Sie unter Testanzeigen.

Implementierung

Die wichtigsten Schritte zum Integrieren von Interstitial-Anzeigen sind:

  1. Laden Sie eine Anzeige.
  2. Registriere dich für Callbacks.
  3. Die Anzeige schalten und das Prämienereignis bearbeiten.

Anzeige laden

Eine Anzeige wird mit der statischen Methode loadWithAdUnitID:request:completionHandler: in der Klasse GADInterstitialAd geladen. Für die Lademethode sind Ihre Anzeigenblock-ID, ein GADRequest-Objekt und ein Abschluss-Handler erforderlich, der aufgerufen wird, wenn die Anzeige erfolgreich ist oder fehlschlägt. Das geladene GADInterstitialAd-Objekt wird als Parameter im Abschluss-Handler angegeben. Das folgende Beispiel zeigt, wie ein GADInterstitialAd in die Klasse ViewController 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 Callbacks registrieren

Um Benachrichtigungen für Präsentationsereignisse zu erhalten, müssen Sie das GADFullScreenContentDelegate-Protokoll implementieren und es der Eigenschaft fullScreenContentDelegate der zurückgegebenen Anzeige zuweisen. Das Protokoll GADFullScreenContentDelegate verarbeitet Callbacks für die erfolgreiche oder fehlgeschlagene Darstellung und Ablehnung der Anzeige. 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 Interstitial-Anzeige kann also nicht mehr ausgeliefert werden. Eine Best Practice besteht darin, eine weitere Interstitial-Anzeige in die Methode adDidDismissFullScreenContent: der GADFullScreenContentDelegate zu laden, damit die nächste Interstitial-Anzeige geladen wird, sobald die vorherige beendet wird.

Anzeige einblenden

Interstitials sollten während einer natürlichen Pause im Ablauf einer App eingeblendet werden. Zwischen Levels in einem Spiel ist ein gutes Beispiel oder nachdem der Nutzer eine Aufgabe erledigt hat. Hier ein Beispiel dafür, wie dies mit 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. Wenn eine Aufgabe innerhalb einer App abgeschlossen wird, z. B. wenn ein Bild geteilt oder ein Level erreicht wird, entsteht ein solcher Punkt. Da der Nutzer eine Unterbrechung der Aktion erwartet, kann eine Interstitial-Anzeige leicht präsentiert werden, ohne dass die Nutzererfahrung beeinträchtigt wird. Überlegen Sie sich, an welchen Stellen im Workflow Ihrer App Interstitial-Anzeigen ausgeliefert werden und wie die Nutzer wahrscheinlich reagieren werden.
Denken Sie daran, die Aktion bei der Auslieferung einer Interstitial-Anzeige zu pausieren.
Es gibt verschiedene Arten von Interstitial-Anzeigen: Textanzeigen, Bildanzeigen, Videoanzeigen und mehr. Wenn in Ihrer App eine Interstitial-Anzeige eingeblendet wird, muss auch die Nutzung einiger Ressourcen ausgesetzt werden, damit sie von der Anzeige genutzt werden kann. Wenn Sie beispielsweise den Aufruf zur Auslieferung einer Interstitial-Anzeige starten, muss die Audioausgabe Ihrer App pausiert werden. Sie können die Tonwiedergabe im Event-Handler adDidDismissFullScreenContent: fortsetzen. Er wird aufgerufen, wenn der Nutzer mit der Anzeige interagiert hat. Außerdem können Sie intensive Rechenaufgaben (z. B. eine Spielschleife) anhalten, während die Anzeige eingeblendet wird. Dadurch wird verhindert, dass der Nutzer langsame oder nicht reagierende Grafiken oder ruckelige Videos wahrnimmt.
Ausreichende Ladezeit
Achten Sie darauf, dass Interstitial-Anzeigen zum richtigen Zeitpunkt ausgeliefert werden. Außerdem muss der Nutzer nicht darauf warten, dass er geladen wird. Wenn Sie die Anzeige im Voraus laden, bevor sie ausgeliefert werden soll, können Sie dafür sorgen, dass in Ihrer App eine vollständig geladene Interstitial-Anzeige vorhanden ist, wenn diese ausgeliefert werden sollte.
Überfluten Sie den Nutzer nicht mit Anzeigen.
Die Steigerung der Häufigkeit von Interstitial-Anzeigen in der App mag zwar eine hervorragende Möglichkeit zur Steigerung des Umsatzes sein, kann jedoch die Nutzerfreundlichkeit und die Klickrate verbessern. Achten Sie darauf, dass Nutzer nicht so häufig unterbrochen werden, dass sie die Nutzung Ihrer App nicht mehr genießen können.
Verwenden Sie nicht den Callback zum Abschluss des Ladevorgangs, um die Interstitial-Anzeige einzublenden.
Dies kann die Nutzererfahrung beeinträchtigen. Stattdessen sollten Sie die Anzeige vorab laden. Prüfen Sie dann die Methode canPresentFromRootViewController:error: von GADInterstitialAd, um festzustellen, ob sie angezeigt werden kann.

Weitere Ressourcen

Beispiele auf GitHub

Video-Tutorials zu Google Mobile Ads Workshop

Erfolgsgeschichten

Nächste Schritte