Interstitial-Anzeigen sind Vollbildanzeigen, die die Benutzeroberfläche einer App verdecken, bis die vom Nutzer geschlossen wurden. Sie werden normalerweise an natürlichen Übergangspunkten in den Ablauf einer App, zum Beispiel zwischen Aktivitäten oder während der Pause zwischen Level in einem Spiel. 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 einbinden.
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 laden, wenn Sie die spezielle Test-Anzeigenblock-ID für iOS-Interstitials verwenden:
/21775744923/example/interstitial
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:
- Laden Sie eine Anzeige.
- Registrieren Sie sich für Rückrufe.
- Blenden Sie die Anzeige ein und bearbeiten Sie das Prämienereignis.
Anzeige laden
Anzeigen werden mit der Methode load(adUnitID:request)
der Klasse GAMInterstitialAd
geladen.
Swift
import GoogleMobileAds
import UIKit
class ViewController: UIViewController {
private var interstitial: GAMInterstitialAd?
override func viewDidLoad() {
super.viewDidLoad()
Task {
do {
interstitial = try await GAMInterstitialAd.load(
withAdUnitID: "/21775744923/example/interstitial", request: GAMRequest())
} 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) GAMInterstitialAd *interstitial;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
GAMRequest *request = [GAMRequest request];
[GAMInterstitialAd loadWithAdManagerAdUnitID:@"/21775744923/example/interstitial"
request:request
completionHandler:^(GAMInterstitialAd *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: GAMInterstitialAd?
override func viewDidLoad() {
super.viewDidLoad()
Task {
do {
interstitial = try await GAMInterstitialAd.load(
withAdUnitID: "/21775744923/example/interstitial", request: GAMRequest())
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) GAMInterstitialAd *interstitial;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
GAMRequest *request = [GAMRequest request];
[GAMInterstitialAd loadWithAdManagerAdUnitID:@"/21775744923/example/interstitial"
request:request
completionHandler:^(GAMInterstitialAd *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.");
}
GAMInterstitialAd
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.
- Denken Sie daran, die Aktion zu pausieren, wenn eine Interstitial-Anzeige eingeblendet wird.
- Es gibt verschiedene Arten von Interstitial-Anzeigen, z. B. Text-, Bild- und Videoanzeigen. 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 den Callback zum Abschluss des Ladevorgangs nicht, um das Interstitial anzuzeigen.
- Das 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:
amGAMInterstitialAd
, um herauszufinden, angezeigt.
Beispiele auf GitHub
Sehen Sie sich die vollständigen Beispiele für Interstitial-Anzeigen in Ihrer bevorzugten Sprache an:
Nächste Schritte
- Weitere Informationen zur Anzeigenausrichtung und Richtlinien für Interstitial-Anzeigen.
- Weitere Informationen zum Datenschutz für Nutzer