বিজ্ঞাপন প্রিলোডিং (আলফা)

বিজ্ঞাপন প্রিলোডিং হল Google Mobile Ads SDK তে Google-পরিচালিত একটি বিজ্ঞাপন লোডিং বৈশিষ্ট্য যা আপনার পক্ষ থেকে বিজ্ঞাপন লোডিং এবং ক্যাশিং পরিচালনা করে। বিজ্ঞাপন প্রিলোডিংয়ের জন্য আপনার বিজ্ঞাপন লোডিং পরিচালনার পদ্ধতিতে পরিবর্তন প্রয়োজন। বিজ্ঞাপন প্রিলোডিং ব্যবহার করে কর্মক্ষমতা অপ্টিমাইজ করতে, কাস্টম ক্যাশিং বন্ধ করুন এবং সেই দায়িত্ব Google Mobile Ads SDK কে অর্পণ করুন।

ম্যানুয়াল বিজ্ঞাপন লোডিংয়ের তুলনায় বিজ্ঞাপন প্রিলোডিং নিম্নলিখিত সুবিধাগুলি প্রদান করে:

  • রেফারেন্স ব্যবস্থাপনা: লোড করা বিজ্ঞাপন ধরে রাখে যাতে আপনি সেগুলি দেখানোর জন্য প্রস্তুত না হওয়া পর্যন্ত আপনাকে রেফারেন্সগুলি বজায় রাখতে না হয়।
  • স্বয়ংক্রিয় পুনরায় লোড হচ্ছে: ক্যাশে থেকে নতুন বিজ্ঞাপন বের করলে স্বয়ংক্রিয়ভাবে একটি নতুন বিজ্ঞাপন লোড হয়।
  • পরিচালিত পুনঃপ্রচেষ্টা: সূচকীয় ব্যাকঅফ ব্যবহার করে ব্যর্থ অনুরোধগুলি স্বয়ংক্রিয়ভাবে পুনঃপ্রচেষ্টা করে।
  • মেয়াদোত্তীর্ণতা পরিচালনা: বিজ্ঞাপনগুলি মেয়াদ শেষ হওয়ার আগে স্বয়ংক্রিয়ভাবে রিফ্রেশ করে (সাধারণত এক ঘন্টা পরে)।
  • ক্যাশে অপ্টিমাইজেশন: যদি আপনি একের চেয়ে বড় ক্যাশে ব্যবহার করেন, তাহলে Google Mobile Ads SDK সেরা বিজ্ঞাপন সরবরাহ করার জন্য ক্যাশে অর্ডার অপ্টিমাইজ করে।

এই নির্দেশিকাটিতে প্রিলোড বিজ্ঞাপন কনফিগার করা, প্রিলোড বিজ্ঞাপনের প্রাপ্যতা পরীক্ষা করা এবং প্রিলোড করা বিজ্ঞাপন দেখানোর বিষয়গুলি অন্তর্ভুক্ত রয়েছে।

পূর্বশর্ত

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

  • Google Mobile Ads SDK ভার্সন 12.6.0 বা তার বেশি ইনস্টল করুন। পূর্ববর্তী ভার্সনের জন্য ডেভেলপার রিসোর্স 11.12.0 - 12.2.0 এ উপলব্ধ, তবে আমরা 12.6.0 বা তার বেশি ভার্সন ব্যবহার করার এবং ভবিষ্যতে এই নির্দেশিকা অনুসরণ করার পরামর্শ দিচ্ছি।
  • Google Mobile Ads SDK সেট আপ করুন

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

বিজ্ঞাপন প্রিলোড করা শুরু করতে, preload() কল করুন। অ্যাপটি শুরু করার সময় শুধুমাত্র একবার এই পদ্ধতিতে কল করুন। আপনি preload() কল করার পরে, Google Mobile Ads SDK স্বয়ংক্রিয়ভাবে বিজ্ঞাপনগুলি প্রিলোড করে এবং প্রিলোড করা কনফিগারেশনের জন্য ব্যর্থ অনুরোধগুলি পুনরায় চেষ্টা করে।

