ইন্টারস্টিশিয়াল বিজ্ঞাপন হল পূর্ণ-স্ক্রিন বিজ্ঞাপন যা ব্যবহারকারী দ্বারা বন্ধ না করা পর্যন্ত একটি অ্যাপের ইন্টারফেসকে ঢেকে রাখে। এগুলি সাধারণত একটি অ্যাপের প্রবাহের স্বাভাবিক পরিবর্তন বিন্দুতে প্রদর্শিত হয়, যেমন কার্যকলাপের মধ্যে বা একটি গেমের স্তরের মধ্যে বিরতির সময়। যখন একটি অ্যাপ একটি ইন্টারস্টিশিয়াল বিজ্ঞাপন দেখায়, তখন ব্যবহারকারীর বিজ্ঞাপনটিতে ট্যাপ করে তার গন্তব্যে যেতে অথবা এটি বন্ধ করে অ্যাপে ফিরে যাওয়ার বিকল্প থাকে। কেস স্টাডি ।
এই নির্দেশিকাটি আপনাকে দেখায় কিভাবে একটি iOS অ্যাপে ইন্টারস্টিশিয়াল বিজ্ঞাপন সংহত করতে হয়।
পূর্বশর্ত
- শুরু করুন নির্দেশিকাটি সম্পূর্ণ করুন।
 
সর্বদা পরীক্ষামূলক বিজ্ঞাপন দিয়ে পরীক্ষা করুন
আপনার অ্যাপ তৈরি এবং পরীক্ষা করার সময়, লাইভ, প্রোডাকশন বিজ্ঞাপনের পরিবর্তে পরীক্ষামূলক বিজ্ঞাপন ব্যবহার করুন। এটি না করলে আপনার অ্যাকাউন্ট সাসপেন্ড হতে পারে।
 পরীক্ষামূলক বিজ্ঞাপন লোড করার সবচেয়ে সহজ উপায় হল iOS ইন্টারস্টিশিয়ালের জন্য আমাদের ডেডিকেটেড পরীক্ষামূলক বিজ্ঞাপন ইউনিট আইডি ব্যবহার করা:
 /21775744923/example/interstitial
এটি বিশেষভাবে প্রতিটি অনুরোধের জন্য পরীক্ষামূলক বিজ্ঞাপন ফেরত দেওয়ার জন্য কনফিগার করা হয়েছে এবং কোডিং, পরীক্ষা এবং ডিবাগিংয়ের সময় আপনি এটি আপনার নিজস্ব অ্যাপে ব্যবহার করতে পারেন। আপনার অ্যাপ প্রকাশ করার আগে এটি আপনার নিজস্ব বিজ্ঞাপন ইউনিট আইডি দিয়ে প্রতিস্থাপন করুন।
মোবাইল বিজ্ঞাপন SDK-এর পরীক্ষামূলক বিজ্ঞাপনগুলি কীভাবে কাজ করে সে সম্পর্কে আরও তথ্যের জন্য, পরীক্ষামূলক বিজ্ঞাপন দেখুন।
বাস্তবায়ন
ইন্টারস্টিশিয়াল বিজ্ঞাপন সংহত করার প্রধান ধাপগুলি হল:
- একটি বিজ্ঞাপন লোড করুন।
 - কলব্যাকের জন্য নিবন্ধন করুন।
 - বিজ্ঞাপনটি প্রদর্শন করুন।
 
একটি বিজ্ঞাপন লোড করুন
 GAMInterstitialAd ক্লাসে load(adUnitID:request) পদ্ধতি ব্যবহার করে একটি বিজ্ঞাপন লোড করা হয়। 
সুইফট
fileprivate func loadInterstitial() async {
  do {
    interstitial = try await AdManagerInterstitialAd.load(
      with: "/21775744923/example/interstitial", request: AdManagerRequest())
    interstitial?.fullScreenContentDelegate = self
  } catch {
    print("Failed to load interstitial ad with error: \(error.localizedDescription)")
  }
}
সুইফটইউআই
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)")
    }
  }
অবজেক্টিভ-সি
[GAMInterstitialAd loadWithAdManagerAdUnitID:@"/21775744923/example/interstitial"
                                     request:[GAMRequest request]
                           completionHandler:^(GAMInterstitialAd *ad, NSError *error) {
                             if (error) {
                               NSLog(@"Failed to load interstitial ad with error: %@",
                                     [error localizedDescription]);
                               return;
                             }
                             self.interstitial = ad;
                             self.interstitial.fullScreenContentDelegate = self;
                           }];
