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

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

iOS অ্যাপে কীভাবে ইন্টারস্টিশিয়াল বিজ্ঞাপন ইন্টিগ্রেট করতে হয় তা এই গাইড থেকে জানতে পারবেন।

পূর্বশর্ত

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

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

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

টেস্ট বিজ্ঞাপন লোড করার সবচেয়ে সহজ উপায় হল iOS ইন্টারস্টিশিয়ালের জন্য আমাদের নির্দিষ্ট টেস্ট বিজ্ঞাপন ইউনিট আইডি ব্যবহার করা:
ca-app-pub-3940256099942544/4411468910

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

Google Mobile Ads SDKটি টেস্ট বিজ্ঞাপন সম্পর্কে আরও জানতে, টেস্ট বিজ্ঞাপন চালু করুন বিকল্প দেখুন।

প্রয়োগ

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

  1. বিজ্ঞাপন লোড করুন।
  2. কলব্যাকের জন্য রেজিস্টার করুন।
  3. বিজ্ঞাপনটি দেখান।

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

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

Swift

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

SwiftUI

import GoogleMobileAds

class InterstitialViewModel: NSObject, FullScreenContentDelegate {
  private var interstitialAd: InterstitialAd?

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

Objective-C

[GADInterstitialAd
     loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910"
              request:[GADRequest request]
    completionHandler:^(GADInterstitialAd *ad, NSError *error) {
      if (error) {
        NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]);
        return;
      }
      self.interstitial = ad;
      self.interstitial.fullScreenContentDelegate = self;
    }];

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

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

Swift

interstitial?.fullScreenContentDelegate = self

SwiftUI

interstitialAd?.fullScreenContentDelegate = self

Objective-C

self.interstitial.fullScreenContentDelegate = self;

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

Swift

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

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

func ad(_ ad: FullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
  print("\(#function) called with error: \(error.localizedDescription)")
  // Clear the interstitial ad.
  interstitial = nil
}

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

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

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

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 interstitial ad.
  interstitialAd = nil
}

Objective-C

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

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

- (void)ad:(id<GADFullScreenPresentingAd>)ad
    didFailToPresentFullScreenContentWithError:(NSError *)error {
  NSLog(@"%s called with error: %@", __PRETTY_FUNCTION__, error.localizedDescription);
  // Clear the interstitial ad.
  self.interstitial = nil;
}

- (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 interstitial ad.
  self.interstitial = nil;
}

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

বিজ্ঞাপনটি দেখান

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

Swift

ad.present(from: self!)

SwiftUI

কখন বিজ্ঞাপন দেখাতে হবে তা নির্ধারণ করতে ভিউতে UI ইভেন্ট শুনুন।

var body: some View {
  // ...
  }
  .onChange(of: countdownTimer.isComplete) { newValue in
    showGameOverAlert = newValue
  }
  .alert(isPresented: $showGameOverAlert) {
    Alert(
      title: Text("Game Over"),
      message: Text("You lasted \(countdownTimer.countdownTime) seconds"),
      dismissButton: .cancel(
        Text("OK"),
        action: {
          viewModel.showAd()
        }))

ভিউ মডেল থেকে ইন্টারস্টিশিয়াল বিজ্ঞাপন দেখান:

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

  interstitialAd.present(from: nil)
}

Objective-C

[self.interstitial presentFromRootViewController:self];

পেশাদার পদ্ধতি

