Interstitial-Anzeigen sind Vollbildanzeigen, die die Benutzeroberfläche einer App verdecken, bis die vom Nutzer geschlossen wurden. Sie werden in der Regel an natürlichen Übergangspunkten innerhalb einer App eingeblendet, beispielsweise zwischen Aktivitäten oder in den Pausen zwischen den Levels eines Spiels. Wenn in einer App eine Interstitial-Anzeige eingeblendet wird, hat der Nutzer die Wahl. um entweder auf die Anzeige zu tippen und zur Ziel-URL zu gelangen, oder sie schließen und zurückkehren. in der App. Fallstudie.
In diesem Leitfaden erfahren Sie, wie Sie Interstitial-Anzeigen in eine iOS-App integrieren.
Vorbereitung
- 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 nur Testanzeigen, Live-Produktionsanzeigen. Andernfalls kann Ihr Konto gesperrt werden.
Am einfachsten lassen sich Testanzeigen mit unserer Testanzeigenblock-ID laden.
für iOS-Interstitials:
ca-app-pub-3940256099942544/4411468910
Sie wurde speziell so konfiguriert, dass bei jeder Anfrage Testanzeigen zurückgegeben werden. können Sie es beim Programmieren, Testen und Debuggen in Ihren eigenen Apps verwenden. Machen Sie einfach ersetzen Sie sie vor dem Veröffentlichen 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:
- Laden Sie eine Anzeige.
- Registrieren Sie sich für Rückrufe.
- Blenden Sie die Anzeige ein und bearbeiten Sie das Prämienereignis.
Anzeige laden
Das Laden einer Anzeige erfolgt mithilfe der
Methode load(adUnitID:request)
für den
GADInterstitial
.
Swift
import GoogleMobileAds
import UIKit
class ViewController: UIViewController {
private var interstitial: GADInterstitial?
override func viewDidLoad() {
super.viewDidLoad()
Task {
do {
interstitial = try await GADInterstitial.load(
withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: GADRequest())
} catch {
print("Failed to load interstitial ad with error: \(error.localizedDescription)")
}
}
}
}
SwiftUI
import GoogleMobileAds
class InterstitialViewModel: NSObject, GADFullScreenContentDelegate {
private var interstitialAd: GADInterstitialAd?
func loadAd() async {
do {
interstitialAd = try await GADInterstitialAd.load(
withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: GADRequest())
interstitialAd?.fullScreenContentDelegate = self
} catch {
print("Failed to load interstitial ad with error: \(error.localizedDescription)")
}
}
Objective-C
@import GoogleMobileAds;
@import UIKit;
@interface ViewController ()
@property(nonatomic, strong) GADInterstitial *interstitial;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
GADRequest *request = [GADRequest request];
[GADInterstitial loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
request:request
completionHandler:^(GADInterstitial *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 über Präsentationsereignisse zu erhalten, müssen Sie
das Protokoll GADFullScreenContentDelegate
und weisen Sie es dem
fullScreenContentDelegate
-Eigenschaft der zurückgegebenen Anzeige. Die
Das GADFullScreenContentDelegate
-Protokoll verarbeitet Rückrufe, wenn die Anzeige
erfolgreich oder nicht erfolgreich präsentiert und wenn sie geschlossen wird. Die folgenden
Code veranschaulicht, wie das Protokoll implementiert und der Anzeige zugewiesen wird:
Swift
import GoogleMobileAds
import UIKit
class ViewController: UIViewController, GADFullScreenContentDelegate {
private var interstitial: GADInterstitial?
override func viewDidLoad() {
super.viewDidLoad()
Task {
do {
interstitial = try await GADInterstitial.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.")
}
}
SwiftUI
Weisen Sie der zurückgegebenen Anzeige das Attribut fullScreenContentDelegate
zu:
interstitialAd?.fullScreenContentDelegate = self
Implementieren Sie das Protokoll:
func adDidRecordImpression(_ ad: GADFullScreenPresentingAd) {
print("\(#function) called")
}
func adDidRecordClick(_ ad: GADFullScreenPresentingAd) {
print("\(#function) called")
}
func ad(
_ ad: GADFullScreenPresentingAd,
didFailToPresentFullScreenContentWithError error: Error
) {
print("\(#function) called")
}
func adWillPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) {
print("\(#function) called")
}
func adWillDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
print("\(#function) called")
}
func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
print("\(#function) called")
// Clear the interstitial ad.
interstitialAd = nil
}
Objective-C
@import GoogleMobileAds;
@import UIKit;
@interface ViewController () <GADFullScreenContentDelegate>
@property(nonatomic, strong) GADInterstitial *interstitial;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
GADRequest *request = [GADRequest request];
[GADInterstitial loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
request:request
completionHandler:^(GADInterstitial *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.");
}
GADInterstitial
ist ein Objekt zur einmaligen Verwendung. Dieses
Sobald eine Interstitial-Anzeige ausgeliefert wurde, kann sie nicht mehr ausgeliefert werden. Ein bester
das Laden einer weiteren Interstitial-Anzeige
adDidDismissFullScreenContent:
-Methode für GADFullScreenContentDelegate
, sodass
wird die nächste Interstitial-Anzeige geladen, sobald die vorherige
geschlossen.
Anzeige einblenden
Interstitials sollten in natürlichen Pausen einer App eingeblendet werden. Ein gutes Beispiel ist zwischen den Leveln eines Spiels oder nachdem der Nutzer eine Aufgabe abgeschlossen hat.
Swift
guard let interstitial = interstitial else {
return print("Ad wasn't ready.")
}
// The UIViewController parameter is an optional.
interstitial.present(fromRootViewController: nil)
SwiftUI
Überwachen Sie UI-Ereignisse in der Ansicht, um zu bestimmen, wann die Anzeige geschaltet 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 aus dem Ansichtsmodell präsentieren:
func showAd() {
guard let interstitialAd = interstitialAd else {
return print("Ad wasn't ready.")
}
interstitialAd.present(fromRootViewController: nil)
}
Objective-C
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. Das Abschließen einer Aufgabe in einer App, z. B. das Teilen eines Bildes oder das Ausführen einer ein solches Level schaffen. Da der Nutzer eine Pause im können Sie eine Interstitial-Anzeige präsentieren, ohne die Nutzererfahrung. Überlegen Sie genau, an welchen Stellen im Workflow Ihrer App Sie Display-Interstitial-Anzeigen und die Wahrscheinlichkeit, dass der Nutzer darauf reagiert.
- Pausieren Sie die Aktion, wenn eine Interstitial-Anzeige eingeblendet wird.
- Es gibt verschiedene Arten von Interstitial-Anzeigen: Text-, Bild-,
Video und mehr. Wenn in Ihrer App ein
Interstitial-Anzeige aktiviert, setzt sie auch die Nutzung einiger Ressourcen aus, damit die Anzeige
und sie für sich zu nutzen. Wenn Sie beispielsweise die Anzeige eines
Interstitial-Anzeige verwenden, unterbrechen Sie die Audioausgabe in Ihrer App.
Du kannst die Tonwiedergabe fortsetzen in der
adDidDismissFullScreenContent:
Event-Handler, der aufgerufen wird, wenn der Nutzer die Interaktion beendet hat mit der Anzeige. Außerdem sollten Sie intensive Berechnungen vorübergehend anhalten. (z. B. eine Spielschleife), während die Anzeige eingeblendet wird. Dadurch wird sichergestellt, dass der Nutzer keine langsame oder nicht reagierende Grafik oder ruckelige Grafik aufweist . - Achten Sie auf eine ausreichende Ladezeit.
- Die Interstitial-Anzeigen sollten Zeit haben, ist es auch wichtig, sicherzustellen, dass die Nutzenden warten Sie, bis sie geladen sind. Laden Sie die Anzeige im Voraus, bevor sie ausgeliefert werden soll damit in Ihrer App eine vollständig geladene Interstitial-Anzeige bereitsteht, wird es Zeit, einen zu präsentieren.
- Überschwemmen Sie Nutzer nicht mit Anzeigen.
- Es mag auf den ersten Blick scheinen, die Häufigkeit von Interstitial-Anzeigen in Ihrer App zu erhöhen. eine gute Möglichkeit, den Umsatz zu steigern, kann dies auch die Nutzererfahrung beeinträchtigen. und niedrigere Klickraten. Achten Sie darauf, dass Nutzende nicht so häufig wurde unterbrochen, dass sie deine App nicht mehr nutzen 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. Laden Sie die Anzeige stattdessen im Voraus,
um sie anzuzeigen. Prüfen Sie dann die Methode
canPresentFromRootViewController:error:
amGADInterstitial
, um herauszufinden, angezeigt.
Zusätzliche Ressourcen
Beispiele auf GitHub
Sehen Sie sich die vollständigen Beispiele für Interstitial-Anzeigen in Ihrer bevorzugten Sprache an:
Videoanleitungen der Google Zukunftswerkstatt für mobile Anzeigen
Erfolgsgeschichten
Nächste Schritte
- Falls noch nicht geschehen, erstellen Sie einen Interstitial-Anzeigenblock im AdMob-Benutzeroberfläche:
- Weitere Informationen zur Anzeigenausrichtung und Richtlinien für Interstitial-Anzeigen.
- Weitere Informationen zum Datenschutz für Nutzer