Ödüllü geçiş reklamı

Ödüllü geçiş reklamı, doğal uygulama geçişleri sırasında otomatik olarak görünen reklamlar için ödüller sunmanızı sağlayan bir teşvik edici reklam biçimidir. Ödüllü reklamların aksine kullanıcıların ödüllü geçiş reklamı görüntülemeyi etkinleştirmesi gerekmez.

Ön koşullar

  • Google Mobile Ads SDK'sı 7.60.0 veya üzeri.
  • Google Mobile Ads SDK'sını içe aktarmak için Başlayın kılavuzunu uygulayın.
  • Ödüllü geçiş reklamına erişmek için hesap yöneticinize ulaşın.

Uygulama

Ödüllü geçiş reklamlarını entegre etmenin temel adımları şunlardır:

  1. Reklam yükleyin.
  2. Geri çağırma için kaydolun.
  3. Reklamı gösterin ve ödül etkinliğini tamamlayın.

Reklam yükle

Reklam yükleme, GADRewardedInterstitialAd sınıfındaki statik loadWithAdUnitID:request:completionHandler: yöntemi kullanılarak gerçekleştirilir. Yükleme yöntemi, reklam birimi kimliğiniz, bir GADRequest nesnesi ve reklam yükleme başarılı veya başarısız olduğunda çağrılan bir tamamlama işleyici gerektirir. Yüklenen GADRewardedInterstitialAd nesnesi, tamamlama işleyicisinde bir parametre olarak sağlanır. Aşağıdaki örnekte, ViewController sınıfınızda bir GADRewardedInterstitialAd öğesinin nasıl yükleneceği gösterilmektedir.

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController {

  private var rewardedInterstitialAd: GADRewardedInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()

    GADRewardedInterstitialAd.load(withAdUnitID:"ca-app-pub-3940256099942544/6978759866",
    request: GADRequest()) { ad, error in
      if let error = error {
        return print("Failed to load rewarded interstitial ad with error: \(error.localizedDescription)")
      }

      self.rewardedInterstitialAd = ad
    }
  }
}

Objective-C

#import "ViewController.h"

@interface ViewController ()
@property(nonatomic, strong) GADRewardedInterstitialAd* rewardedInterstitialAd;
@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];

  [GADRewardedInterstitialAd
       loadWithAdUnitID:@"ca-app-pub-3940256099942544/6978759866"
                request:[GADRequest request]
      completionHandler:^(
          GADRewardedInterstitialAd* _Nullable rewardedInterstitialAd,
          NSError* _Nullable error) {
        if (!error) {
          self.rewardedInterstitialAd = rewardedInterstitialAd;
        }
      }
  ];
}

Geri çağırma için kaydolun

Sunu etkinlikleriyle ilgili bildirim almak için GADFullScreenContentDelegate protokolünü uygulamanız ve döndürülen reklamın fullScreenContentDelegate özelliğine atamanız gerekir. GADFullScreenContentDelegate protokolü, reklamın başarıyla veya başarıyla sunulduğu ve kapatıldığı durumlarda geri çağırmaları işler. Aşağıdaki kod, protokolün nasıl uygulanacağını ve reklama nasıl atanacağını gösterir:

Swift

class ViewController: UIViewController {

  private var rewardedInterstitialAd: GADRewardedInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()

    GADRewardedInterstitialAd.load(withAdUnitID:"ca-app-pub-3940256099942544/6978759866",
    request: GADRequest()) { ad, error in
      if let error = error {
        return print("Failed to load rewarded interstitial ad with error: \(error.localizedDescription)")
      }

      self.rewardedInterstitialAd = ad
      self.rewardedInterstitialAd?.fullScreenContentDelegate = self
    }
  }
}

extension ViewController: GADFullScreenContentDelegate {

  /// 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.");
}

Reklamı gösterin ve ödül etkinliğini tamamlayın

Reklamınızı yayınlarken kullanıcıya ödülü vermek için bir GADUserDidEarnRewardHandler nesnesi sağlamanız gerekir.

Aşağıdaki kod, ödüllü geçiş reklamı görüntülemek için en iyi yöntemi sunar.

Swift

func show() {
  guard let rewardedInterstitialAd = rewardedInterstitialAd else {
    return print("Ad wasn't ready.")
  }

  rewardedInterstitialAd.present(fromRootViewController: self) {
    let reward = rewardedInterstitialAd.adReward
    // TODO: Reward the user!
  }
}

Objective-C

- (void)show {
  [_rewardedInterstitialAd presentFromRootViewController:self
                                userDidEarnRewardHandler:^{

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