নেটিভ অ্যাডে অনেক উন্নত বৈশিষ্ট্য রয়েছে, যা আপনাকে অতিরিক্ত কাস্টমাইজেশন করার এবং সর্বোত্তম বিজ্ঞাপন অভিজ্ঞতা তৈরি করার সুযোগ দেয়। এই নির্দেশিকাটি আপনাকে দেখাবে কীভাবে নেটিভ অ্যাডের উন্নত বৈশিষ্ট্যগুলো ব্যবহার করতে হয়।
পূর্বশর্ত
- নেটিভ বিজ্ঞাপন ফরম্যাটটি একীভূত করুন।
সম্পদ নিয়ন্ত্রণ
এই বিভাগে আপনার নেটিভ বিজ্ঞাপনের ক্রিয়েটিভ অ্যাসেটগুলো কীভাবে কাস্টমাইজ করবেন তার বিস্তারিত বর্ণনা দেওয়া হয়েছে। মিডিয়া অ্যাসেটগুলোর জন্য পছন্দের অ্যাস্পেক্ট রেশিও এবং ইমেজ অ্যাসেটগুলো কীভাবে ডাউনলোড ও প্রদর্শিত হবে, তা নির্দিষ্ট করার বিকল্প আপনার কাছে রয়েছে।
পছন্দের মিডিয়া অ্যাসপেক্ট রেশিও নিয়ন্ত্রণ
মিডিয়া অ্যাসপেক্ট রেশিও কন্ট্রোলস আপনাকে বিজ্ঞাপন ক্রিয়েটিভের অ্যাসপেক্ট রেশিওর জন্য আপনার পছন্দ নির্দিষ্ট করার সুযোগ দেয়।
NativeAdOptions.MediaAspectRatio মান দিয়ে NativeAdOptions.MediaAspectRatio NativeAdOptions.Builder.setMediaAspectRatio() কল করুন।
সেট না করা থাকলে, ফেরত আসা বিজ্ঞাপনের যেকোনো মিডিয়া অ্যাসপেক্ট রেশিও থাকতে পারে।
সেট করা হলে, আপনি পছন্দের অ্যাস্পেক্ট রেশিওর ধরন নির্দিষ্ট করে ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে পারবেন।
নিম্নলিখিত উদাহরণটি SDK-কে একটি নির্দিষ্ট অ্যাস্পেক্ট রেশিও সহ রিটার্ন ইমেজ বা ভিডিওকে অগ্রাধিকার দিতে নির্দেশ দেয়।
জাভা
কোটলিন
AD_UNIT_ID এর জায়গায় আপনার অ্যাড ইউনিট আইডি বসান।
ছবি ডাউনলোড নিয়ন্ত্রণ
ইমেজ ডাউনলোড কন্ট্রোল আপনাকে সিদ্ধান্ত নিতে দেয় যে SDK দ্বারা ইমেজ অ্যাসেট নাকি শুধুমাত্র URI ফেরত দেওয়া হবে।
একটি boolean মান দিয়ে NativeAdOptions.Builder.setReturnUrlsForImageAssets() কল করুন।
ইমেজ ডাউনলোড নিয়ন্ত্রণ ডিফল্টরূপে নিষ্ক্রিয় থাকে।
নিষ্ক্রিয় করা থাকলে, Google Mobile Ads SDK আপনার জন্য ছবি এবং ইউআরআই উভয়ই পূরণ করে দেয়।
এটি সক্রিয় করা হলে, SDK শুধু URI-টি পূরণ করে দেয়, ফলে আপনি আপনার ইচ্ছামতো আসল ছবিগুলো ডাউনলোড করতে পারেন।
নিম্নলিখিত উদাহরণটি SDK-কে শুধুমাত্র URI ফেরত দিতে নির্দেশ দেয়।
জাভা
কোটলিন
ইমেজ পেলোড নিয়ন্ত্রণ
কিছু বিজ্ঞাপনে একটির পরিবর্তে একাধিক ছবি থাকে। আপনার অ্যাপটি সব ছবি নাকি শুধু একটি ছবি প্রদর্শন করতে প্রস্তুত, তা নির্দেশ করতে এই বৈশিষ্ট্যটি ব্যবহার করুন।
একটি boolean মান দিয়ে NativeAdOptions.Builder.setRequestMultipleImages() কল করুন।
ইমেজ পেলোড নিয়ন্ত্রণ ডিফল্টরূপে নিষ্ক্রিয় থাকে।
এটি নিষ্ক্রিয় করা থাকলে, আপনার অ্যাপ SDK-কে নির্দেশ দেয় যেন একাধিক ছবি সম্বলিত যেকোনো অ্যাসেটের জন্য শুধু প্রথম ছবিটি সরবরাহ করা হয়।
এটি সক্রিয় করা হলে, আপনার অ্যাপ নির্দেশ করে যে এটি একাধিক ছবি আছে এমন যেকোনো অ্যাসেটের সমস্ত ছবি প্রদর্শন করতে প্রস্তুত।
নিম্নলিখিত উদাহরণটি SDK-কে একাধিক ইমেজ অ্যাসেট ফেরত দিতে নির্দেশ দেয়।
জাভা
কোটলিন
AdChoices প্লেসমেন্ট
এই বিভাগে AdChoices ওভারলে-এর অবস্থান নির্ধারণের পদ্ধতি বিস্তারিতভাবে বর্ণনা করা হয়েছে। আপনার কাছে এটিকে চারটি কোণার যেকোনো একটিতে স্থাপন করার অথবা একটি কাস্টম ভিউ-এর মধ্যে রেন্ডার করার বিকল্প রয়েছে।
AdChoices অবস্থান নিয়ন্ত্রণ
AdChoices পজিশন কন্ট্রোল আপনাকে বেছে নিতে দেয় যে AdChoices আইকনটি কোন কোণায় প্রদর্শিত হবে।
NativeAdOption.AdChoicesPlacement ভ্যালুটি দিয়ে NativeAdOption.AdChoicesPlacement NativeAdOptions.Builder.setAdChoicesPlacement() কল করুন।
সেট করা না থাকলে, AdChoices আইকনের অবস্থান উপরের ডানদিকে সেট করা হয়।
সেট করা থাকলে, AdChoices অনুরোধ অনুযায়ী নির্দিষ্ট অবস্থানে স্থাপন করা হয়।
নিম্নলিখিত উদাহরণটি দেখায় কিভাবে একটি কাস্টম AdChoices ছবির অবস্থান সেট করতে হয়।
জাভা
কোটলিন
AdChoices কাস্টম ভিউ
AdChoices-এর কাস্টম ভিউ ফিচারটি আপনাকে AdChoices আইকনটিকে আপনার পছন্দমতো কোনো স্থানে স্থাপন করার সুযোগ দেয়। এটি AdChoices-এর পজিশন কন্ট্রোল থেকে ভিন্ন, যা দিয়ে কেবল চারটি কোণার মধ্যে একটিকে নির্দিষ্ট করা যায়।
একটি AdChoicesView ভ্যালু দিয়ে NativeAdView.setAdChoicesView() কল করুন।
নিম্নলিখিত উদাহরণটি দেখায় কিভাবে একটি কাস্টম AdChoices ভিউ সেট করতে হয়, যেখানে AdChoices আইকনটি AdChoicesView ভিতরে রেন্ডার করা হয়।
জাভা
NativeAdView nativeAdView = new NativeAdView(context);
AdChoicesView adChoicesView = new AdChoicesView(context);
nativeAdView.setAdChoicesView(adChoicesView);
কোটলিন
val nativeAdView = NativeAdView(context)
val adChoicesView = AdChoicesView(context)
nativeAdView.adChoicesView = adChoicesView
ভিডিও নিয়ন্ত্রণ
এই বিভাগে ভিডিও বিজ্ঞাপনের প্লেব্যাক অভিজ্ঞতা কীভাবে কাস্টমাইজ করবেন তার বিস্তারিত বর্ণনা দেওয়া হয়েছে। আপনার কাছে প্রাথমিক মিউট অবস্থা সেট করার এবং কাস্টম প্লেব্যাক নিয়ন্ত্রণ প্রয়োগ করার বিকল্প রয়েছে।
মিউট আচরণ শুরু করুন
স্টার্ট মিউটেড বিহেভিয়ার আপনাকে একটি ভিডিওর শুরুর অডিও বন্ধ বা চালু করার সুবিধা দেয়।
একটি boolean মান দিয়ে VideoOptions.Builder.setStartMuted() কল করুন।
ডিফল্টরূপে স্টার্ট মিউটেড আচরণটি সক্রিয় থাকে।
এটি নিষ্ক্রিয় করা থাকলে, আপনার অ্যাপ ভিডিওটি অডিও দিয়ে শুরু করার অনুরোধ করে।
এটি চালু করা হলে, আপনার অ্যাপ অনুরোধ করে যেন ভিডিওটি অডিও মিউট করে শুরু করা হয়।
নিচের উদাহরণটিতে দেখানো হয়েছে কীভাবে অডিও আন-মিউট করে ভিডিও শুরু করতে হয়।
জাভা
কোটলিন
কাস্টম প্লেব্যাক নিয়ন্ত্রণ
এর মাধ্যমে আপনি ভিডিওটি প্লে, পজ বা মিউট করার জন্য নিজস্ব ইনপুট কন্ট্রোলের অনুরোধ করতে পারবেন।
একটি boolean মান দিয়ে VideoOptions.Builder.setCustomControlsRequested() কল করুন।
কাস্টম প্লেব্যাক নিয়ন্ত্রণ ডিফল্টরূপে নিষ্ক্রিয় থাকে।
নিষ্ক্রিয় করা থাকলে, আপনার ভিডিওতে SDK দ্বারা রেন্ডার করা ইনপুট কন্ট্রোলগুলো দেখানো হবে।
যদি বিজ্ঞাপনে ভিডিও কন্টেন্ট থাকে এবং কাস্টম কন্ট্রোল চালু করা থাকে, তাহলে আপনার কাস্টম কন্ট্রোলগুলো বিজ্ঞাপনের সাথেই প্রদর্শন করা উচিত, কারণ বিজ্ঞাপনটি নিজে কোনো কন্ট্রোল দেখাবে না। এরপর কন্ট্রোলগুলো বিজ্ঞাপনের প্রাসঙ্গিক মেথডগুলোকে কল করতে পারবে।
নিম্নলিখিত উদাহরণটি দেখায় কিভাবে কাস্টম প্লেব্যাক কন্ট্রোল সহ একটি ভিডিওর জন্য অনুরোধ করতে হয়।
জাভা
কোটলিন
কাস্টম কন্ট্রোলগুলি সক্রিয় আছে কিনা তা পরীক্ষা করুন
যেহেতু অনুরোধ করার সময় এটা জানা যায় না যে ফেরত আসা বিজ্ঞাপনটিতে কাস্টম ভিডিও কন্ট্রোলের অনুমতি থাকবে কিনা, তাই আপনাকে অবশ্যই যাচাই করে দেখতে হবে যে সেটিতে কাস্টম কন্ট্রোল সক্রিয় করা আছে কিনা।
জাভা
MediaContent mediaContent = nativeAd.getMediaContent();
if (mediaContent != null) {
VideoController videoController = mediaContent.getVideoController();
boolean canShowCustomControls = videoController.isCustomControlsEnabled();
}
কোটলিন
val mediaContent = nativeAd.mediaContent
if (mediaContent != null) {
val videoController = mediaContent.videoController
val canShowCustomControls = videoController.isCustomControlsEnabled
}
কাস্টম ভিডিও নিয়ন্ত্রণ রেন্ডার করুন
নিম্নলিখিত সর্বোত্তম অনুশীলনগুলি ব্যবহার করে কাস্টম ভিডিও নিয়ন্ত্রণগুলি রেন্ডার করুন:
- কাস্টম কন্ট্রোল ভিউটিকে নেটিভ অ্যাড ভিউ-এর চাইল্ড হিসেবে রেন্ডার করুন। এই পদ্ধতিটি ওপেন মেজারমেন্ট ভিউএবিলিটি ক্যালকুলেশনগুলোকে কাস্টম কন্ট্রোলগুলোকে একটি ফ্রেন্ডলি অবস্ট্রাকশন হিসেবে বিবেচনা করতে দেয়।
- সম্পূর্ণ মিডিয়া ভিউয়ের উপর একটি অদৃশ্য ওভারলে রেন্ডার করা থেকে বিরত থাকুন। ওভারলে মিডিয়া ভিউতে ক্লিক করাকে বাধা দেয়, যা নেটিভ বিজ্ঞাপনের পারফরম্যান্সের উপর নেতিবাচক প্রভাব ফেলে। এর পরিবর্তে, একটি ছোট ওভারলে তৈরি করুন যা কেবল কন্ট্রোলগুলো রাখার জন্য যথেষ্ট বড়।
কাস্টম ক্লিক অঙ্গভঙ্গি
কাস্টম ক্লিক জেসচার হলো নেটিভ অ্যাডের একটি ফিচার, যা অ্যাড দেখার সময় করা সোয়াইপকে অ্যাড ক্লিক হিসেবে গণ্য করতে সক্ষম করে। এটি এমন অ্যাপগুলোর সাথে কাজ করার জন্য ডিজাইন করা হয়েছে, যেগুলো কন্টেন্ট নেভিগেশনের জন্য সোয়াইপ জেসচার ব্যবহার করে। এই নির্দেশিকাটিতে দেখানো হয়েছে কীভাবে আপনার নেটিভ অ্যাডগুলোতে কাস্টম ক্লিক জেসচার চালু করবেন।
NativeAdOptions.Builder.enableCustomClickGestureDirection() একটি NativeAdOptions.SwipeGestureDirection এবং একটি boolean দিয়ে কল করুন, যা নির্দেশ করবে যে আপনি ট্যাপগুলোকে ক্লিক হিসেবে অনুমতি দিতে চান কিনা।
নিম্নলিখিত উদাহরণটি ডানদিকে একটি কাস্টম সোয়াইপ জেসচার প্রয়োগ করে এবং সাধারণ ট্যাব আচরণ বজায় রাখে।
কাস্টম ক্লিক জেসচার ডিফল্টরূপে নিষ্ক্রিয় থাকে।
নিষ্ক্রিয় করা থাকলে, আপনার অ্যাপটি স্বাভাবিক ক্লিক আচরণ সমর্থন করবে।
এটি চালু করা হলে, আপনার অ্যাপ কাস্টম সোয়াইপ জেসচার সমর্থন করবে।
নিম্নলিখিত উদাহরণটি ডানদিকে একটি কাস্টম সোয়াইপ জেসচার প্রয়োগ করে এবং সাধারণ ট্যাব আচরণ বজায় রাখে।
জাভা
কোটলিন
সোয়াইপ জেসচার ইভেন্টগুলির জন্য শুনুন
যখন কোনো সোয়াইপ জেসচার ক্লিক রেকর্ড করা হয়, তখন Google Mobile Ads SDK বিদ্যমান onAdClicked() মেথডটির পাশাপাশি AdListener এর onAdSwipeGestureClicked() মেথডটিও কল করে।
জাভা
AdLoader adLoader =
new AdLoader.Builder(context, AD_UNIT_ID)
.withAdListener(
new AdListener() {
// Called when a swipe gesture click is recorded.
@Override
public void onAdSwipeGestureClicked() {
// Called when a swipe gesture click is recorded.
Log.d(TAG, "A swipe gesture click has occurred.");
}
@Override
public void onAdClicked() {
// Called when a swipe gesture click or a tap click is recorded, as
// configured in NativeAdOptions.
Log.d(TAG, "A swipe gesture click or a tap click has occurred.");
}
})
.build();
কোটলিন
val adLoader =
AdLoader.Builder(context, AD_UNIT_ID)
.withAdListener(
object : AdListener() {
override fun onAdSwipeGestureClicked() {
// Called when a swipe gesture click is recorded.
Log.d(TAG, "A swipe gesture click has occurred.")
}
override fun onAdClicked() {
// Called when a swipe gesture click or a tap click is recorded, as
// configured in NativeAdOptions.
Log.d(TAG, "A swipe gesture click or a tap click has occurred.")
}
}
)
.build()
মধ্যস্থতা
কাস্টম ক্লিক জেসচার শুধুমাত্র সেইসব নেটিভ অ্যাডে কাজ করে যা গুগল মোবাইল অ্যাডস এসডিকে (Google Mobile Ads SDK) দ্বারা রেন্ডার করা হয়। যেসব অ্যাড সোর্স রেন্ডারিংয়ের জন্য থার্ড-পার্টি এসডিকে (SDK) প্রয়োজন হয় , সেগুলোতে কাস্টম ক্লিক ডিরেকশন সেটিং কাজ করে না।