পুরস্কৃত বিজ্ঞাপন

পুরস্কৃত বিজ্ঞাপন হল সেই বিজ্ঞাপন যা ব্যবহারকারীদের অ্যাপ-মধ্যস্থ পুরস্কারের বিনিময়ে ইন্টারঅ্যাক্ট করার বিকল্প থাকে। এই নির্দেশিকা আপনাকে দেখায় কিভাবে AdMobথেকে পুরস্কৃত বিজ্ঞাপনগুলিকে একটি iOS অ্যাপে একত্রিত করতে হয়।কিছু গ্রাহকের সাফল্যের গল্প পড়ুন: কেস স্টাডি 1 , কেস স্টাডি 2

পূর্বশর্ত

  • Google মোবাইল বিজ্ঞাপন SDK 8.0.0 বা উচ্চতর
  • Google মোবাইল বিজ্ঞাপন SDK আমদানি করতে শুরু করুন নির্দেশিকা অনুসরণ করুন৷

সর্বদা পরীক্ষার বিজ্ঞাপন দিয়ে পরীক্ষা করুন

আপনার অ্যাপ তৈরি এবং পরীক্ষা করার সময়, নিশ্চিত করুন যে আপনি লাইভ, প্রোডাকশন বিজ্ঞাপনের পরিবর্তে পরীক্ষামূলক বিজ্ঞাপন ব্যবহার করছেন। এটি করতে ব্যর্থ হলে আপনার অ্যাকাউন্ট স্থগিত হতে পারে।

পরীক্ষার বিজ্ঞাপন লোড করার সবচেয়ে সহজ উপায় হল iOS পুরস্কৃত বিজ্ঞাপনের জন্য আমাদের ডেডিকেটেড টেস্ট বিজ্ঞাপন ইউনিট আইডি ব্যবহার করা:

ca-app-pub-3940256099942544/1712485313

প্রতিটি অনুরোধের জন্য পরীক্ষার বিজ্ঞাপনগুলি ফেরত দেওয়ার জন্য এটি বিশেষভাবে কনফিগার করা হয়েছে এবং কোডিং, পরীক্ষা এবং ডিবাগ করার সময় আপনি এটিকে আপনার নিজস্ব অ্যাপে ব্যবহার করতে পারবেন৷ আপনার অ্যাপ প্রকাশ করার আগে শুধু নিশ্চিত করুন যে আপনি এটিকে আপনার নিজের বিজ্ঞাপন ইউনিট আইডি দিয়ে প্রতিস্থাপন করেছেন।

মোবাইল বিজ্ঞাপন SDK-এর পরীক্ষার বিজ্ঞাপনগুলি কীভাবে কাজ করে সে সম্পর্কে আরও তথ্যের জন্য, পরীক্ষা বিজ্ঞাপনগুলি দেখুন।

বাস্তবায়ন

পুরস্কৃত বিজ্ঞাপনগুলিকে সংহত করার প্রধান পদক্ষেপগুলি হল:

  1. একটি বিজ্ঞাপন লোড করুন.
  2. কলব্যাকের জন্য নিবন্ধন করুন।
  3. বিজ্ঞাপন প্রদর্শন করুন এবং পুরস্কার ইভেন্ট পরিচালনা করুন.

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

GADRewardedAd ক্লাসে স্ট্যাটিক loadWithAdUnitID:request:completionHandler: পদ্ধতি ব্যবহার করে একটি বিজ্ঞাপন লোড করা হয়। লোড পদ্ধতির জন্য আপনার বিজ্ঞাপন ইউনিট আইডি, একটি GADRequest অবজেক্ট এবং একটি সম্পূর্ণকরণ হ্যান্ডলার প্রয়োজন যা বিজ্ঞাপন লোডিং সফল বা ব্যর্থ হলে কল করা হয়। লোড করা GADRewardedAd অবজেক্টটি সমাপ্তি হ্যান্ডলারে একটি পরামিতি হিসাবে প্রদান করা হয়। নিচের উদাহরণটি দেখায় কিভাবে আপনার ViewController ক্লাসে একটি GADRewardedAd লোড করতে হয়।

সুইফট


import GoogleMobileAds
import UIKit

class ViewController: UIViewController {

  private var rewardedAd: GADRewardedAd?

  func loadRewardedAd() {
    let request = GADRequest()
    GADRewardedAd.load(withAdUnitID:"ca-app-pub-3940256099942544/1712485313",
                       request: request,
                       completionHandler: { [self] ad, error in
      if let error = error {
        print("Failed to load rewarded ad with error: \(error.localizedDescription)")
        return
      }
      rewardedAd = ad
      print("Rewarded ad loaded.")
    }
    )
  }
}

উদ্দেশ্য গ

@import GoogleMobileAds;
@import UIKit;

@interface ViewController ()

@property(nonatomic, strong) GADRewardedAd *rewardedAd;

@end

@implementation ViewController
- (void)loadRewardedAd {
  GADRequest *request = [GADRequest request];
  [GADRewardedAd
       loadWithAdUnitID:@"ca-app-pub-3940256099942544/1712485313"
                request:request
      completionHandler:^(GADRewardedAd *ad, NSError *error) {
        if (error) {
          NSLog(@"Rewarded ad failed to load with error: %@", [error localizedDescription]);
          return;
        }
        self.rewardedAd = ad;
        NSLog(@"Rewarded ad loaded.");
      }];
}

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

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

সুইফট

class ViewController: UIViewController, GADFullScreenContentDelegate {

  private var rewardedAd: GADRewardedAd?

