অ্যাড প্রিলোডিং হল একটি SDK-পরিচালিত লোডিং এবং ক্যাশিং প্রক্রিয়া যা ম্যানুয়াল অ্যাড লোডিং এবং ক্যাশিংয়ের প্রয়োজনীয়তা দূর করে৷ এই প্রক্রিয়াটি আপনাকে ম্যানুয়ালি বিজ্ঞাপন লোড না করে বা বিজ্ঞাপন লোডিং কলব্যাক পরিচালনা না করেই প্রয়োজন হলে বিজ্ঞাপন প্রদর্শন করতে দেয়।
এই গাইডে প্রিলোড বিজ্ঞাপন কনফিগার করা, প্রিলোড বিজ্ঞাপনের প্রাপ্যতা পরীক্ষা করা এবং প্রিলোড করা বিজ্ঞাপন কীভাবে পাওয়া যায় এবং দেখানো যায় তা কভার করে।
পূর্বশর্ত
আপনি টিউটোরিয়ালের সাথে এগিয়ে যাওয়ার আগে, আপনাকে নিম্নলিখিত আইটেমগুলি সম্পূর্ণ করতে হবে:
- Google মোবাইল বিজ্ঞাপন SDK (বিটা) সংস্করণ 0.14.0-alpha01 বা উচ্চতর ইনস্টল করুন৷
- শুরু করুন গাইডটি সম্পূর্ণ করুন।
- ঐচ্ছিক: উদাহরণ অ্যাপটি ডাউনলোড করুন এবং চালান।
বিজ্ঞাপন প্রিলোড করা শুরু করুন
প্রিলোডিং শুরু করতে, startPreload() কল করুন। Google মোবাইল বিজ্ঞাপন SDK প্রিলোড করা কনফিগারেশনের জন্য ব্যর্থ বিজ্ঞাপন অনুরোধগুলি স্বয়ংক্রিয়ভাবে পুনরায় চেষ্টা করে।
নিম্নলিখিত উদাহরণটি বিজ্ঞাপনগুলি প্রিলোড করা শুরু করে:
কোটলিন
private fun startPreloading(adUnitID: String) {
val adRequest: AdRequest = AdRequest.Builder(adUnitID).build()
val preloadConfig = PreloadConfiguration(adRequest)
InterstitialAdPreloader.start(adUnitID, preloadConfig)
}
জাভা
private void startPreloading(String adUnitId) {
AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest);
InterstitialAdPreloader.start(adUnitId, preloadConfig);
}
ঐচ্ছিক: প্রিলোডিং বিজ্ঞাপনগুলি পরিবর্তন করুন৷
কোন বিজ্ঞাপনগুলি প্রিলোড করা হয়েছে তা পরিবর্তন করতে, destroy() কল করুন এবং তারপরে পরিবর্তিত কনফিগারেশনের সাথে আবার startPreload() কল করুন।
ঐচ্ছিক: বিজ্ঞাপন প্রিলোড করা বন্ধ করুন
প্রিলোডিং বিজ্ঞাপন বন্ধ করতে, একটি প্রিলোড আইডি দিয়ে destroy() কল করুন।
ঐচ্ছিক: বাফারের আকার সেট করুন
বাফার সাইজ মেমরিতে রাখা প্রিলোড করা বিজ্ঞাপনের সংখ্যা নিয়ন্ত্রণ করে। যদি আপনার অ্যাপ নতুন বিজ্ঞাপন লোড করার চেয়ে দ্রুত বিজ্ঞাপন প্রদর্শন করে, তাহলে বাফারের আকার একটি বড় মান সেট করুন। যদি মেমরি ব্যবহার আপনাকে উদ্বিগ্ন করে, বাফারের আকার একটি কম মান যেমন 2 সেট করুন।
কোটলিন
private fun setBufferSize(adUnitID: String) {
val adRequest: AdRequest = AdRequest.Builder(adUnitID).build()
val preloadConfig = PreloadConfiguration(adRequest, bufferSize = 3)
InterstitialAdPreloader.start(adUnitID, preloadConfig)
}
জাভা
private void setBufferSize(String adUnitId) {
AdRequest adRequest = new AdRequest.Builder(adUnitId).build();
PreloadConfiguration preloadConfig = new PreloadConfiguration(adRequest, 3);
InterstitialAdPreloader.start(adUnitId, preloadConfig);
}
ঐচ্ছিক: প্রিলোডিং বিজ্ঞপ্তি পান
বিজ্ঞাপন প্রিলোডিং ইভেন্টের জন্য বিজ্ঞপ্তি পেতে PreloadCallback প্রয়োগ করুন। ডিবাগ এবং লগ করতে, এই ইভেন্টগুলি একটি প্রতিক্রিয়া তথ্য অবজেক্ট প্রদান করে।
কোটলিন
private fun startPreloadingWithCallback(adUnitID: String) {
val preloadCallback =
// [Important] Don't call ad preloader start() or pollAd() within the PreloadCallback.
object : PreloadCallback {
override fun onAdFailedToPreload(preloadId: String, adError: LoadAdError) {
Log.i(
TAG,
("Interstitial preload ad $preloadId failed to load with error: ${adError.message}"),
)
// [Optional] Get the error response info for additional details.
// val responseInfo = adError.responseInfo
}
override fun onAdsExhausted(preloadId: String) {
Log.i(TAG, "Interstitial preload ad $preloadId is not available")
}
override fun onAdPreloaded(preloadId: String, responseInfo: ResponseInfo) {
Log.i(TAG, "Interstitial preload ad $preloadId is available")
}
}
val adRequest: AdRequest = AdRequest.Builder(adUnitID).build()
val preloadConfig = PreloadConfiguration(adRequest)
InterstitialAdPreloader.start(adUnitID, preloadConfig, preloadCallback)
}
জাভা
private void startPreloadingWithCallback(String adUnitId) {
PreloadCallback preloadCallback =
// [Important] Don't call ad preloader start() or pollAd() within the PreloadCallback.
new PreloadCallback() {
@Override
public void onAdFailedToPreload(String preloadId, LoadAdError adError) {
Log.e(
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(String preloadId) {
Log.i(TAG, "Interstitial preload ad " + preloadId + " is not available");
}
@Override
public void onAdPreloaded(String preloadId, 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);
}
প্রিলোড করা বিজ্ঞাপনটি পান এবং দেখান
একবার onAdsAvailable() কল করা হলে বিজ্ঞাপন দেখানোর জন্য উপলব্ধ। বিজ্ঞাপনগুলি দেখানো এবং নিঃশেষিত হওয়ার সাথে সাথে বিজ্ঞাপনগুলি ক্রমাগত উপলব্ধ করা হয়৷ একটি বিজ্ঞাপন পাওয়ার পরে, বিজ্ঞাপনের জীবনচক্রের ঘটনাগুলি শুনুন এবং বিজ্ঞাপনটি দেখান।
নিম্নলিখিত উদাহরণটি একটি প্রিলোড করা বিজ্ঞাপন দেখায়:
কোটলিন
private fun pollAndShowAd(activity: Activity, adUnitID: String) {
// Polling returns the next available ad and loads another ad in the background.
val ad = InterstitialAdPreloader.pollAd(adUnitID)
// Interact with the ad object as needed.
ad?.apply {
Log.d(TAG, "Interstitial ad response info: ${this.getResponseInfo()}")
this.adEventCallback =
object : InterstitialAdEventCallback {
override fun onAdImpression() {
Log.d(TAG, "Interstitial ad recorded an impression.")
}
override fun onAdPaid(value: AdValue) {
Log.d(TAG, "Interstitial ad onPaidEvent: ${value.valueMicros} ${value.currencyCode}")
}
}
// Show the ad.
ad.show(activity)
}
}
জাভা
private void pollAndShowAd(Activity activity, String adUnitId) {
// Polling returns the next available ad and loads another ad in the background.
final InterstitialAd ad = InterstitialAdPreloader.pollAd(adUnitId);
// Interact with the ad object as needed.
if (ad != null) {
Log.d(TAG, "Interstitial ad response info: " + ad.getResponseInfo());
ad.setAdEventCallback(
new InterstitialAdEventCallback() {
@Override
public void onAdImpression() {
Log.d(TAG, "Interstitial ad recorded an impression.");
}
@Override
public void onAdPaid(AdValue value) {
Log.d(
TAG,
"Interstitial ad onPaidEvent: "
+ value.getValueMicros()
+ " "
+ value.getCurrencyCode());
}
});
// Show the ad.
ad.show(activity);
}
}
ঐচ্ছিক: আগে থেকে লোড করা বিজ্ঞাপনের উপলব্ধতা পরীক্ষা করুন
বিজ্ঞাপন উপলব্ধ কিনা তা জানতে, isAdAvailable কল করুন:
কোটলিন
private fun isAdAvailable(adUnitID: String): Boolean {
return InterstitialAdPreloader.isAdAvailable(adUnitID)
}
জাভা
private boolean isAdAvailable(String adUnitId) {
return InterstitialAdPreloader.isAdAvailable(adUnitId);
}