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

প্ল্যাটফর্ম নির্বাচন করুন: অ্যান্ড্রয়েড আইওএস ইউনিটি ফ্লাটার

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

পূর্বশর্ত

বাস্তবায়ন

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

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

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

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

সুইফট

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

সুইফটইউআই

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)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 কোয়েরি প্যারামিটারে পাস করা হয়। যদি কোনও কাস্টম ডেটা মান সেট না করা থাকে, তাহলে custom_data কোয়েরি প্যারামিটার মান SSV কলব্যাকে উপস্থিত থাকবে না।

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

সুইফট

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

অবজেক্টিভ-সি

- (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 প্রপার্টিতে অ্যাসাইন করতে হবে:

সুইফট

rewardedInterstitialAd?.fullScreenContentDelegate = self

সুইফটইউআই

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

সুইফটইউআই

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

সুইফটইউআই

বিজ্ঞাপনটি প্রদর্শনের জন্য ভিউতে 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.
                                    }];
}

GitHub-এ উদাহরণ

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

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

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