Interstitial-Anzeigen mit Prämie sind ein Anzeigenformat, bei dem Anreize für die Auslieferung von Anzeigen geboten werden, die an natürlichen Übergangspunkten in der App automatisch eingeblendet werden. Anders als bei Anzeigen mit Prämie müssen Nutzer der Auslieferung von Interstitials mit Prämie nicht zustimmen.
Voraussetzungen
- Google Mobile Ads SDK 7.60.0 oder höher
- Arbeiten Sie den Startleitfaden durch.
Implementierung
Im Folgenden sind die wichtigsten Schritte zum Einbinden von Interstitial-Anzeigen mit Prämie aufgeführt:
- Anzeige laden
- [Optional] SSV-Callbacks validieren
- Für Rückrufe registrieren
- Anzeige einblenden und Prämienereignis bearbeiten
Anzeige laden
Das Laden einer Anzeige erfolgt mit der statischen Methode loadWithAdUnitID:request:completionHandler:
in der Klasse GADRewardedInterstitialAd
. Für die Lademethode sind Ihre Anzeigenblock-ID, ein GADRequest
-Objekt und ein Abschluss-Handler erforderlich, der aufgerufen wird, wenn das Laden der Anzeige erfolgreich ist oder fehlschlägt. Das geladene GADRewardedInterstitialAd
-Objekt wird als Parameter im Abschluss-Handler bereitgestellt. Das folgende Beispiel zeigt, wie Sie eine GADRewardedInterstitialAd
in Ihrer ViewController
-Klasse laden.
Swift
import GoogleMobileAds
import UIKit
class ViewController: UIViewController {
private var rewardedInterstitialAd: GADRewardedInterstitialAd?
override func viewDidLoad() {
super.viewDidLoad()
do {
rewardedInterstitialAd = try await GADRewardedInterstitialAd.load(
withAdUnitID: "ca-app-pub-3940256099942544/6978759866", request: GADRequest())
} catch {
print("Failed to load rewarded interstitial ad with error: \(error.localizedDescription)")
}
}
}
Objective-C
#import "ViewController.h"
@interface ViewController ()
@property(nonatomic, strong) GADRewardedInterstitialAd* rewardedInterstitialAd;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[GADRewardedInterstitialAd
loadWithAdUnitID:@"<var label='the ad unit ID'>ca-app-pub-3940256099942544/6978759866</var>"
request:[GADRequest request]
completionHandler:^(
GADRewardedInterstitialAd* _Nullable rewardedInterstitialAd,
NSError* _Nullable error) {
if (!error) {
self.rewardedInterstitialAd = rewardedInterstitialAd;
}
}
];
}
[Optional] Callbacks für die serverseitige Überprüfung validieren
Apps, für die zusätzliche Daten bei Callbacks der serverseitigen Überprüfung erforderlich sind, sollten die Funktion für benutzerdefinierte Daten von Anzeigen mit Prämie verwenden. Jeder Stringwert, der für ein Anzeigenobjekt mit Prämie festgelegt ist, wird an den custom_data
-Abfrageparameter des SSV-Callbacks übergeben. Wenn kein benutzerdefinierter Datenwert festgelegt ist, ist der Wert des Abfrageparameters custom_data
nicht im SSV-Callback vorhanden.
Im folgenden Codebeispiel wird gezeigt, wie benutzerdefinierte Daten für ein Interstitial-Anzeigenobjekt mit Prämie festgelegt werden, bevor eine Anzeige angefragt wird.
Swift
do {
rewardedInterstitialAd = try await GADRewardedInterstitialAd.load(
withAdUnitID: "ca-app-pub-3940256099942544/6978759866", request: GADRequest())
let options = GADServerSideVerificationOptions()
options.customRewardString = "SAMPLE_CUSTOM_DATA_STRING"
rewardedInterstitialAd.serverSideVerificationOptions = options
} catch {
print("Rewarded ad failed to load with error: \(error.localizedDescription)")
}
Objective-C
[GADRewardedInterstitialAd
loadWithAdUnitID:@"ca-app-pub-3940256099942544/6978759866"
request:GADRequest
completionHandler:^(GADRewardedInterstitialAd *ad, NSError *error) {
if (error) {
// Handle Error
return;
}
self.rewardedInterstitialAd = ad;
GADServerSideVerificationOptions *options =
[[GADServerSideVerificationOptions alloc] init];
options.customRewardString = @"SAMPLE_CUSTOM_DATA_STRING";
ad.serverSideVerificationOptions = options;
}];
Für Rückrufe registrieren
Wenn Sie Benachrichtigungen zu Präsentationsereignissen erhalten möchten, müssen Sie das Protokoll GADFullScreenContentDelegate
implementieren und dem Attribut fullScreenContentDelegate
der zurückgegebenen Anzeige zuweisen. Das Protokoll GADFullScreenContentDelegate
verarbeitet Callbacks, wenn die Anzeige erfolgreich oder nicht ausgeliefert werden kann und geschlossen wird. Der folgende Code zeigt, wie das Protokoll implementiert und der Anzeige zugewiesen wird:
Swift
import GoogleMobileAds
import UIKit
class ViewController: UIViewController, GADFullScreenContentDelegate {
private var rewardedInterstitialAd: GADRewardedInterstitialAd?
override func viewDidLoad() {
super.viewDidLoad()
do {
rewardedInterstitialAd = try await GADRewardedInterstitialAd.load(
withAdUnitID: "ca-app-pub-3940256099942544/6978759866", request: GADRequest())
self.rewardedInterstitialAd?.fullScreenContentDelegate = self
} catch {
print("Failed to load rewarded 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.")
}
}
Objective-C
@interface ViewController () <GADFullScreenContentDelegate>
@property(nonatomic, strong) GADRewardedInterstitialAd *rewardedInterstitialAd;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
[GADRewardedInterstitialAd
loadWithAdUnitID:@"ca-app-pub-3940256099942544/6978759866"
request:[GADRequest request]
completionHandler:^(
GADRewardedInterstitialAd *_Nullable rewardedInterstitialAd,
NSError *_Nullable error) {
if (!error) {
self.rewardedInterstitialAd = rewardedInterstitialAd;
self.rewardedInterstitialAd.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.");
}
Anzeige einblenden und Prämienereignis bearbeiten
Wenn du deine Anzeige präsentierst, musst du ein GADUserDidEarnRewardHandler
-Objekt angeben, um die Prämie für den Nutzer zu verarbeiten.
Der folgende Code stellt die beste Methode zum Ausliefern einer Interstitial-Anzeige mit Prämie dar.
Swift
func show() {
guard let rewardedInterstitialAd = rewardedInterstitialAd else {
return print("Ad wasn't ready.")
}
// The UIViewController parameter is an optional.
rewardedInterstitialAd.present(fromRootViewController: nil) {
let reward = rewardedInterstitialAd.adReward
print("Reward received with currency \(reward.amount), amount \(reward.amount.doubleValue)")
// TODO: Reward the user.
}
}
Objective-C
- (void)show {
// The UIViewController parameter is nullable.
[_rewardedInterstitialAd presentFromRootViewController:nil
userDidEarnRewardHandler:^{
GADAdReward *reward =
self.rewardedInterstitialAd.adReward;
// TODO: Reward the user.
}];
}
Nächste Schritte
Weitere Informationen zum Datenschutz für Nutzer