কলব্যাকের জন্য নিবন্ধন করুন
 উপস্থাপনা ইভেন্টের বিজ্ঞপ্তি পেতে, আপনাকে অবশ্যই GADFullScreenContentDelegate ফেরত পাঠানো বিজ্ঞাপনের fullScreenContentDelegate প্রপার্টিতে অ্যাসাইন করতে হবে: 
সুইফট
interstitial?.fullScreenContentDelegate = self
সুইফটইউআই
interstitialAd?.fullScreenContentDelegate = self
অবজেক্টিভ-সি
self.interstitial.fullScreenContentDelegate = self;
 GADFullScreenContentDelegate প্রোটোকল বিজ্ঞাপনটি সফলভাবে উপস্থাপন করা হলে বা ব্যর্থ হলে এবং কখন এটি বাতিল করা হয় তার জন্য কলব্যাক পরিচালনা করে। নিম্নলিখিত কোডটি প্রোটোকলটি কীভাবে বাস্তবায়ন করতে হয় তা দেখায়: 
সুইফট
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
}
সুইফটইউআই
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
}
অবজেক্টিভ-সি
- (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;
}
 GAMInterstitialAd হল একটি একবার ব্যবহারযোগ্য অবজেক্ট। এর মানে হল একবার একটি ইন্টারস্টিশিয়াল বিজ্ঞাপন দেখানো হলে, এটি আর দেখানো যাবে না। সবচেয়ে ভালো পদ্ধতি হল GADFullScreenContentDelegate এ adDidDismissFullScreenContent: পদ্ধতিতে আরেকটি ইন্টারস্টিশিয়াল বিজ্ঞাপন লোড করা যাতে পূর্ববর্তীটি খারিজ হওয়ার সাথে সাথে পরবর্তী ইন্টারস্টিশিয়াল বিজ্ঞাপনটি লোড হতে শুরু করে।
বিজ্ঞাপনটি প্রদর্শন করুন
একটি অ্যাপের প্রবাহে স্বাভাবিক বিরতির সময় ইন্টারস্টিশিয়ালগুলি প্রদর্শিত হওয়া উচিত। একটি গেমের স্তরের মধ্যে একটি ভাল উদাহরণ, অথবা ব্যবহারকারী একটি কাজ সম্পন্ন করার পরে।
সুইফট
ad.present(from: self!)
সুইফটইউআই
বিজ্ঞাপনটি কখন দেখানো হবে তা নির্ধারণ করতে ভিউতে 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)
}
অবজেক্টিভ-সি
[self.interstitial presentFromRootViewController:self];
সেরা অনুশীলন
- আপনার অ্যাপের জন্য ইন্টারস্টিশিয়াল বিজ্ঞাপনগুলি সঠিক ধরণের বিজ্ঞাপন কিনা তা বিবেচনা করুন।
 - ইন্টারস্টিশিয়াল বিজ্ঞাপনগুলি প্রাকৃতিক ট্রানজিশন পয়েন্ট সহ অ্যাপগুলিতে সবচেয়ে ভালো কাজ করে। একটি অ্যাপের মধ্যে কোনও কাজের সমাপ্তি, যেমন একটি ছবি শেয়ার করা বা একটি গেম লেভেল সম্পূর্ণ করা, এই ধরণের একটি বিন্দু তৈরি করে। যেহেতু ব্যবহারকারী অ্যাকশনে বিরতি আশা করেন, তাই তাদের অভিজ্ঞতা ব্যাহত না করে একটি ইন্টারস্টিশিয়াল বিজ্ঞাপন উপস্থাপন করা সহজ। আপনার অ্যাপের কর্মপ্রবাহের কোন পয়েন্টগুলিতে আপনি ইন্টারস্টিশিয়াল বিজ্ঞাপন প্রদর্শন করবেন এবং ব্যবহারকারী কীভাবে প্রতিক্রিয়া জানাবেন তা বিবেচনা করুন।
 - ইন্টারস্টিশিয়াল বিজ্ঞাপন প্রদর্শনের সময় অ্যাকশনটি থামাতে ভুলবেন না।
 -  বিভিন্ন ধরণের ইন্টারস্টিশিয়াল বিজ্ঞাপন রয়েছে: টেক্সট, ছবি, ভিডিও এবং আরও অনেক কিছু। এটি নিশ্চিত করা গুরুত্বপূর্ণ যে যখন আপনার অ্যাপ একটি ইন্টারস্টিশিয়াল বিজ্ঞাপন প্রদর্শন করে, তখন বিজ্ঞাপনটি সেগুলির সুবিধা নেওয়ার জন্য কিছু রিসোর্সের ব্যবহার স্থগিত করে। উদাহরণস্বরূপ, যখন আপনি একটি ইন্টারস্টিশিয়াল বিজ্ঞাপন প্রদর্শনের জন্য কল করেন, তখন আপনার অ্যাপ দ্বারা উৎপাদিত যেকোনো অডিও আউটপুট স্থগিত করতে ভুলবেন না। আপনি 
