পুরস্কৃত ইন্টারস্টিশিয়াল (বিটা)

পুরস্কৃত ইন্টারস্টিশিয়াল হল এক ধরনের প্রণোদনামূলক বিজ্ঞাপন ফর্ম্যাট যা আপনাকে এমন বিজ্ঞাপনের জন্য পুরষ্কার অফার করতে দেয় যা প্রাকৃতিক অ্যাপ পরিবর্তনের সময় স্বয়ংক্রিয়ভাবে প্রদর্শিত হয়। পুরস্কৃত বিজ্ঞাপনের বিপরীতে, ব্যবহারকারীদের একটি পুরস্কৃত ইন্টারস্টিশিয়াল দেখতে অপ্ট-ইন করতে হবে না।

পূর্বশর্ত

বাস্তবায়ন

পুরস্কৃত ইন্টারস্টিশিয়াল বিজ্ঞাপনগুলিকে সংহত করার প্রাথমিক পদক্ষেপগুলি নিম্নরূপ:

  • একটি বিজ্ঞাপন লোড করুন
  • [ঐচ্ছিক] SSV কলব্যাক যাচাই করুন
  • কলব্যাকের জন্য নিবন্ধন করুন
  • বিজ্ঞাপন প্রদর্শন করুন এবং পুরস্কার ইভেন্ট পরিচালনা করুন

একটি বিজ্ঞাপন লোড করুন

GADRewardedInterstitialAd ক্লাসে load(adUnitID:request) পদ্ধতি ব্যবহার করে একটি বিজ্ঞাপন লোড করা হয়।

সুইফট

import GoogleMobileAds
import UIKit

class ViewController: UIViewController {

  private var rewardedInterstitialAd: GADRewardedInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()

    Task {
      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)")
      }
    }
  }
}

সুইফটইউআই

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)")
    }
  }

উদ্দেশ্য-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;
        }
      }
  ];
}

[ঐচ্ছিক] সার্ভার-সাইড ভেরিফিকেশন (SSV) কলব্যাক যাচাই করুন

যে অ্যাপগুলির সার্ভার-সাইড যাচাইকরণ কলব্যাকে অতিরিক্ত ডেটার প্রয়োজন হয় তাদের পুরস্কৃত বিজ্ঞাপনগুলির কাস্টম ডেটা বৈশিষ্ট্য ব্যবহার করা উচিত। পুরস্কৃত বিজ্ঞাপন অবজেক্টে সেট করা যেকোনো স্ট্রিং মান SSV কলব্যাকের custom_data ক্যোয়ারী প্যারামিটারে পাস করা হয়। যদি কোনো কাস্টম ডেটা মান সেট করা না থাকে, custom_data ক্যোয়ারী প্যারামিটার মান SSV কলব্যাকে উপস্থিত থাকবে না।

নিচের কোড নমুনাটি দেখায় যে কিভাবে একটি বিজ্ঞাপনের অনুরোধ করার আগে একটি পুরস্কৃত ইন্টারস্টিশিয়াল বিজ্ঞাপন বস্তুতে কাস্টম ডেটা সেট করতে হয়।

সুইফট

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)")
}

উদ্দেশ্য-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;
    }];

কলব্যাকের জন্য নিবন্ধন করুন

উপস্থাপনা ইভেন্টের জন্য বিজ্ঞপ্তি পেতে, আপনাকে অবশ্যই GADFullScreenContentDelegate প্রোটোকল প্রয়োগ করতে হবে এবং ফেরত বিজ্ঞাপনের fullScreenContentDelegate সম্পত্তিতে এটি বরাদ্দ করতে হবে। GADFullScreenContentDelegate প্রোটোকল কখন বিজ্ঞাপনটি সফলভাবে বা অসফলভাবে উপস্থাপন করে এবং কখন এটি খারিজ করা হয় তার জন্য কলব্যাক পরিচালনা করে। নিম্নলিখিত কোডটি দেখায় কিভাবে প্রোটোকল প্রয়োগ করতে হয় এবং এটি বিজ্ঞাপনে বরাদ্দ করতে হয়:

সুইফট

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

সুইফটইউআই

প্রত্যাবর্তিত বিজ্ঞাপনে fullScreenContentDelegate সম্পত্তি বরাদ্দ করুন:

rewardedInterstitialAd?.fullScreenContentDelegate = self

প্রোটোকল বাস্তবায়ন করুন:

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
}

উদ্দেশ্য-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.");
}

বিজ্ঞাপন প্রদর্শন করুন এবং পুরস্কার ইভেন্ট পরিচালনা করুন

আপনার বিজ্ঞাপনটি উপস্থাপন করার সময়, আপনাকে অবশ্যই একটি GADUserDidEarnRewardHandler অবজেক্ট প্রদান করতে হবে যাতে ব্যবহারকারীর জন্য পুরষ্কারটি পরিচালনা করা যায়।

নিম্নলিখিত কোডটি একটি পুরস্কৃত ইন্টারস্টিশিয়াল বিজ্ঞাপন প্রদর্শনের জন্য সর্বোত্তম পদ্ধতি উপস্থাপন করে।

সুইফট

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.
  }
}

সুইফটইউআই

বিজ্ঞাপন প্রদর্শন করতে ভিউতে UI ইভেন্টগুলি শুনুন।

var rewardedInterstitialBody: some View {
  // ...
  }
  .onChange(
    of: showAd,
    perform: { newValue in
      if newValue {
        viewModel.showAd()
      }
    }
  )

ভিউ মডেল থেকে পুরস্কৃত ইন্টারস্টিশিয়াল বিজ্ঞাপন উপস্থাপন করুন:

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)
  }
}

উদ্দেশ্য-C

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

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

গিটহাবের উদাহরণ

আপনার পছন্দের ভাষায় সম্পূর্ণ পুরস্কৃত ইন্টারস্টিশিয়াল বিজ্ঞাপনের উদাহরণগুলি দেখুন:

পরবর্তী পদক্ষেপ

ব্যবহারকারীর গোপনীয়তা সম্পর্কে আরও জানুন।