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