  func loadRewardedAd() {
    let request = GADRequest()
    GADRewarded.load(withAdUnitID:"ca-app-pub-3940256099942544/1712485313",
                     request: request,
                     completionHandler: { [self] ad, error in
      if let error = error {
        print("Failed to load rewarded ad with error: \(error.localizedDescription)")
        return
      }
      rewardedAd = ad
      print("Rewarded ad loaded.")
      rewardedAd?.fullScreenContentDelegate = self
    }
    )
  }

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

উদ্দেশ্য গ

@interface ViewController ()<GADFullScreenContentDelegate>

@property(nonatomic, strong) GADRewardedAd *rewardedAd;

@end

@implementation ViewController
- (void)loadRewardedAd {
  GADRequest *request = [GADRequest request];
  [GADRewardedAd
       loadWithAdUnitID:@"ca-app-pub-3940256099942544/4806952744"
                request:request
      completionHandler:^(GADRewardedAd *ad, NSError *error) {
        if (error) {
          NSLog(@"Rewarded ad failed to load with error: %@", [error localizedDescription]);
          return;
        }
        self.rewardedAd = ad;
        NSLog(@"Rewarded ad loaded.");
        self.rewardedAd.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.");
}

GADRewardedAd হল একটি একবার ব্যবহারযোগ্য বস্তু৷ এর অর্থ হল একটি পুরস্কৃত বিজ্ঞাপন একবার দেখানো হলে তা আর দেখানো যাবে না। একটি সর্বোত্তম অনুশীলন হল GADFullScreenContentDelegate এ GADFullScreenContentDelegate adDidDismissFullScreenContent: পদ্ধতিতে অন্য একটি পুরস্কৃত বিজ্ঞাপন লোড করা যাতে পূর্ববর্তীটি খারিজ হওয়ার সাথে সাথে পরবর্তী পুরস্কৃত বিজ্ঞাপনটি লোড হতে শুরু করে।

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

ব্যবহারকারীদের কাছে একটি পুরস্কৃত বিজ্ঞাপন প্রদর্শন করার আগে, আপনাকে অবশ্যই ব্যবহারকারীকে একটি পুরষ্কারের বিনিময়ে পুরস্কৃত বিজ্ঞাপন সামগ্রী দেখার জন্য একটি স্পষ্ট পছন্দ উপস্থাপন করতে হবে। পুরস্কৃত বিজ্ঞাপন সর্বদা একটি অপ্ট-ইন অভিজ্ঞতা হতে হবে।

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

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

সুইফট

func show() {
  if let ad = rewardedAd {
    ad.present(fromRootViewController: self) {
      let reward = ad.adReward
      print("Reward received with currency \(reward.amount), amount \(reward.amount.doubleValue)")
      // TODO: Reward the user.
    }
  } else {
    print("Ad wasn't ready")
  }
}

উদ্দেশ্য গ

- (void)show {
  ...
  if (self.rewardedAd) {
    [self.rewardedAd presentFromRootViewController:self
                                  userDidEarnRewardHandler:^{
                                  GADAdReward *reward =
                                      self.rewardedAd.adReward;
                                  // TODO: Reward the user!
                                }];
  } else {
    NSLog(@"Ad wasn't ready");
  }
}

FAQ

আমি কি GADRewardedAd এর জন্য পুরস্কারের বিবরণ পেতে পারি?
হ্যাঁ, userDidEarnReward কলব্যাক ফায়ার করার আগে আপনার যদি পুরষ্কারের পরিমাণের প্রয়োজন হয়, GADRewardedAd এর একটি adReward প্রপার্টি রয়েছে যা আপনি বিজ্ঞাপনটি লোড হওয়ার পরে পুরস্কারের পরিমাণ যাচাই করতে পরীক্ষা করতে পারেন।
আরম্ভ কলের জন্য একটি সময়সীমা আছে?
10 সেকেন্ডের পরে, Google Mobile Ads SDK GADInitializationCompletionHandler-কে startWithCompletionHandler: পদ্ধতিতে প্রদত্ত GADInitializationCompletionHandler কে আহ্বান করে, এমনকি যদি কোনো মধ্যস্থতা নেটওয়ার্ক এখনও শুরু না করে থাকে।
আমি যখন ইনিশিয়ালাইজেশন কলব্যাক পাই তখন কিছু মধ্যস্থতা নেটওয়ার্ক প্রস্তুত না হলে কী হবে?

একটি GADInitializationCompletionHandler এর ভিতরে একটি বিজ্ঞাপন লোড করা একটি সর্বোত্তম অনুশীলন। এমনকি একটি মধ্যস্থতা নেটওয়ার্ক প্রস্তুত না হলেও, Google মোবাইল বিজ্ঞাপন SDK সেই নেটওয়ার্কটিকে একটি বিজ্ঞাপনের জন্য জিজ্ঞাসা করবে৷ তাই যদি একটি মধ্যস্থতা নেটওয়ার্ক টাইমআউটের পরে আরম্ভ করা শেষ করে, তবে এটি এখনও সেই সেশনে ভবিষ্যতের বিজ্ঞাপনের অনুরোধগুলিকে পরিষেবা দিতে পারে।

আপনি GADMobileAds.initializationStatus কল করে আপনার অ্যাপ সেশন জুড়ে সমস্ত অ্যাডাপ্টারের প্রারম্ভিকতার স্থিতি পোল চালিয়ে যেতে পারেন।

একটি নির্দিষ্ট মধ্যস্থতা নেটওয়ার্ক কেন প্রস্তুত নয় তা আমি কীভাবে খুঁজে পাব?

একটি GADAdapterStatus অবজেক্টের description বৈশিষ্ট্য বর্ণনা করে যে কেন একটি অ্যাডাপ্টার বিজ্ঞাপনের অনুরোধের জন্য প্রস্তুত নয়।

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