নিম্নলিখিত উদাহরণটি বিজ্ঞাপনগুলি প্রিলোড করা শুরু করে:

সুইফট

// Start the preloading initialization process.
let request = Request()
let interstitialConfig = PreloadConfigurationV2(
  adUnitID: Constants.interstitialAdUnitID, request: request)
InterstitialAdPreloader.shared.preload(
  for: Constants.interstitialAdUnitID, configuration: interstitialConfig, delegate: self)

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

// Start the preloading initialization process.
GADRequest *request = [GADRequest request];
GADPreloadConfigurationV2 *interstitialConfig = [[GADPreloadConfigurationV2 alloc] initWithAdUnitID:interstitialAdUnitID request:request];

[GADInterstitialAdPreloader.sharedInstance preloadForPreloadID:interstitialAdUnitID
                                                     configuration:interstitialConfig
                                                          delegate:self];

প্রিলোডেড বিজ্ঞাপনটি পান এবং দেখান

বিজ্ঞাপন প্রিলোডিং ব্যবহার করার সময়, Google Mobile Ads SDK ক্যাশেড বিজ্ঞাপন ধরে রাখে। যখন আপনি একটি বিজ্ঞাপন দেখাতে চান, তখন adWithPreloadID() কল করুন। Google Mobile Ads SDK উপলব্ধ বিজ্ঞাপনটি পুনরুদ্ধার করে এবং স্বয়ংক্রিয়ভাবে পটভূমিতে পরবর্তী বিজ্ঞাপনটি প্রিলোড করে।

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

নিম্নলিখিত উদাহরণটি একটি প্রিলোডেড বিজ্ঞাপন উদ্ধার করে এবং দেখায়:

সুইফট

private func showInterstitialAd() {
  // Verify that the preloaded ad is available before polling.
  guard isInterstitialAvailable() else {
    printAndShowAlert("Preload interstitial ad is exhausted.")
    return
  }

  // Polling returns the next available ad and load another ad in the background.
  let ad = InterstitialAdPreloader.shared.ad(with: Constants.interstitialAdUnitID)

  // Interact with the ad object as needed.
  print("Interstitial ad response info: \(String(describing: ad?.responseInfo))")
  ad?.paidEventHandler = { (value: AdValue) in
    print("Interstitial ad paid event: \(value.value), \(value.currencyCode)")
  }

  ad?.fullScreenContentDelegate = self
  ad?.present(from: self)
}

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

- (void)showInterstitialAd {
  // Verify that the preloaded ad is available before polling.
  if (![self isInterstitialAvailable]) {
    [self logAndShowAlert:@"Preloaded interstitial ad is not available."];
    return;
  }

  // Getting the preloaded ad loads another ad in the background.
  GADInterstitialAd *ad = [GADInterstitialAdPreloader.sharedInstance adWithPreloadID:interstitialAdUnitID];

  // Interact with the ad object as needed.
  NSLog(@"Interstitial ad response info: %@", ad.responseInfo);
  ad.paidEventHandler = ^(GADAdValue *_Nonnull value) {
    NSLog(@"Interstitial ad paid event: %@ %@ ", value.value, value.currencyCode);
  };
  ad.fullScreenContentDelegate = self;
  [ad presentFromRootViewController:self];
}

প্রিলোডিং বিজ্ঞাপনের উপলভ্যতা পরীক্ষা করুন

বিজ্ঞাপনের প্রাপ্যতা পরীক্ষা করতে, নিম্নলিখিতগুলির মধ্যে একটি বেছে নিন:

প্রিলোডেড বিজ্ঞাপনের উপলভ্যতা পান

নিম্নলিখিত উদাহরণটি বিজ্ঞাপনের প্রাপ্যতা পরীক্ষা করে:

সুইফট

private func isInterstitialAvailable() -> Bool {
  // Verify that an ad is available before polling.
  return InterstitialAdPreloader.shared.isAdAvailable(with: Constants.interstitialAdUnitID)
}

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

- (BOOL)isInterstitialAvailable {
  // Verify that an ad is available before polling.
  return [GADInterstitialAdPreloader.sharedInstance isAdAvailableWithPreloadID:(interstitialAdUnitID)];
}

