Ödüllü geçiş reklamı (beta)

Ö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

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, statik loadWithAdUnitID:request:completionHandler: yöntemi GADRewardedInterstitialAd sınıf. Yükleme yöntemi, reklam birimi kimliğinizi gerektirir. GAMRequest nesne ve bir tamamlama işleyici Bu, reklam yükleme başarılı veya başarısız olduğunda çağrılır. Yüklenen Tamamlama işleminde parametre olarak GADRewardedInterstitialAd nesne sağlandı gerekir. Aşağıdaki örnekte, bir GADRewardedInterstitialAd dosyasının nasıl yükleneceği gösterilmektedir ViewController sınıfınız.

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController {

  private var rewardedInterstitialAd: GADRewardedInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()

    do {
      rewardedInterstitialAd = try await GADRewardedInterstitialAd.load(
        withAdUnitID: "/21775744923/example/rewarded_interstitial", request: GAMRequest())
    } 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'>/21775744923/example/rewarded_interstitial</var>"
                request:[GAMRequest 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 ayarlandığında, 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: "/21775744923/example/rewarded_interstitial", request: GAMRequest())
  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:@"/21775744923/example/rewarded_interstitial"
              request:GAMRequest
    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()

    do {
      rewardedInterstitialAd = try await GADRewardedInterstitialAd.load(
        withAdUnitID: "/21775744923/example/rewarded_interstitial", request: GAMRequest())
      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:@"/21775744923/example/rewarded_interstitial"
                request:[GAMRequest 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.
  }
}

Objective-C

- (void)show {
  // The UIViewController parameter is nullable.
  [_rewardedInterstitialAd presentFromRootViewController:nil
                                userDidEarnRewardHandler:^{

                                  GADAdReward *reward =
                                      self.rewardedInterstitialAd.adReward;
                                  // TODO: Reward the user.
                                }];
}

Sonraki adımlar

Kullanıcı gizliliği hakkında daha fazla bilgi edinin.