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

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

পূর্বশর্ত

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

বাস্তবায়ন

রিওয়ার্ডেড ইন্টারস্টিশিয়াল বিজ্ঞাপন ইন্টিগ্রেট করার প্রধান ধাপগুলো নিম্নরূপ:

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

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

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

সুইফট

func loadAdManagerRewardedInterstitialAd() async {
  do {
    rewardedInterstitialAd = try await RewardedInterstitialAd.load(
      // Replace this ad unit ID with your own ad unit ID.
      with: "adUnitID", request: AdManagerRequest())
    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)")
    }
  }

উদ্দেশ্য-সি

- (void)loadAdManagerRewardedInterstitialAd {
  [GADRewardedInterstitialAd loadWithAdUnitID:"adUnitID"
                                      request:[GAMRequest 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 কোয়েরি প্যারামিটারে পাস করা হয়। যদি কোনো কাস্টম ডেটা ভ্যালু সেট করা না থাকে, তাহলে custom_data কোয়েরি প্যারামিটারের ভ্যালুটি SSV কলব্যাকে উপস্থিত থাকবে না।

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

সুইফট

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

উদ্দেশ্য-সি

- (void)validateAdManagerServerSideVerification {
  // Replace this ad unit ID with your own ad unit ID.
  [GADRewardedInterstitialAd loadWithAdUnitID:"adUnitID"
                                      request:[GAMRequest 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 আপনার নিজস্ব ডেটা দিয়ে প্রতিস্থাপন করুন।

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

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

সুইফট

rewardedInterstitialAd?.fullScreenContentDelegate = self

SwiftUI

rewardedInterstitialAd?.fullScreenContentDelegate = self

উদ্দেশ্য-সি

self.rewardedInterstitialAd.fullScreenContentDelegate = self;

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

সুইফট

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
}

উদ্দেশ্য-সি

- (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 অবজেক্ট প্রদান করতে হবে।

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

সুইফট

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

উদ্দেশ্য-সি

- (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.
                                    }];
}

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

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

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

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