প্রিলোডেড বিজ্ঞাপনের উপলভ্যতা শুনুন

বিজ্ঞাপন সফলভাবে প্রিলোড করা হলে, প্রিলোড করতে ব্যর্থ হলে, অথবা বিজ্ঞাপনের ক্যাশে শেষ হয়ে গেলে বিজ্ঞপ্তি পেতে প্রিলোড ইভেন্টের জন্য নিবন্ধন করুন।

প্রিলোড ইভেন্টগুলি বিশ্লেষণের উদ্দেশ্যে তৈরি। প্রিলোড ইভেন্ট কলব্যাকের মধ্যে:

  • preload() কল করবেন না।
  • বিজ্ঞাপনটি তাৎক্ষণিকভাবে প্রদর্শিত না হলে adWithPreloadID() কল করা এড়িয়ে চলুন।

নিম্নলিখিত উদাহরণটি বিজ্ঞাপন ইভেন্টের জন্য নিবন্ধন করে:

সুইফট

func adAvailable(forPreloadID preloadID: String, responseInfo: ResponseInfo) {
  // This callback indicates that an ad is available for the specified configuration.
  // No action is required here, but updating the UI can be useful in some cases.
  print("Ad preloaded successfully for ad preload ID: \(preloadID)")
  // ...
}

func adsExhausted(forPreloadID preloadID: String) {
  // This callback indicates that all the ads for the specified configuration have been
  // consumed and no ads are available to show. No action is required here, but updating
  // the UI can be useful in some cases.
  // [Important] Don't call AdPreloader.shared.preload or AdPreloader.shared.ad
  // from adsExhausted.
  print("Ad exhausted for ad preload ID: \(preloadID)")
  // ...
}

func adFailedToPreload(forPreloadID preloadID: String, error: Error) {
  print(
    "Ad failed to load with ad preload ID: \(preloadID), Error: \(error.localizedDescription)"
  )
}

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

- (void)adAvailableForPreloadID:(nonnull NSString *)preloadID responseInfo:(nonnull GADResponseInfo *)responseInfo {
  // This callback indicates that an ad is available for the specified configuration.
  // No action is required here, but updating the UI can be useful in some cases.
  NSLog(@"Ad preloaded successfully for ad unit ID: %@", preloadID);
  // ...
}

- (void)adsExhaustedForPreloadID:(nonnull NSString  *)preloadID {
  // This callback indicates that all the ads for the specified configuration have been
  // consumed and no ads are available to show. No action is required here, but updating
  // the UI can be useful in some cases.
  // [Important] Don't call [GAD<Format>AdPreloader preloadForPreloadID:] or
  // [GAD<Format>AdPreloader adWithPreloadID:] from adsExhaustedForPreloadID.
  NSLog(@"Ad exhausted for ad preload ID: %@", preloadID);
  // ...
}

- (void)adFailedToPreloadForPreloadID:(nonnull NSString  *)preloadID error:(nonnull NSError *)error {
  NSLog(@"Ad failed to load with ad preload ID: %@, Error: %@", preloadID, error.localizedDescription);
}

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

যদি সেশনে আবার প্রিলোড আইডির জন্য বিজ্ঞাপন দেখানোর প্রয়োজন না হয়, তাহলে আপনি বিজ্ঞাপন প্রিলোড করা বন্ধ করতে পারেন। একটি নির্দিষ্ট প্রিলোড আইডির জন্য বিজ্ঞাপন প্রিলোড করা বন্ধ করতে, একটি প্রিলোড আইডি দিয়ে stopPreloadingAndRemoveAdsForPreloadID() এ কল করুন।

বাফারের আকার সেট করুন

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

সুইফট

let preloadConfig = PreloadConfigurationV2(adUnitID: "/21775744923/example/rewarded")
preloadConfig.bufferSize = 3

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

GADPreloadConfigurationV2 *preloadConfig =
    [[GADPreloadConfigurationV2 alloc] initWithAdUnitID:@"/21775744923/example/rewarded"];
preloadConfig.bufferSize = 3;