ইন্টারস্টিশিয়াল বিজ্ঞাপন হল ফুল-স্ক্রিন বিজ্ঞাপন যা অ্যাপ ইন্টারফেসকে কভার করে। আপনি আপনার অ্যাপের স্বাভাবিক ট্রানজিশন পয়েন্টে এইসব বিজ্ঞাপন দেখান, যেমন অ্যাক্টিভিটির মধ্যে বা গেমের লেভেলের মধ্যে বিরতির সময়।
আপনার অ্যাপে ইন্টারস্টিশিয়াল বিজ্ঞাপন দেখানো হলে, ব্যবহারকারী বিজ্ঞাপনে ট্যাপ করে চালিয়ে যেতে পারেন অথবা বিজ্ঞাপন বন্ধ করে অ্যাপে ফিরে আসতে পারেন। এই কেস স্টাডি পড়ুন।
এই নির্দেশিকা থেকে আপনি জানতে পারবেন যে কীভাবে Android অ্যাপে ইন্টারস্টিশিয়াল বিজ্ঞাপন ইন্টিগ্রেট করতে হয়।
শুরু করার আগে
চালিয়ে যাওয়ার আগে, নিম্নলিখিত কাজগুলি করুন:
- GMA Next-Gen SDK সেট-আপ করুন।
- টেস্ট ইন্টারস্টিশিয়াল বিজ্ঞাপন ইউনিট আইডি
ca-app-pub-3940256099942544/1033173712ব্যবহার করুন।- আপনার অ্যাপ তৈরি ও পরীক্ষা করার সময়, লাইভ, প্রোডাকশন বিজ্ঞাপনের পরিবর্তে পরীক্ষামূলক বিজ্ঞাপন ব্যবহার করছেন কিনা তা নিশ্চিত করুন। আপনি টেস্ট বিজ্ঞাপন ইউনিট আইডি ব্যবহার না করলে, Google আপনার অ্যাকাউন্ট সাসপেন্ড করতে পারে।
- আপনার অ্যাপ প্রকাশ করার আগে, এই আইডিটি আপনার বিজ্ঞাপন ইউনিট আইডি দিয়ে পরিবর্তন করুন।
- GMA Next-Gen SDK টেস্ট বিজ্ঞাপন সম্পর্কে আরও জানতে, টেস্ট বিজ্ঞাপন চালু করুন বিকল্প দেখুন।
বিজ্ঞাপন প্রিলোড করা (বিটা) সম্পর্কে বোঝা
GMA Next-Gen SDK-এ বিজ্ঞাপন প্রিলোড করার সুবিধা বিজ্ঞাপন লোড ও ক্যাশ করার প্রসেস অটোমেট করে।
বিজ্ঞাপন প্রিলোড করার সুবিধাগুলি নিচে উল্লেখ করা হল:
- রেফারেন্স ম্যানেজমেন্ট: বিজ্ঞাপন না দেখানো পর্যন্ত রেফারেন্স বজায় রাখে।
- অটোমেটিক রিলোড করা: ক্যাশে থেকে কোনও বিজ্ঞাপন ফিরিয়ে আনা হলে নতুন বিজ্ঞাপন লোড করে।
- ম্যানেজ করা রিট্রাই: কোনও বিজ্ঞাপন লোড না হলে নতুন বিজ্ঞাপন লোড করে।
- মেয়াদ শেষ হওয়া ম্যানেজ করা: মেয়াদ শেষ হওয়ার আগে বিজ্ঞাপন রিফ্রেশ করে।
- ক্যাশে অপ্টিমাইজেশন: সবচেয়ে বেশি অগ্রাধিকার পাওয়া বিজ্ঞাপন ডেলিভার করার জন্য ক্যাশে অর্ডার অপ্টিমাইজ করে।
বিজ্ঞাপন প্রিলোড করা শুরু করুন
বিজ্ঞাপন প্রিলোড করা শুরু করতে, GMA Next-Gen SDK শুরু করার সময়
একবার start মেথড কল করুন। আপনি
start মেথড কল করার পরে, GMA Next-Gen SDK অটোমেটিক বিজ্ঞাপন প্রিলোড করে
এবং প্রিলোড করা কনফিগারেশনের জন্য ব্যর্থ অনুরোধ আবার চেষ্টা করে।
বিজ্ঞাপন প্রিলোড করা কীভাবে শুরু করবেন তা নিম্নলিখিত উদাহরণ থেকে দেখুন:
Kotlin
Java
AD_UNIT_ID-এর জায়গায় আপনার বিজ্ঞাপন ইউনিট আইডি লিখুন।
আগের উদাহরণে দেখানো হয়েছে যে কীভাবে বিজ্ঞাপন ইউনিট আইডিকে প্রিলোড আইডি হিসেবে ব্যবহার করতে হয়। প্রি-লোড আইডি হল একটি স্ট্রিং শনাক্তকারী যা আপনি একটি বিজ্ঞাপন প্রি-লোডিং কনফিগারেশন শনাক্ত করার জন্য তৈরি করেন। একই বিজ্ঞাপন ইউনিট আইডির জন্য আপনার অ্যাপে একাধিক টার্গেটিং কনফিগারেশনের প্রয়োজন হলে, কাস্টম স্ট্রিং আইডেন্টিফায়ার পাস করুন।
বিজ্ঞাপন প্রিলোড করার সময় টার্গেটিং প্যারামিটার বা বিজ্ঞাপনের অনুরোধ পরিবর্তন করা যায় না। অনুরোধের মধ্যে টার্গেটিং প্যারামিটার পরিবর্তন করতে হলে, সিঙ্গেল লোডিং ব্যবহার করুন।
প্রিলোড করা বিজ্ঞাপন পান ও দেখান
বিজ্ঞাপন দেখানোর আগে, pollAd মেথড কল করুন।
প্রিলোড করা বিজ্ঞাপন অবজেক্ট স্টোর করবেন না। আপনি
pollAd মেথড কল করলে, GMA Next-Gen SDK উপলভ্য বিজ্ঞাপন ফিরিয়ে আনে
এবং ব্যাকগ্রাউন্ডে অটোমেটিক পরবর্তী বিজ্ঞাপন প্রিলোড করে। কোনও বিজ্ঞাপন উপলভ্য না থাকলে, GMA Next-Gen SDK কোনও বিজ্ঞাপন দেখায় না।
show মেথড কল করুন।
প্রিলোড করা বিজ্ঞাপন কীভাবে ফিরিয়ে আনা ও দেখানো যায় তা নিম্নলিখিত উদাহরণ থেকে দেখুন:
Kotlin
Java
আপনার অ্যাপ কোনও বিজ্ঞাপনের প্লেসমেন্টে পৌঁছালে এবং show মেথড কল করতে পারলে, pollAd মেথড কল করুন। প্রিলোড কলব্যাকে বা কোনও বিজ্ঞাপন হোল্ড করার জন্য
isAdAvailable পদ্ধতি চেক করার পরে
pollAd পদ্ধতি কল করবেন না। বিজ্ঞাপন দেখানোর আগে
আপনাকে যদি বিজ্ঞাপনের মেটাডেটা পরীক্ষা করতে হয়,
তাহলে ক্যাশে থেকে বিজ্ঞাপন না সরিয়ে উত্তরের তথ্য পড়ুন।
বিজ্ঞাপন ইভেন্ট শুনুন
বিজ্ঞাপন দেখানোর আগে, বিজ্ঞাপন ইভেন্ট শুনুন। নিম্নলিখিত উদাহরণটি বিজ্ঞাপন ইভেন্টের জন্য কলব্যাক রেজিস্টার করে:
Kotlin
// Listen for ad events. val ad = interstitialAd if (ad == null) { Log.e(TAG, "Interstitial ad is not ready yet.") return } ad.adEventCallback = object : InterstitialAdEventCallback { override fun onAdShowedFullScreenContent() { // Interstitial ad did show. } override fun onAdDismissedFullScreenContent() { // Interstitial ad did dismiss. interstitialAd = null } override fun onAdFailedToShowFullScreenContent( fullScreenContentError: FullScreenContentError ) { // Interstitial ad failed to show. Log.e(TAG, "Interstitial ad failed to show: ${fullScreenContentError.message}") } override fun onAdImpression() { // Interstitial ad did record an impression. } override fun onAdClicked() { // Interstitial ad did record a click. } }
Java
// Listen for ad events. if (interstitialAd == null) { Log.e(TAG, "Interstitial ad is not ready yet."); return; } interstitialAd.setAdEventCallback( new InterstitialAdEventCallback() { @Override public void onAdShowedFullScreenContent() { // Interstitial ad did show. } @Override public void onAdDismissedFullScreenContent() { // Interstitial ad did dismiss. interstitialAd = null; } @Override public void onAdFailedToShowFullScreenContent( @NonNull FullScreenContentError fullScreenContentError) { // Interstitial ad failed to show. Log.e(TAG, "Interstitial ad failed to show: " + fullScreenContentError.getMessage()); } @Override public void onAdImpression() { // Interstitial ad did record an impression. } @Override public void onAdClicked() { // Interstitial ad did record a click. } });
ঐচ্ছিক: প্রিলোডিং ইভেন্ট শুনুন
বিজ্ঞাপন প্রিলোড করা শুরু করলে, প্রিলোড ইভেন্টের জন্য রেজিস্টার করুন যাতে বিজ্ঞাপন প্রিলোড করা সম্পূর্ণ হলে, প্রিলোড করা না গেলে অথবা বিজ্ঞাপনের ক্যাশে শেষ হয়ে গেলে আপনি বিজ্ঞপ্তি পান।
বিজ্ঞাপন ইভেন্ট প্রিলোড করার জন্য কীভাবে রেজিস্টার করতে হয় তা নিম্নলিখিত উদাহরণ থেকে দেখুন:
Kotlin
val preloadCallback = // [Important] Don't call ad preloader start() or pollAd() within the PreloadCallback. object : PreloadCallback { override fun onAdFailedToPreload(preloadId: String, adError: LoadAdError) { Log.d( TAG, ("Interstitial preload ad $preloadId failed to load with error: ${adError.message}"), ) } override fun onAdsExhausted(preloadId: String) { Log.i(TAG, "Interstitial preload ad $preloadId is not available") // [Important] Don't call ad preloader start() or pollAd() from onAdsExhausted. } override fun onAdPreloaded(preloadId: String, responseInfo: ResponseInfo) { Log.i(TAG, "Interstitial preload ad $preloadId is available") } } val adRequest = AdRequest.Builder(adUnitId).build() val preloadConfig = PreloadConfiguration(adRequest) InterstitialAdPreloader.start(adUnitId, preloadConfig, preloadCallback)
Java
PreloadCallback preloadCallback = // [Important] Don't call ad preloader start() or pollAd() within the PreloadCallback. new PreloadCallback() { @Override public void onAdFailedToPreload(@NonNull String preloadId, @NonNull LoadAdError adError) { Log.d( TAG, String.format( "Interstitial preload ad %s failed to load with error: %s", preloadId, adError.getMessage())); // [Optional] Get the error response info for additional details. // ResponseInfo responseInfo = adError.getResponseInfo(); } @Override public void onAdsExhausted(@NonNull String preloadId) { Log.i(TAG, "Interstitial preload ad " + preloadId + " is not available"); // [Important] Don't call ad preloader start() or pollAd() from onAdsExhausted. } @Override public void onAdPreloaded(@NonNull String preloadId, @NonNull ResponseInfo responseInfo) { Log.i(TAG, "Interstitial preload ad " + preloadId + " is available"); } }; AdRequest adRequest = new AdRequest.Builder(adUnitId).build(); PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest); InterstitialAdPreloader.start(adUnitId, preloadConfig, preloadCallback);
কোনও বিজ্ঞাপন লোড না হলে, GMA Next-Gen SDK অটোমেটিক বিজ্ঞাপন প্রিলোড করে এবং প্রিলোড করা কনফিগারেশনের জন্য
ব্যর্থ অনুরোধ আবার চেষ্টা করে। ব্যর্থ কলব্যাকে ম্যানুয়াল লোড
অনুরোধ করবেন না। প্রিলোড ইভেন্ট কলব্যাক পদ্ধতিতে,
pollAd, destroy বা
start পদ্ধতি কল করবেন না। কলব্যাকে এইসব পদ্ধতি কল করলে
রিকার্সিভ লোড লুপ ইনভোক হতে পারে।
ঐচ্ছিক: বিজ্ঞাপন উপলভ্য কিনা তা চেক করা
কোনও বিজ্ঞাপন উপলভ্য আছে কিনা তা জানতে হলে, বিজ্ঞাপনের উপলভ্যতা চেক করুন। নিম্নলিখিত উদাহরণটি প্রিলোড করা বিজ্ঞাপন উপলভ্য কিনা তা চেক করে:
Kotlin
private fun isAdAvailable(adUnitId: String): Boolean { return InterstitialAdPreloader.isAdAvailable(adUnitId) }
Java
private boolean isAdAvailable(String adUnitId) { return InterstitialAdPreloader.isAdAvailable(adUnitId); }
ঐচ্ছিক: বাফার সাইজ সেট করুন
বাফার সাইজ মেমরিতে থাকা প্রি-লোড করা বিজ্ঞাপনের সংখ্যা নিয়ন্ত্রণ করে। ডিফল্ট হিসেবে, Google মেমরি খরচ ও বিজ্ঞাপন পরিষেবা দেওয়ার লেটেন্সি ব্যালেন্স করতে বাফার সাইজ অপ্টিমাইজ করে। মেমরিতে রাখা বিজ্ঞাপনের সংখ্যা বাড়াতে বা কমাতে আপনি কাস্টম বাফার সাইজ সেট করতে পারেন। আমরা দুটি প্রি-লোড করা বিজ্ঞাপনের বাফার সাইজ সাজেস্ট করি। আপনার ট্রাফিকের বেশিরভাগই যদি কম মেমরির ডিভাইস থেকে আসে, তাহলে বাফারের সাইজ কমিয়ে দিন।
বাফার সাইজ কীভাবে সেট করতে হয় তা নিম্নলিখিত উদাহরণ থেকে দেখুন:
Kotlin
private fun setBufferSize(adUnitId: String) { val adRequest = AdRequest.Builder(adUnitId).build() // Define a PreloadConfiguration and set the buffer size to 2 preloaded ads. val preloadConfig = PreloadConfiguration(adRequest, bufferSize = 2) InterstitialAdPreloader.start(adUnitId, preloadConfig) }
Java
private void setBufferSize(String adUnitId) { AdRequest adRequest = new AdRequest.Builder(adUnitId).build(); // Define a PreloadConfiguration and set the buffer size to 2 preloaded ads. PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest, 2); InterstitialAdPreloader.start(adUnitId, preloadConfig); }
প্রিলোড ক্যাশে সীমা
GMA Next-Gen SDK সমস্ত বিজ্ঞাপন ইউনিট এবং প্রিলোড আইডি জুড়ে প্রিলোড করা বিজ্ঞাপনের মোট সংখ্যার উপর অ্যাপ-ব্যাপী সীমা প্রয়োগ করে:
- ডিফল্ট সীমা: Google মেমরিতে সর্বাধিক ছয়টি প্রিলোড করা বিজ্ঞাপন রাখে। এই সীমা সব ফর্ম্যাট ও প্রিলোড আইডি জুড়ে শেয়ার করা হয়।
- প্রতিটি প্রিলোড আইডির জন্য আমরা বাফার সাইজ দুই রাখার সাজেশন দিই।
ঐচ্ছিক: বিজ্ঞাপন প্রি-লোড করা বন্ধ করুন
আপনার অ্যাপ বিজ্ঞাপন দেখানোর সময় প্রিলোড করার সুবিধা চালু রাখুন। এই সময়ের মধ্যে, destroy পদ্ধতি ব্যবহার করবেন না। সেশনে নির্দিষ্ট প্রিলোড আইডির জন্য আবার বিজ্ঞাপন দেখানোর প্রয়োজন না হলে, আপনি বিজ্ঞাপন প্রিলোড করা বন্ধ করতে পারেন। নির্দিষ্ট প্রিলোড আইডির জন্য
বিজ্ঞাপন লোড করা বন্ধ করতে, প্রিলোড আইডির সাথে destroy
মেথড কল করুন। destroy পদ্ধতি কল করলে
ক্যাশে থেকে প্রিলোড আইডির সাথে যুক্ত সব প্রিলোড করা বিজ্ঞাপন সরিয়ে দেয়।
নিম্নলিখিত উদাহরণ থেকে বিজ্ঞাপন প্রি-লোড করা কীভাবে বন্ধ করতে হয় তা জানতে পারবেন:
Kotlin
private fun stopPreloading(adUnitId: String) { // Stops the preloading and destroy preloaded ads. InterstitialAdPreloader.destroy(adUnitId) }
Java
private void stopPreloading(String adUnitId) { // Stops the preloading and destroy preloaded ads. InterstitialAdPreloader.destroy(adUnitId); }
ঐচ্ছিক: উত্তরের তথ্য পড়ুন
ক্যাশে থেকে বিজ্ঞাপন না সরিয়ে পরবর্তী প্রিলোড করা বিজ্ঞাপনের উত্তর সংক্রান্ত তথ্য পড়ুন। বিজ্ঞাপন দেখানোর আগে আপনাকে যদি বিজ্ঞাপন মেটাডেটা পরীক্ষা করতে হয়,
তাহলে pollAd
মেথড কল করার পরিবর্তে রেসপন্স সংক্রান্ত তথ্য পড়ুন।
পরবর্তী প্রিলোড করা বিজ্ঞাপন সংক্রান্ত উত্তর কীভাবে পড়তে হয় তা নিম্নলিখিত উদাহরণ থেকে দেখুন:
Kotlin
val responseInfo = InterstitialAdPreloader.peekAdResponseInfo(preloadId) if (responseInfo == null) { Log.e(TAG, "Failed to peek ad response info.") return } Log.d(TAG, "Peeked ad response ID: ${responseInfo.responseId}")
Java
ResponseInfo responseInfo = InterstitialAdPreloader.peekAdResponseInfo(preloadId); if (responseInfo == null) { Log.e(TAG, "Failed to peek ad response info."); return; } Log.d(TAG, "Peeked ad response ID: " + responseInfo.getResponseId());