ইন্টারস্টিশিয়াল বিজ্ঞাপন হল পূর্ণ-স্ক্রীন বিজ্ঞাপন যা ব্যবহারকারীর দ্বারা বন্ধ না হওয়া পর্যন্ত একটি অ্যাপের ইন্টারফেস কভার করে। এগুলি সাধারণত একটি অ্যাপের প্রবাহের প্রাকৃতিক ট্রানজিশন পয়েন্টে প্রদর্শিত হয়, যেমন কার্যকলাপের মধ্যে বা একটি গেমের স্তরগুলির মধ্যে বিরতির সময়। যখন একটি অ্যাপ একটি ইন্টারস্টিশিয়াল বিজ্ঞাপন দেখায়, ব্যবহারকারীর পছন্দ থাকে বিজ্ঞাপনটিতে ট্যাপ করে তার গন্তব্যে চালিয়ে যেতে বা এটি বন্ধ করে অ্যাপে ফিরে যেতে পারে। কেস স্টাডি ।
এই নির্দেশিকা আপনাকে দেখায় কিভাবে একটি iOS অ্যাপে ইন্টারস্টিশিয়াল বিজ্ঞাপনগুলিকে একীভূত করতে হয়।
পূর্বশর্ত
- Google মোবাইল বিজ্ঞাপন SDK 8.0.0 বা উচ্চতর।
- শুরু করুন গাইডটি সম্পূর্ণ করুন।
সর্বদা পরীক্ষার বিজ্ঞাপন দিয়ে পরীক্ষা করুন
আপনার অ্যাপ তৈরি এবং পরীক্ষা করার সময়, নিশ্চিত করুন যে আপনি লাইভ, প্রোডাকশন বিজ্ঞাপনের পরিবর্তে পরীক্ষামূলক বিজ্ঞাপন ব্যবহার করছেন। এটি করতে ব্যর্থ হলে আপনার অ্যাকাউন্ট স্থগিত হতে পারে।
পরীক্ষার বিজ্ঞাপন লোড করার সবচেয়ে সহজ উপায় হল iOS ইন্টারস্টিশিয়ালের জন্য আমাদের ডেডিকেটেড টেস্ট বিজ্ঞাপন ইউনিট আইডি ব্যবহার করা:
/21775744923/example/interstitial
প্রতিটি অনুরোধের জন্য পরীক্ষার বিজ্ঞাপনগুলি ফেরত দেওয়ার জন্য এটি বিশেষভাবে কনফিগার করা হয়েছে এবং কোডিং, পরীক্ষা এবং ডিবাগ করার সময় আপনি এটিকে আপনার নিজস্ব অ্যাপে ব্যবহার করতে পারবেন৷ আপনার অ্যাপ প্রকাশ করার আগে শুধু নিশ্চিত করুন যে আপনি এটিকে আপনার নিজের বিজ্ঞাপন ইউনিট আইডি দিয়ে প্রতিস্থাপন করেছেন।
মোবাইল বিজ্ঞাপন SDK-এর পরীক্ষার বিজ্ঞাপনগুলি কীভাবে কাজ করে সে সম্পর্কে আরও তথ্যের জন্য, পরীক্ষা বিজ্ঞাপনগুলি দেখুন।
বাস্তবায়ন
ইন্টারস্টিশিয়াল বিজ্ঞাপনগুলিকে সংহত করার প্রধান পদক্ষেপগুলি হল:
- একটি বিজ্ঞাপন লোড করুন.
- কলব্যাকের জন্য নিবন্ধন করুন।
- বিজ্ঞাপন প্রদর্শন করুন এবং পুরস্কার ইভেন্ট পরিচালনা করুন.
একটি বিজ্ঞাপন লোড করুন
GAMInterstitialAd
ক্লাসে load(adUnitID:request)
পদ্ধতি ব্যবহার করে একটি বিজ্ঞাপন লোড করা হয়।
সুইফট
import GoogleMobileAds
import UIKit
class ViewController: UIViewController {
private var interstitial: GAMInterstitialAd?
override func viewDidLoad() {
super.viewDidLoad()
Task {
do {
interstitial = try await GAMInterstitialAd.load(
withAdUnitID: "/21775744923/example/interstitial", request: GAMRequest())
} catch {
print("Failed to load interstitial ad with error: \(error.localizedDescription)")
}
}
}
}
সুইফটইউআই
import GoogleMobileAds
class InterstitialViewModel: NSObject, GADFullScreenContentDelegate {
private var interstitialAd: GADInterstitialAd?
func loadAd() async {
do {
interstitialAd = try await GADInterstitialAd.load(
withAdUnitID: "ca-app-pub-3940256099942544/4411468910", request: GADRequest())
interstitialAd?.fullScreenContentDelegate = self
} catch {
print("Failed to load interstitial ad with error: \(error.localizedDescription)")
}
}
উদ্দেশ্য-C
@import GoogleMobileAds;
@import UIKit;
@interface ViewController ()
@property(nonatomic, strong) GAMInterstitialAd *interstitial;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
GAMRequest *request = [GAMRequest request];
[GAMInterstitialAd loadWithAdManagerAdUnitID:@"/21775744923/example/interstitial"
request:request
completionHandler:^(GAMInterstitialAd *ad, NSError *error) {
if (error) {
NSLog(@"Failed to load interstitial ad with error: %@", [error localizedDescription]);
return;
}
self.interstitial = ad;
}];
}
কলব্যাকের জন্য নিবন্ধন করুন
উপস্থাপনা ইভেন্টের জন্য বিজ্ঞপ্তি পেতে, আপনাকে অবশ্যই GADFullScreenContentDelegate
প্রোটোকল প্রয়োগ করতে হবে এবং ফেরত বিজ্ঞাপনের fullScreenContentDelegate
সম্পত্তিতে এটি বরাদ্দ করতে হবে। GADFullScreenContentDelegate
প্রোটোকল কখন বিজ্ঞাপনটি সফলভাবে বা অসফলভাবে উপস্থাপন করে এবং কখন এটি খারিজ করা হয় তার জন্য কলব্যাক পরিচালনা করে। নিম্নলিখিত কোডটি দেখায় কিভাবে প্রোটোকল প্রয়োগ করতে হয় এবং এটি বিজ্ঞাপনে বরাদ্দ করতে হয়:
সুইফট
import GoogleMobileAds
import UIKit
class ViewController: UIViewController, GADFullScreenContentDelegate {
private var interstitial: GAMInterstitialAd?
override func viewDidLoad() {
super.viewDidLoad()
Task {
do {
interstitial = try await GAMInterstitialAd.load(
withAdUnitID: "/21775744923/example/interstitial", request: GAMRequest())
interstitial?.fullScreenContentDelegate = self
} catch {
print("Failed to load interstitial ad with error: \(error.localizedDescription)")
}
}
}
/// Tells the delegate that the ad failed to present full screen content.
func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
print("Ad did fail to present full screen content.")
}
/// Tells the delegate that the ad will present full screen content.
func adWillPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) {
print("Ad will present full screen content.")
}
/// Tells the delegate that the ad dismissed full screen content.
func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
print("Ad did dismiss full screen content.")
}
}
সুইফটইউআই
প্রত্যাবর্তিত বিজ্ঞাপনে fullScreenContentDelegate
সম্পত্তি বরাদ্দ করুন:
interstitialAd?.fullScreenContentDelegate = self
প্রোটোকল বাস্তবায়ন করুন:
func adDidRecordImpression(_ ad: GADFullScreenPresentingAd) {
print("\(#function) called")
}
func adDidRecordClick(_ ad: GADFullScreenPresentingAd) {
print("\(#function) called")
}
func ad(
_ ad: GADFullScreenPresentingAd,
didFailToPresentFullScreenContentWithError error: Error
) {
print("\(#function) called")
}
func adWillPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) {
print("\(#function) called")
}
func adWillDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
print("\(#function) called")
}
func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
print("\(#function) called")
// Clear the interstitial ad.
interstitialAd = nil
}
উদ্দেশ্য-C
@import GoogleMobileAds;
@import UIKit;
@interface ViewController () <GADFullScreenContentDelegate>
@property(nonatomic, strong) GAMInterstitialAd *interstitial;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
GAMRequest *request = [GAMRequest request];
[GAMInterstitialAd loadWithAdManagerAdUnitID:@"/21775744923/example/interstitial"
request: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;
}];
}
/// Tells the delegate that the ad failed to present full screen content.
- (void)ad:(nonnull id<GADFullScreenPresentingAd>)ad
didFailToPresentFullScreenContentWithError:(nonnull NSError *)error {
NSLog(@"Ad did fail to present full screen content.");
}
/// Tells the delegate that the ad will present full screen content.
- (void)adWillPresentFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
NSLog(@"Ad will present full screen content.");
}
/// Tells the delegate that the ad dismissed full screen content.
- (void)adDidDismissFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
NSLog(@"Ad did dismiss full screen content.");
}
GAMInterstitialAd
হল এক-বার ব্যবহার করা বস্তু। এর মানে হল একটি ইন্টারস্টিশিয়াল বিজ্ঞাপন একবার দেখানো হলে, এটি আবার দেখানো যাবে না। একটি সর্বোত্তম অভ্যাস হল GADFullScreenContentDelegate
এ adDidDismissFullScreenContent:
পদ্ধতিতে অন্য একটি ইন্টারস্টিশিয়াল বিজ্ঞাপন লোড করা যাতে পূর্ববর্তীটি খারিজ হওয়ার সাথে সাথে পরবর্তী ইন্টারস্টিশিয়াল বিজ্ঞাপনটি লোড হতে শুরু করে।
বিজ্ঞাপনটি প্রদর্শন করুন
একটি অ্যাপের প্রবাহে স্বাভাবিক বিরতির সময় ইন্টারস্টিশিয়ালগুলি প্রদর্শিত হওয়া উচিত। একটি গেমের স্তরগুলির মধ্যে একটি ভাল উদাহরণ, বা ব্যবহারকারী একটি টাস্ক সম্পূর্ণ করার পরে।
সুইফট
guard let interstitial = interstitial else {
return print("Ad wasn't ready.")
}
// The UIViewController parameter is an optional.
interstitial.present(fromRootViewController: nil)
সুইফটইউআই
বিজ্ঞাপনটি কখন দেখাতে হবে তা নির্ধারণ করতে ভিউতে 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(fromRootViewController: nil)
}
উদ্দেশ্য-C
if (self.interstitial) {
// The UIViewController parameter is nullable.
[self.interstitial presentFromRootViewController:nil];
} else {
NSLog(@"Ad wasn't ready");
}
সর্বোত্তম অনুশীলন
- ইন্টারস্টিশিয়াল বিজ্ঞাপনগুলি আপনার অ্যাপের জন্য সঠিক ধরনের বিজ্ঞাপন কিনা তা বিবেচনা করুন।
- ইন্টারস্টিশিয়াল বিজ্ঞাপনগুলি প্রাকৃতিক ট্রানজিশন পয়েন্ট সহ অ্যাপগুলিতে সবচেয়ে ভাল কাজ করে। একটি অ্যাপের মধ্যে একটি টাস্কের সমাপ্তি, যেমন একটি চিত্র ভাগ করা বা একটি গেমের স্তর সম্পূর্ণ করা, এমন একটি বিন্দু তৈরি করে। যেহেতু ব্যবহারকারী কর্মে বিরতির আশা করছেন, তাই তাদের অভিজ্ঞতা ব্যাহত না করে একটি ইন্টারস্টিশিয়াল বিজ্ঞাপন উপস্থাপন করা সহজ। আপনার অ্যাপের কর্মপ্রবাহের কোন পয়েন্টে আপনি ইন্টারস্টিশিয়াল বিজ্ঞাপনগুলি প্রদর্শন করবেন এবং ব্যবহারকারী কীভাবে প্রতিক্রিয়া জানাবে তা আপনি বিবেচনা করেছেন তা নিশ্চিত করুন৷
- একটি ইন্টারস্টিশিয়াল বিজ্ঞাপন প্রদর্শন করার সময় ক্রিয়াটি বিরতি দিতে ভুলবেন না৷
- বিভিন্ন ধরনের ইন্টারস্টিশিয়াল বিজ্ঞাপন রয়েছে: পাঠ্য, ছবি, ভিডিও এবং আরও অনেক কিছু। এটি নিশ্চিত করা গুরুত্বপূর্ণ যে যখন আপনার অ্যাপ একটি ইন্টারস্টিশিয়াল বিজ্ঞাপন প্রদর্শন করে, তখন এটি বিজ্ঞাপনটিকে সেগুলির সুবিধা নেওয়ার জন্য কিছু সংস্থানগুলির ব্যবহার স্থগিত করে। উদাহরণস্বরূপ, যখন আপনি একটি ইন্টারস্টিশিয়াল বিজ্ঞাপন প্রদর্শন করার জন্য কল করেন, তখন আপনার অ্যাপ দ্বারা উত্পাদিত যেকোন অডিও আউটপুটকে বিরতি দিতে ভুলবেন না। আপনি
adDidDismissFullScreenContent:
ইভেন্ট হ্যান্ডলারে সাউন্ড বাজানো আবার শুরু করতে পারেন, যেটি ব্যবহারকারী বিজ্ঞাপনের সাথে ইন্টারঅ্যাক্ট করা শেষ হলে ডাকা হবে। এছাড়াও, বিজ্ঞাপনটি প্রদর্শিত হওয়ার সময় অস্থায়ীভাবে কোনো তীব্র গণনার কাজ (যেমন একটি গেম লুপ) বন্ধ করার কথা বিবেচনা করুন। এটি নিশ্চিত করবে যে ব্যবহারকারী ধীরগতির বা প্রতিক্রিয়াশীল গ্রাফিক্স বা তোতলানো ভিডিও অনুভব করবেন না। - পর্যাপ্ত লোডিং সময়ের জন্য অনুমতি দিন।
- আপনি একটি উপযুক্ত সময়ে ইন্টারস্টিশিয়াল বিজ্ঞাপনগুলি প্রদর্শন করছেন তা নিশ্চিত করা যেমন গুরুত্বপূর্ণ, তেমনি ব্যবহারকারীকে সেগুলি লোড করার জন্য অপেক্ষা করতে হবে না তা নিশ্চিত করাও গুরুত্বপূর্ণ৷ আপনি দেখানোর ইচ্ছা করার আগে বিজ্ঞাপনটি আগে থেকে লোড করা নিশ্চিত করতে পারে যে আপনার অ্যাপে একটি সম্পূর্ণরূপে লোড হওয়া ইন্টারস্টিশিয়াল বিজ্ঞাপন রয়েছে যখন একটি প্রদর্শনের সময় আসে।
- বিজ্ঞাপন দিয়ে ব্যবহারকারীকে প্লাবিত করবেন না।
- যদিও আপনার অ্যাপে ইন্টারস্টিশিয়াল বিজ্ঞাপনের ফ্রিকোয়েন্সি বাড়ানোকে রাজস্ব বাড়ানোর একটি দুর্দান্ত উপায় বলে মনে হতে পারে, এটি ব্যবহারকারীর অভিজ্ঞতা এবং কম ক্লিকথ্রু রেটকেও হ্রাস করতে পারে। নিশ্চিত করুন যে ব্যবহারকারীরা এত ঘন ঘন বাধাগ্রস্ত হয় না যে তারা আর আপনার অ্যাপের ব্যবহার উপভোগ করতে পারবে না।
- ইন্টারস্টিশিয়াল দেখানোর জন্য লোড কমপ্লিশন কলব্যাক ব্যবহার করবেন না।
- এটি একটি দুর্বল ব্যবহারকারীর অভিজ্ঞতার কারণ হতে পারে। পরিবর্তে, আপনাকে দেখানোর আগে বিজ্ঞাপনটি প্রি-লোড করুন। তারপর এটি দেখানোর জন্য প্রস্তুত কিনা তা জানতে
GAMInterstitialAd
এcanPresentFromRootViewController:error:
পদ্ধতিটি দেখুন।
গিটহাবের উদাহরণ
আপনার পছন্দের ভাষায় সম্পূর্ণ ইন্টারস্টিশিয়াল বিজ্ঞাপনের উদাহরণগুলি দেখুন:
পরবর্তী পদক্ষেপ
- বিজ্ঞাপন টার্গেটিং এবং ইন্টারস্টিশিয়াল বিজ্ঞাপন নির্দেশিকা সম্পর্কে আরও জানুন।
- ব্যবহারকারীর গোপনীয়তা সম্পর্কে আরও জানুন।