পুরস্কার প্রদানকারী ইন্টারস্টিশিয়াল বিজ্ঞাপন

প্ল্যাটফর্ম বেছে নিন: Android iOS Unity Flutter Android (Legacy)

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

পূর্বশর্ত

চালিয়ে যাওয়ার আগে, Google Mobile Ads SDK সেট-আপ করুন।

প্রয়োগ

পুরস্কার প্রদানকারী ইন্টারস্টিশিয়াল বিজ্ঞাপন ইন্টিগ্রেট করার প্রাথমিক ধাপগুলি হল:

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

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

GADRewardedInterstitialAd ক্লাসে load(adUnitID:request) মেথড ব্যবহার করে বিজ্ঞাপন লোড করা হয়।

Swift

func loadRewardedInterstitialAd() async {
  do {
    rewardedInterstitialAd = try await RewardedInterstitialAd.load(
      // Replace this ad unit ID with your own ad unit ID.
      with: "adUnitID", request: Request())
    rewardedInterstitialAd?.fullScreenContentDelegate = self
  } catch {
    print("Rewarded ad failed to load with error: \(error.localizedDescription)")
  }
}

SwiftUI

import GoogleMobileAds

class RewardedInterstitialViewModel: NSObject, ObservableObject,
  FullScreenContentDelegate
{
  @Published var coins = 0
  private var rewardedInterstitialAd: RewardedInterstitialAd?

  func loadAd() async {
    do {
      rewardedInterstitialAd = try await RewardedInterstitialAd.load(
        with: "ca-app-pub-3940256099942544/6978759866", request: Request())
      rewardedInterstitialAd?.fullScreenContentDelegate = self
    } catch {
      print(
        "Failed to load rewarded interstitial ad with error: \(error.localizedDescription)")
    }
  }

Objective-C

- (void)loadRewardedInterstitialAd {
  [GADRewardedInterstitialAd loadWithAdUnitID:"adUnitID"
                                      request:[GADRequest request]
                            completionHandler:^(GADRewardedInterstitialAd *ad, NSError *error) {
                              if (error) {
                                NSLog(@"Failed to load rewarded interstitial ad with error: %@",
                                      error.localizedDescription);
                                return;
                              }
                              self.rewardedInterstitialAd = ad;
                              self.rewardedInterstitialAd.fullScreenContentDelegate = self;
                            }];
}

আপনার বিজ্ঞাপন ইউনিট আইডির সাথে adUnitID পরিবর্তন করুন।

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

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

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

Swift

private func validateServerSideVerification() async {
  do {
    rewardedInterstitialAd = try await RewardedInterstitialAd.load(
      // Replace this ad unit ID with your own ad unit ID.
      with: "adUnitID", request: Request())
    let options = ServerSideVerificationOptions()
    options.customRewardText = ""SAMPLE_CUSTOM_DATA_STRING""
    rewardedInterstitialAd?.serverSideVerificationOptions = options
  } catch {
    print("Rewarded ad failed to load with error: \(error.localizedDescription)")
  }
}

Objective-C

- (void)validateServerSideVerification {
  // Replace this ad unit ID with your own ad unit ID.
  [GADRewardedInterstitialAd loadWithAdUnitID:"adUnitID"
                                      request:[GADRequest request]
                            completionHandler:^(GADRewardedInterstitialAd *ad, NSError *error) {
                              if (error) {
                                NSLog(@"Rewarded interstitial ad failed to load with error: %@",
                                      error.localizedDescription);
                                return;
                              }
                              self.rewardedInterstitialAd = ad;
                              GADServerSideVerificationOptions *options =
                                  [[GADServerSideVerificationOptions alloc] init];
                              options.customRewardString = @""SAMPLE_CUSTOM_DATA_STRING"";
                              ad.serverSideVerificationOptions = options;
                            }];
}

আপনার কাস্টম ডেটা দিয়ে SAMPLE_CUSTOM_DATA_STRING পরিবর্তন করুন।

কলব্যাকের জন্য রেজিস্টার করা

প্রেজেন্টেশন ইভেন্টের জন্য বিজ্ঞপ্তি পেতে, আপনাকে অবশ্যই ফেরত আসা বিজ্ঞাপনের GADFullScreenContentDelegate থেকে fullScreenContentDelegate প্রপার্টিতে অ্যাসাইন করতে হবে:

Swift

rewardedInterstitialAd?.fullScreenContentDelegate = self

SwiftUI

rewardedInterstitialAd?.fullScreenContentDelegate = self

Objective-C

self.rewardedInterstitialAd.fullScreenContentDelegate = self;

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

Swift

func adDidRecordImpression(_ ad: FullScreenPresentingAd) {
  print("\(#function) called.")
}

func adDidRecordClick(_ ad: FullScreenPresentingAd) {
  print("\(#function) called.")
}

func adWillPresentFullScreenContent(_ ad: FullScreenPresentingAd) {
  print("\(#function) called.")
}

func adWillDismissFullScreenContent(_ ad: FullScreenPresentingAd) {
  print("\(#function) called.")
}

func adDidDismissFullScreenContent(_ ad: FullScreenPresentingAd) {
  print("\(#function) called.")
  // Clear the rewarded interstitial ad.
  rewardedInterstitialAd = nil
}

func ad(
  _ ad: FullScreenPresentingAd,
  didFailToPresentFullScreenContentWithError error: Error
) {
  print("\(#function) called with error: \(error.localizedDescription).")
}

SwiftUI

func adDidRecordImpression(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func adDidRecordClick(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func ad(
  _ ad: FullScreenPresentingAd,
  didFailToPresentFullScreenContentWithError error: Error
) {
  print("\(#function) called")
}

func adWillPresentFullScreenContent(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func adWillDismissFullScreenContent(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
}

func adDidDismissFullScreenContent(_ ad: FullScreenPresentingAd) {
  print("\(#function) called")
  // Clear the rewarded interstitial ad.
  rewardedInterstitialAd = nil
}

Objective-C

- (void)adDidRecordImpression:(id<GADFullScreenPresentingAd>)ad {
  NSLog(@"%s called", __PRETTY_FUNCTION__);
}

- (void)adDidRecordClick:(id<GADFullScreenPresentingAd>)ad {
  NSLog(@"%s called", __PRETTY_FUNCTION__);
}

- (void)adWillPresentFullScreenContent:(id<GADFullScreenPresentingAd>)ad {
  NSLog(@"%s called", __PRETTY_FUNCTION__);
}

- (void)adWillDismissFullScreenContent:(id<GADFullScreenPresentingAd>)ad {
  NSLog(@"%s called", __PRETTY_FUNCTION__);
}

- (void)adDidDismissFullScreenContent:(id<GADFullScreenPresentingAd>)ad {
  NSLog(@"%s called", __PRETTY_FUNCTION__);
  // Clear the rewarded interstitial ad.
  self.rewardedInterstitialAd = nil;
}

- (void)ad:(id)ad didFailToPresentFullScreenContentWithError:(NSError *)error {
  NSLog(@"%s called with error: %@", __PRETTY_FUNCTION__, error.localizedDescription);
}

বিজ্ঞাপন দেখানো এবং পুরস্কার ইভেন্ট ম্যানেজ করা

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

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

Swift

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

  // The UIViewController parameter is an optional.
  rewardedInterstitialAd.present(from: nil) {
    let reward = rewardedInterstitialAd.adReward
    print("Reward received with currency \(reward.amount), amount \(reward.amount.doubleValue)")
    // TODO: Reward the user.
  }
}

SwiftUI

বিজ্ঞাপন দেখানোর জন্য ভিউতে 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(from: nil) {
    let reward = rewardedInterstitialAd.adReward
    print("Reward amount: \(reward.amount)")
    self.addCoins(reward.amount.intValue)
  }
}

Objective-C

- (void)showRewardedInterstitialAd {
  [self.rewardedInterstitialAd presentFromRootViewController:self
                                    userDidEarnRewardHandler:^{
                                      GADAdReward *reward = self.rewardedInterstitialAd.adReward;

                                      NSString *rewardMessage = [NSString
                                          stringWithFormat:@"Reward received with "
                                                           @"currency %@ , amount %ld",
                                                           reward.type, [reward.amount longValue]];
                                      NSLog(@"%@", rewardMessage);
                                      // TODO: Reward the user.
                                    }];
}

GitHub-এ উদাহরণ

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

পরবর্তী ধাপ

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