আপনার অ্যাপের জন্য ইন্টারস্টিশিয়াল বিজ্ঞাপন সঠিক ধরনের বিজ্ঞাপন কিনা তা বিবেচনা করুন।
ইন্টারস্টিশিয়াল বিজ্ঞাপন সেইসব অ্যাপে সবচেয়ে ভাল কাজ করে যেগুলিতে স্বাভাবিক ট্রানজিশন পয়েন্ট আছে। অ্যাপের মধ্যে কোনও টাস্ক শেষ হলে, যেমন ছবি শেয়ার করা বা গেমের কোনও লেভেল সম্পূর্ণ করা, এই ধরনের পয়েন্ট তৈরি করে। ব্যবহারকারী যেহেতু অ্যাকশনে বিরতি আশা করেন, তাই তার অভিজ্ঞতা বিঘ্নিত না করেই পৃষ্ঠা মধ্যকালিন বিজ্ঞাপন দেখানো সহজ। আপনার অ্যাপের ওয়ার্কফ্লোতে কোন কোন জায়গায় ইন্টারস্টিশিয়াল বিজ্ঞাপন দেখাবেন এবং ব্যবহারকারী কীভাবে প্রতিক্রিয়া জানাতে পারেন তা বিবেচনা করতে ভুলবেন না।
পৃষ্ঠা মধ্যবর্তী বিজ্ঞাপন দেখানোর সময় অ্যাকশন পজ করতে ভুলবেন না।
বিভিন্ন ধরনের ইন্টারস্টিশিয়াল বিজ্ঞাপন আছে: টেক্সট, ছবি, ভিডিও এবং আরও অনেক কিছু। আপনার অ্যাপে ইন্টারস্টিশিয়াল বিজ্ঞাপন দেখানোর সময়, বিজ্ঞাপনটি যাতে কিছু রিসোর্স ব্যবহার করতে পারে তার জন্য অ্যাপের সেই রিসোর্স ব্যবহার করা বন্ধ করা গুরুত্বপূর্ণ। যেমন, আপনি যখন ইন্টারস্টিশিয়াল বিজ্ঞাপন দেখানোর জন্য কল করেন, তখন আপনার অ্যাপের মাধ্যমে তৈরি হওয়া যেকোনও অডিও আউটপুট পজ করতে ভুলবেন না। আপনি adDidDismissFullScreenContent: ইভেন্ট হ্যান্ডলারে সাউন্ড চালানো আবার শুরু করতে পারবেন, যা ব্যবহারকারী বিজ্ঞাপনের সাথে ইন্টার‍্যাক্ট করা শেষ করলে চালু হবে। এছাড়াও, বিজ্ঞাপন দেখানোর সময় সাময়িকভাবে যেকোনও তীব্র কম্পিউটেশন টাস্ক (যেমন গেম লুপ) বন্ধ করার কথা বিবেচনা করুন। এটি নিশ্চিত করবে যে ব্যবহারকারী স্লো বা রেসপন্স না করা গ্রাফিক্স বা থেমে থেমে চলা ভিডিওর অভিজ্ঞতা পাবেন না।
লোড হওয়ার জন্য পর্যাপ্ত সময় দিন।
ইন্টারস্টিশিয়াল বিজ্ঞাপন সঠিক সময়ে দেখানো যেমন গুরুত্বপূর্ণ, তেমনই ব্যবহারকারীকে যাতে বিজ্ঞাপন লোড হওয়ার জন্য অপেক্ষা করতে না হয়, সেটিও নিশ্চিত করা প্রয়োজন। আপনি বিজ্ঞাপন দেখানোর আগেই সেটি লোড করে রাখলে, ইন্টারস্টিশিয়াল বিজ্ঞাপন দেখানোর সময় এলে, আপনার অ্যাপে সেটি সম্পূর্ণ লোড হয়ে প্রস্তুত থাকবে।
ব্যবহারকারীকে অনেক বেশি বিজ্ঞাপন দেখাবেন না।
আপনার অ্যাপে ইন্টারস্টিশিয়াল বিজ্ঞাপনের ফ্রিকোয়েন্সি বাড়ানো হলে, তা উপার্জন বাড়ানোর একটি দুর্দান্ত উপায় বলে মনে হতে পারে, তবে এটি ব্যবহারকারীর অভিজ্ঞতাকে খারাপ করতে পারে এবং ক্লিক-থ্রু রেট কমিয়ে দিতে পারে। ব্যবহারকারীরা যাতে ঘন ঘন বাধা না পান এবং আপনার অ্যাপ ব্যবহার করে আনন্দ পান তা নিশ্চিত করুন।
ইন্টারস্টিশিয়াল বিজ্ঞাপন দেখানোর জন্য লোড সম্পূর্ণ হওয়ার কলব্যাক ব্যবহার করবেন না।
এর ফলে ব্যবহারকারীর অভিজ্ঞতা খারাপ হতে পারে। পরিবর্তে, বিজ্ঞাপন দেখানোর আগে সেটি প্রি-লোড করুন। তারপর, canPresentFromRootViewController:error: পদ্ধতিটি GADInterstitialAd-এ চেক করে দেখুন যে এটি দেখানোর জন্য রেডি কিনা।

অতিরিক্ত রিসোর্স

GitHub-এ উদাহরণ

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

মোবাইল বিজ্ঞাপন গ্যারেজ ভিডিও টিউটোরিয়াল

সাফল্যের কাহিনী

পরবর্তী ধাপ