ইন্টারস্টিশিয়াল বিজ্ঞাপন হল ফুল-স্ক্রিন বিজ্ঞাপন যা ব্যবহারকারী বন্ধ না করা পর্যন্ত অ্যাপের ইন্টারফেস জুড়ে দেখানো হয়। এগুলি সাধারণত কোনও অ্যাপের স্বাভাবিক ট্রানজিশন পয়েন্টে দেখানো হয়, যেমন দুটি অ্যাক্টিভিটির মধ্যে বা কোনও গেমের লেভেল পরিবর্তন হওয়ার সময়। কোনও অ্যাপ ইন্টারস্টিশিয়াল বিজ্ঞাপন দেখালে, ব্যবহারকারীর কাছে দুটি বিকল্প থাকে: হয় বিজ্ঞাপনে ট্যাপ করে গন্তব্যে যাওয়া অথবা সেটি বন্ধ করে অ্যাপে ফিরে আসা। কেস স্টাডি।
iOS অ্যাপে কীভাবে ইন্টারস্টিশিয়াল বিজ্ঞাপন ইন্টিগ্রেট করতে হয় তা এই গাইড থেকে জানতে পারবেন।
পূর্বশর্ত
চালিয়ে যাওয়ার আগে, Google Mobile Ads SDK সেট-আপ করুন।
সবসময় টেস্ট বিজ্ঞাপন দিয়ে পরীক্ষা করুন
আপনার অ্যাপ তৈরি ও পরীক্ষা করার সময়, লাইভ, প্রোডাকশন বিজ্ঞাপনের পরিবর্তে পরীক্ষামূলক বিজ্ঞাপন ব্যবহার করছেন কিনা তা ভালো করে দেখে নিন। এটি না করলে আপনার অ্যাকাউন্ট সাসপেন্ড করা হতে পারে।
টেস্ট বিজ্ঞাপন লোড করার সবচেয়ে সহজ উপায় হল iOS ইন্টারস্টিশিয়ালের জন্য আমাদের নির্দিষ্ট টেস্ট বিজ্ঞাপন ইউনিট আইডি
ব্যবহার করা:
ca-app-pub-3940256099942544/4411468910
প্রতিটি অনুরোধের জন্য পরীক্ষামূলক বিজ্ঞাপন দেখানোর জন্য এটি বিশেষভাবে কনফিগার করা হয়েছে এবং কোডিং, টেস্টিং ও ডিবাগিং করার সময় আপনি নিজের অ্যাপে এটি ব্যবহার করতে পারবেন। তবে, অ্যাপ প্রকাশ করার আগে আপনার নিজের বিজ্ঞাপন ইউনিট আইডি দিয়ে এটি পরিবর্তন করতে ভুলবেন না।
Google Mobile Ads SDKপরীক্ষামূলক বিজ্ঞাপন সম্পর্কে বিস্তারিত জানতে, পরীক্ষামূলক বিজ্ঞাপন চালু করুন।
প্রয়োগ
ইন্টারস্টিশিয়াল বিজ্ঞাপন ইন্টিগ্রেট করার মূল ধাপগুলি হল:
- একটি বিজ্ঞাপন লোড করুন।
- কলব্যাকের জন্য রেজিস্টার করুন।
- বিজ্ঞাপনটি দেখান।
বিজ্ঞাপন লোড করা
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 হল একবার ব্যবহারযোগ্য অবজেক্ট। এর
অর্থ হল, একবার ইন্টারস্টিশিয়াল বিজ্ঞাপন দেখানো হয়ে গেলে, সেটি আর দেখানো যাবে না। adDidDismissFullScreenContent:-এ GADFullScreenContentDelegate মেথডে আরেকটি ইন্টারস্টিশিয়াল বিজ্ঞাপন লোড করা
একটি সেরা
পদ্ধতি, যাতে আগের বিজ্ঞাপনটি ডিসমিস করার সাথে সাথেই
পরবর্তী ইন্টারস্টিশিয়াল বিজ্ঞাপন লোড করা শুরু হয়ে যায়।
বিজ্ঞাপন দেখানো
অ্যাপের ফ্লোতে স্বাভাবিক বিরতির সময় ইন্টারস্টিশিয়াল বিজ্ঞাপন দেখানো উচিত। গেমের লেভেল পরিবর্তন হওয়ার সময় বা ব্যবহারকারী কোনও টাস্ক সম্পূর্ণ করার পরে ইন্টারস্টিশিয়াল বিজ্ঞাপন দেখানো যেতে পারে।
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-এ উদাহরণ
আপনার পছন্দসই ভাষায় সম্পূর্ণ ইন্টারস্টিশিয়াল বিজ্ঞাপনের উদাহরণ দেখুন:
Mobile Ads Garage ভিডিও টিউটোরিয়াল
সাফল্যের কাহিনী
পরবর্তী ধাপ
- আপনি আগে থেকে না করে থাকলে, AdMob UI-তে নিজের ইন্টারস্টিশিয়াল বিজ্ঞাপন ইউনিট তৈরি করুন।
- বিজ্ঞাপন টার্গেটিং এবং ইন্টারস্টিশিয়াল বিজ্ঞাপন সংক্রান্ত নির্দেশিকা সম্পর্কে আরও জানুন।
- ব্যবহারকারীর গোপনীয়তা সম্পর্কে আরও জানুন।