Ödüllü geçiş reklamı, Gösterilen reklamlar için ödül sunmanızı sağlayan teşvik edilmiş reklam biçimi doğal uygulama geçişlerinde otomatik olarak değiştirilir. Ödüllü reklamların aksine kullanıcılar Ödüllü geçiş reklamı görüntülemeyi etkinleştirmesi gerekir.
Ön koşullar
- Google Mobile Ads SDK'sı 7.60.0 veya sonraki sürümler.
- Başlangıç kılavuzunu tamamlayın.
Uygulama
Ödüllü geçiş reklamlarını entegre etmek için başlıca adımlar şunlardır:
- Reklam yükle
- [İsteğe bağlı] SSV geri çağırmalarını doğrulama
- Geri çağırma işlevleri için kaydolun
- Reklamı gösterin ve ödül etkinliğini yönetin.
Reklam yükle
Reklamın yüklenmesi işlemi load(adUnitID:request)
kullanılarak gerçekleştirilir.
yöntemini GADRewardedInterstitialAd
sınıfında kabul edersiniz.
Swift
import GoogleMobileAds
import UIKit
class ViewController: UIViewController {
private var rewardedInterstitialAd: GADRewardedInterstitialAd?
override func viewDidLoad() {
super.viewDidLoad()
Task {
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)")
}
}
}
}
SwiftUI
import GoogleMobileAds
class RewardedInterstitialViewModel: NSObject, ObservableObject,
GADFullScreenContentDelegate
{
@Published var coins = 0
private var rewardedInterstitialAd: GADRewardedInterstitialAd?
func loadAd() async {
do {
rewardedInterstitialAd = try await GADRewardedInterstitialAd.load(
withAdUnitID: "ca-app-pub-3940256099942544/6978759866", request: GADRequest())
rewardedInterstitialAd?.fullScreenContentDelegate = self
} 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;
}
}
];
}
[İsteğe bağlı] Sunucu tarafı doğrulama (SSV) geri çağırmalarını doğrulama
Sunucu tarafında ek veri gerektiren uygulamalar
doğrulama geri çağırmaları,
ödüllü reklamların özel veri özelliği. Ödüllü reklamda ayarlanan herhangi bir dize değeri
nesnesi, SSV geri çağırmasının custom_data
sorgu parametresine iletilir. Yanıt hayır ise:
özel veri değeri ayarlanırsa custom_data
sorgu parametresi değeri
mevcut olduğu anlamına gelir.
Aşağıdaki kod örneğinde, ödüllü reklam ağında özel verilerin nasıl ayarlanacağı geçiş reklamı nesnesini tanımlayın.
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;
}];
Geri çağırma işlevleri için kaydolun
Sunum etkinlikleriyle ilgili bildirim almak için şunu uygulamanız gerekir:
GADFullScreenContentDelegate
protokolünü ve bunu
Döndürülen reklamın fullScreenContentDelegate
özelliği. İlgili içeriği oluşturmak için kullanılan
GADFullScreenContentDelegate
protokolü, reklamın şu durumlar için geri çağırmaları işler:
ne zaman sunum yaptığını ve ne zaman reddedildiğini belirler. Aşağıdakiler
kodu, protokolün nasıl uygulanacağını ve reklama nasıl atanacağını gösterir:
Swift
import GoogleMobileAds
import UIKit
class ViewController: UIViewController, GADFullScreenContentDelegate {
private var rewardedInterstitialAd: GADRewardedInterstitialAd?
override func viewDidLoad() {
super.viewDidLoad()
Task {
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.")
}
}
SwiftUI
Döndürülen reklama fullScreenContentDelegate
özelliğini atayın:
rewardedInterstitialAd?.fullScreenContentDelegate = self
Protokolü uygulayın:
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 rewarded interstitial ad.
rewardedInterstitialAd = nil
}
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.");
}
Reklamı gösterin ve ödül etkinliğini yönetin.
Reklamınızı gösterirken bir GADUserDidEarnRewardHandler
nesnesi sağlamanız gerekir
gereken başka bir şey yoktur.
Aşağıdaki kod, ödüllü bir reklamı görüntülemek için en iyi yöntemi sunar. Geçiş reklamı.
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.
}
}
SwiftUI
Reklamı göstermek için görünümde kullanıcı arayüzü etkinliklerini dinleyin.
var rewardedInterstitialBody: some View {
// ...
}
.onChange(
of: showAd,
perform: { newValue in
if newValue {
viewModel.showAd()
}
}
)
Görüntüleme modelinden ödüllü geçiş reklamını sunun:
func showAd() {
guard let rewardedInterstitialAd = rewardedInterstitialAd else {
return print("Ad wasn't ready.")
}
rewardedInterstitialAd.present(fromRootViewController: nil) {
let reward = rewardedInterstitialAd.adReward
print("Reward amount: \(reward.amount)")
self.addCoins(reward.amount.intValue)
}
}
Objective-C
- (void)show {
// The UIViewController parameter is nullable.
[_rewardedInterstitialAd presentFromRootViewController:nil
userDidEarnRewardHandler:^{
GADAdReward *reward =
self.rewardedInterstitialAd.adReward;
// TODO: Reward the user.
}];
}
GitHub'daki örnekler
Ödüllü geçiş reklamı örneklerinin tamamını tercih ettiğiniz dilde görüntüleyin:
Sonraki adımlar
Kullanıcı gizliliği hakkında daha fazla bilgi edinin.