adDidDismissFullScreenContent:ইভেন্ট হ্যান্ডলারে শব্দ বাজানো পুনরায় শুরু করতে পারেন, যা ব্যবহারকারী বিজ্ঞাপনের সাথে ইন্টারঅ্যাক্ট করা শেষ করার পরে চালু হবে। এছাড়াও, বিজ্ঞাপনটি প্রদর্শিত হওয়ার সময় যেকোনো তীব্র গণনার কাজ (যেমন একটি গেম লুপ) সাময়িকভাবে বন্ধ করার কথা বিবেচনা করুন। এটি নিশ্চিত করবে যে ব্যবহারকারী ধীর বা প্রতিক্রিয়াহীন গ্রাফিক্স বা তোতলানো ভিডিওর অভিজ্ঞতা পাবেন না। - পর্যাপ্ত লোডিং সময় দিন।
 - ঠিক যেমন সঠিক সময়ে ইন্টারস্টিশিয়াল বিজ্ঞাপন প্রদর্শন করা গুরুত্বপূর্ণ, তেমনি ব্যবহারকারীকে লোড হওয়ার জন্য অপেক্ষা করতে না হওয়াও গুরুত্বপূর্ণ। বিজ্ঞাপনটি দেখানোর আগে আগে থেকে লোড করলে নিশ্চিত করা যায় যে আপনার অ্যাপে একটি সম্পূর্ণ লোড করা ইন্টারস্টিশিয়াল বিজ্ঞাপন প্রদর্শিত হওয়ার সময় প্রস্তুত রয়েছে।
 - ব্যবহারকারীদের বিজ্ঞাপন দিয়ে ভরে দেবেন না।
 - আপনার অ্যাপে ইন্টারস্টিশিয়াল বিজ্ঞাপনের ফ্রিকোয়েন্সি বাড়ানো রাজস্ব বৃদ্ধির একটি দুর্দান্ত উপায় বলে মনে হতে পারে, তবে এটি ব্যবহারকারীর অভিজ্ঞতা হ্রাস করতে পারে এবং ক্লিকথ্রু রেটও কমিয়ে দিতে পারে। নিশ্চিত করুন যে ব্যবহারকারীরা এত ঘন ঘন বাধাগ্রস্ত না হন যে তারা আর আপনার অ্যাপ ব্যবহার উপভোগ করতে পারবেন না।
 - ইন্টারস্টিশিয়াল দেখানোর জন্য লোড কমপ্লিশন কলব্যাক ব্যবহার করবেন না।
 -  এর ফলে ব্যবহারকারীর অভিজ্ঞতা খারাপ হতে পারে। পরিবর্তে, বিজ্ঞাপনটি দেখানোর আগে এটি প্রি-লোড করুন। তারপর 
GAMInterstitialAdএcanPresentFromRootViewController:error:পদ্ধতিটি পরীক্ষা করে দেখুন যে এটি দেখানোর জন্য প্রস্তুত কিনা। 
GitHub-এ উদাহরণ
আপনার পছন্দের ভাষায় সম্পূর্ণ ইন্টারস্টিশিয়াল বিজ্ঞাপনের উদাহরণ দেখুন:
পরবর্তী পদক্ষেপ
- বিজ্ঞাপন লক্ষ্যবস্তু এবং ইন্টারস্টিশিয়াল বিজ্ঞাপন নির্দেশিকা সম্পর্কে আরও জানুন।
 - ব্যবহারকারীর গোপনীয়তা সম্পর্কে আরও জানুন।