একটি নেটিভ বিজ্ঞাপন প্রদর্শন করুন
যখন একটি নেটিভ বিজ্ঞাপন লোড হয়, তখন Google মোবাইল বিজ্ঞাপন SDK শ্রোতাকে সংশ্লিষ্ট বিজ্ঞাপন বিন্যাসের জন্য আহ্বান করে। আপনার অ্যাপটি তখন বিজ্ঞাপনটি প্রদর্শনের জন্য দায়ী, যদিও এটি অবিলম্বে তা করতে হবে না। সিস্টেম-সংজ্ঞায়িত বিজ্ঞাপন ফর্ম্যাটগুলিকে সহজে প্রদর্শন করতে, SDK কিছু দরকারী সংস্থান অফার করে, যেমনটি নীচে বর্ণনা করা হয়েছে।
NativeAdView
ক্লাস
NativeAd
ফর্ম্যাটের জন্য, সংশ্লিষ্ট NativeAdView
ক্লাস আছে। এই ক্লাসটি হল একটি ViewGroup
যা প্রকাশকদের NativeAd
এর রুট হিসাবে ব্যবহার করা উচিত। একটি একক NativeAdView
একটি একক নেটিভ বিজ্ঞাপনের সাথে মিলে যায়৷ সেই বিজ্ঞাপনের সম্পদ (যে ImageView
স্ক্রিনশট সম্পদ প্রদর্শন করে, উদাহরণস্বরূপ) প্রদর্শন করতে ব্যবহৃত প্রতিটি ভিউ NativeAdView
অবজেক্টের একটি শিশু হওয়া উচিত।
একটি নেটিভ বিজ্ঞাপনের ভিউ শ্রেণীবিন্যাস যা একটি LinearLayout
ব্যবহার করে তার সম্পদের দৃশ্যগুলি এইরকম দেখতে পারে:
<com.google.android.gms.ads.nativead.NativeAdView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:orientation="vertical">
<LinearLayout
android:orientation="horizontal">
<ImageView
android:id="@+id/ad_app_icon" />
<TextView
android:id="@+id/ad_headline" />
</LinearLayout>
<!--Add remaining assets such as the image and media view.-->
</LinearLayout>
</com.google.android.gms.ads.nativead.NativeAdView>
এখানে একটি উদাহরণ যা একটি NativeAdView
তৈরি করে এবং এটি একটি NativeAd
দিয়ে পপুলেট করে:
জাভা
AdLoader.Builder builder = new AdLoader.Builder(this, "/21775744923/example/native")
.forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
// Assumes you have a placeholder FrameLayout in your View layout
// (with ID fl_adplaceholder) where the ad is to be placed.
FrameLayout frameLayout =
findViewById(R.id.fl_adplaceholder);
// Assumes that your ad layout is in a file call native_ad_layout.xml
// in the res/layout folder
NativeAdView adView = (NativeAdView) getLayoutInflater()
.inflate(R.layout.native_ad_layout, null);
// This method sets the assets into the ad view.
populateNativeAdView(nativeAd, adView);
frameLayout.removeAllViews();
frameLayout.addView(adView);
}
});
কোটলিন
val builder = AdLoader.Builder(this, "/21775744923/example/native")
.forNativeAd { nativeAd ->
// Assumes you have a placeholder FrameLayout in your View layout
// (with ID fl_adplaceholder) where the ad is to be placed.
val frameLayout: FrameLayout = findViewById(R.id.fl_adplaceholder)
// Assumes that your ad layout is in a file call native_ad_layout.xml
// in the res/layout folder
val adView = layoutInflater
.inflate(R.layout.native_ad_layout, null) as NativeAdView
// This method sets the assets into the ad view.
populateNativeAdView(nativeAd, adView)
frameLayout.removeAllViews()
frameLayout.addView(adView)
}
মনে রাখবেন যে একটি প্রদত্ত নেটিভ বিজ্ঞাপনের সমস্ত সম্পদ NativeAdView
লেআউটের মধ্যে রেন্ডার করা উচিত। Google মোবাইল বিজ্ঞাপন SDK একটি সতর্কতা লগ করার চেষ্টা করে যখন নেটিভ অ্যাসেটগুলি নেটিভ অ্যাড ভিউ লেআউটের বাইরে রেন্ডার করা হয়।
বিজ্ঞাপন ভিউ ক্লাসগুলি প্রতিটি পৃথক সম্পত্তির জন্য ব্যবহৃত ভিউ নিবন্ধন করার জন্য ব্যবহৃত পদ্ধতি এবং একটি NativeAd
অবজেক্ট নিজেই নিবন্ধন করার জন্য ব্যবহার করা হয়। এইভাবে ভিউ নিবন্ধন করলে SDK স্বয়ংক্রিয়ভাবে কাজগুলি পরিচালনা করতে দেয় যেমন:
- রেকর্ডিং ক্লিক
- স্ক্রিনে প্রথম পিক্সেল দৃশ্যমান হলে ইম্প্রেশন রেকর্ড করা
- নেটিভ ব্যাকফিল ক্রিয়েটিভের জন্য AdChoices ওভারলে প্রদর্শন করা হচ্ছে—বর্তমানে প্রকাশকদের একটি নির্বাচিত গোষ্ঠীর মধ্যে সীমাবদ্ধ
AdChoices ওভারলে
একটি AdChoices ওভারলে SDK দ্বারা একটি বিজ্ঞাপন দৃশ্য হিসাবে যোগ করা হয় যখন একটি ব্যাকফিল বিজ্ঞাপন ফেরত দেওয়া হয়। যদি আপনার অ্যাপ নেটিভ বিজ্ঞাপন ব্যাকফিল ব্যবহার করে, তাহলে স্বয়ংক্রিয়ভাবে সন্নিবেশিত AdChoices লোগোর জন্য আপনার নেটিভ বিজ্ঞাপন ভিউয়ের পছন্দের কোণে জায়গা ছেড়ে দিন। এছাড়াও, এটি গুরুত্বপূর্ণ যে AdChoices ওভারলে দেখা যায়, তাই সঠিকভাবে ব্যাকগ্রাউন্ডের রং এবং ছবি বেছে নিন। ওভারলে এর চেহারা এবং ফাংশন সম্পর্কে আরও তথ্যের জন্য, প্রোগ্রামেটিক নেটিভ বিজ্ঞাপন বাস্তবায়ন নির্দেশিকা পড়ুন।
প্রোগ্রামেটিক নেটিভ বিজ্ঞাপনের জন্য বিজ্ঞাপন অ্যাট্রিবিউশন
প্রোগ্রামেটিক নেটিভ বিজ্ঞাপনগুলি প্রদর্শন করার সময়, আপনাকে অবশ্যই একটি বিজ্ঞাপন অ্যাট্রিবিউশন প্রদর্শন করতে হবে যাতে বোঝা যায় যে দৃশ্যটি একটি বিজ্ঞাপন। আমাদের নীতি নির্দেশিকা আরো জানুন.
কোড উদাহরণ
একটি নেটিভ বিজ্ঞাপন প্রদর্শনের জন্য এই ধাপগুলি হল:
-
NativeAdView
ক্লাসের একটি উদাহরণ তৈরি করুন। প্রতিটি বিজ্ঞাপন সম্পদ প্রদর্শনের জন্য:
- বিজ্ঞাপন অবজেক্টে সম্পদের সাথে সম্পদের দৃশ্য পূরণ করুন।
-
NativeAdView
ক্লাসের সাথে সম্পদ দৃশ্য নিবন্ধন করুন।
আপনার নেটিভ বিজ্ঞাপন লেআউটে একটি বড় মিডিয়া সম্পদ অন্তর্ভুক্ত থাকলে
MediaView
নিবন্ধন করুন।NativeAdView
ক্লাসের সাথে বিজ্ঞাপন বস্তুটি নিবন্ধন করুন।
এখানে একটি উদাহরণ ফাংশন যা একটি NativeAd
প্রদর্শন করে:
জাভা
private void displayNativeAd(ViewGroup parent, NativeAd ad) {
// Inflate a layout and add it to the parent ViewGroup.
LayoutInflater inflater = (LayoutInflater) parent.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
NativeAdView adView = (NativeAdView) inflater
.inflate(R.layout.ad_layout_file, parent);
// Locate the view that will hold the headline, set its text, and call the
// NativeAdView's setHeadlineView method to register it.
TextView headlineView = adView.findViewById<TextView>(R.id.ad_headline);
headlineView.setText(ad.getHeadline());
adView.setHeadlineView(headlineView);
// Repeat the process for the other assets in the NativeAd
// using additional view objects (Buttons, ImageViews, etc).
// If the app is using a MediaView, it should be
// instantiated and passed to setMediaView. This view is a little different
// in that the asset is populated automatically, so there's one less step.
MediaView mediaView = (MediaView) adView.findViewById(R.id.ad_media);
adView.setMediaView(mediaView);
// Call the NativeAdView's setNativeAd method to register the
// NativeAdObject.
adView.setNativeAd(ad);
// Ensure that the parent view doesn't already contain an ad view.
parent.removeAllViews();
// Place the AdView into the parent.
parent.addView(adView);
}
কোটলিন
fun displayNativeAd(parent: ViewGroup, ad: NativeAd) {
// Inflate a layout and add it to the parent ViewGroup.
val inflater = parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE)
as LayoutInflater
val adView = inflater.inflate(R.layout.ad_layout_file, parent) as NativeAdView
// Locate the view that will hold the headline, set its text, and use the
// NativeAdView's headlineView property to register it.
val headlineView = adView.findViewById<TextView>(R.id.ad_headline)
headlineView.text = ad.headline
adView.headlineView = headlineView
// Repeat the process for the other assets in the NativeAd using
// additional view objects (Buttons, ImageViews, etc).
val mediaView = adView.findViewById<MediaView>(R.id.ad_media)
adView.mediaView = mediaView
// Call the NativeAdView's setNativeAd method to register the
// NativeAdObject.
adView.setNativeAd(ad)
// Ensure that the parent view doesn't already contain an ad view.
parent.removeAllViews()
// Place the AdView into the parent.
parent.addView(adView)
}
এখানে স্বতন্ত্র কাজগুলি রয়েছে:
লেআউট স্ফীত
জাভা
LayoutInflater inflater = (LayoutInflater) parent.getContext() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); NativeAdView adView = (NativeAdView) inflater .inflate(R.layout.ad_layout_file, parent);
কোটলিন
val inflater = parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater val adView = inflater.inflate(R.layout.ad_layout_file, parent) as NativeAdView
এই কোডটি একটি XML লেআউটকে স্ফীত করছে যাতে একটি নেটিভ বিজ্ঞাপন প্রদর্শন এবং তারপর
NativeAdView
এর একটি রেফারেন্স সনাক্ত করার জন্য ভিউ রয়েছে। মনে রাখবেন যে আপনার খণ্ড বা কার্যকলাপে যদি একটি বিদ্যমান থাকে তবে আপনি একটি বিদ্যমানNativeAdView
পুনরায় ব্যবহার করতে পারেন, অথবা এমনকি একটি বিন্যাস ফাইল ব্যবহার না করে গতিশীলভাবে একটি উদাহরণ তৈরি করতে পারেন৷সম্পদ ভিউ পপুলেট এবং রেজিস্টার করুন
এই নমুনা কোডটি শিরোনাম প্রদর্শনের জন্য ব্যবহৃত ভিউ সনাক্ত করে, বিজ্ঞাপন অবজেক্ট দ্বারা প্রদত্ত স্ট্রিং সম্পদ ব্যবহার করে এর পাঠ্য সেট করে এবং
NativeAdView
অবজেক্টের সাথে এটি নিবন্ধন করে:জাভা
TextView headlineView = adView.findViewById<TextView>(R.id.ad_headline); headlineView.setText(ad.getHeadline()); adView.setHeadlineView(headlineView);
কোটলিন
val headlineView = adView.findViewById<TextView>(R.id.ad_headline) headlineView.text = ad.headline adView.headlineView = headlineView
ভিউ লোকেটিং, এর মান সেট করা এবং অ্যাড ভিউ ক্লাসের সাথে রেজিস্টার করার এই প্রক্রিয়াটি নেটিভ অ্যাড অবজেক্টের দ্বারা প্রদত্ত প্রতিটি অ্যাসেটের জন্য পুনরাবৃত্তি করা উচিত যা অ্যাপটি প্রদর্শন করবে।
ক্লিক হ্যান্ডেল
নেটিভ অ্যাড ভিউয়ের উপর বা এর মধ্যে কোনও ভিউতে কোনও কাস্টম ক্লিক হ্যান্ডলার প্রয়োগ করবেন না। বিজ্ঞাপন ভিউ সম্পদের উপর ক্লিকগুলি SDK দ্বারা পরিচালিত হয় যতক্ষণ না আপনি সঠিকভাবে সম্পদের ভিউ পূরণ এবং নিবন্ধন করেন, যেমনটি পূর্ববর্তী বিভাগে আলোচনা করা হয়েছে।
ক্লিকগুলি শুনতে, Google মোবাইল বিজ্ঞাপন SDK ক্লিক কলব্যাক প্রয়োগ করুন:
জাভা
AdLoader adLoader = new AdLoader.Builder(context, "/21775744923/example/native") // ... .withAdListener(new AdListener() { @Override public void onAdFailedToLoad(LoadAdError adError) { // Handle the failure by logging. } @Override public void onAdClicked() { // Log the click event or other custom behavior. } }) .build();
কোটলিন
val adLoader = AdLoader.Builder(this, "/21775744923/example/native") // ... .withAdListener(object : AdListener() { override fun onAdFailedToLoad(adError: LoadAdError) { // Handle the failure. } override fun onAdClicked() { // Log the click event or other custom behavior. } }) .build()
মিডিয়াভিউ নিবন্ধন করুন
আপনি যদি আপনার নেটিভ বিজ্ঞাপনের লেআউটে একটি প্রধান চিত্র সম্পদ অন্তর্ভুক্ত করতে চান তবে আপনাকে
ImageView
সম্পদের পরিবর্তেMediaView
সম্পদ ব্যবহার করতে হবে।MediaView
হল একটি বিশেষView
যা প্রধান মিডিয়া সম্পদ, ভিডিও বা ছবি প্রদর্শন করার জন্য ডিজাইন করা হয়েছে।MediaView
একটি XML বিন্যাসে সংজ্ঞায়িত করা যেতে পারে বা গতিশীলভাবে তৈরি করা যেতে পারে। এটি একটিNativeAdView
এর ভিউ হায়ারার্কির মধ্যে স্থাপন করা উচিত, ঠিক অন্য যেকোন অ্যাসেট ভিউয়ের মতো। একটিMediaView
ব্যবহার করে অ্যাপগুলি অবশ্যইNativeAdView
এর সাথে নিবন্ধন করতে হবে:জাভা
// Populate and register the media asset view. nativeAdView.setMediaView(nativeAdBinding.adMedia);
কোটলিন
// Populate and register the media asset view. nativeAdView.mediaView = nativeAdBinding.adMedia
ইমেজস্কেল টাইপ
ছবি প্রদর্শন করার সময়
MediaView
ক্লাসে একটিImageScaleType
বৈশিষ্ট্য রয়েছে। আপনি যদিMediaView
একটি চিত্রকে কীভাবে স্কেল করা হয় তা পরিবর্তন করতে চান,MediaView
এরsetImageScaleType()
পদ্ধতি ব্যবহার করে সংশ্লিষ্টImageView.ScaleType
সেট করুন:জাভা
mediaView.setImageScaleType(ImageView.ScaleType.CENTER_CROP);
কোটলিন
mediaView.imageScaleType = ImageView.ScaleType.CENTER_CROP
মিডিয়া কন্টেন্ট
MediaContent
ক্লাস নেটিভ বিজ্ঞাপনের মিডিয়া বিষয়বস্তুর সাথে সম্পর্কিত ডেটা ধারণ করে, যাMediaView
ক্লাস ব্যবহার করে প্রদর্শিত হয়। যখনMediaView
mediaContent
সম্পত্তি একটিMediaContent
উদাহরণের সাথে সেট করা হয়:যদি একটি ভিডিও সম্পদ উপলব্ধ থাকে, এটি বাফার করা হয় এবং
MediaView
ভিতরে বাজানো শুরু করে। আপনিhasVideoContent()
চেক করে একটি ভিডিও সম্পদ উপলব্ধ কিনা তা বলতে পারেন৷যদি বিজ্ঞাপনটিতে একটি ভিডিও সম্পদ না থাকে,
mainImage
সম্পদ ডাউনলোড করা হয় এবং পরিবর্তেMediaView
ভিতরে রাখা হয়।
ডিফল্টরূপে,
mainImage
হল প্রথম ডাউনলোড করা ছবি সম্পদ। যদিsetReturnUrlsForImageAssets(true)
ব্যবহার করা হয়,mainImage
null
থাকে এবং আপনাকে অবশ্যই আপনার ম্যানুয়ালি ডাউনলোড করা ছবিতেmainImage
প্রপার্টি সেট করতে হবে। মনে রাখবেন যে এই ছবিটি শুধুমাত্র তখনই ব্যবহার করা হবে যখন কোনো ভিডিও সম্পদ উপলব্ধ না থাকে।নেটিভ বিজ্ঞাপন অবজেক্ট নিবন্ধন করুন
এই চূড়ান্ত ধাপটি নেটিভ বিজ্ঞাপন অবজেক্টটিকে দেখানোর জন্য দায়ী দৃশ্যের সাথে নিবন্ধিত করে।
জাভা
adView.setNativeAd(ad);
কোটলিন
adView.setNativeAd(ad)
বিজ্ঞাপন ধ্বংস
যখন আপনি আপনার নেটিভ বিজ্ঞাপনটি দেখানো শেষ করেন, তখন আপনাকে এটি ধ্বংস করতে হবে যাতে বিজ্ঞাপনটি সঠিকভাবে আবর্জনা সংগ্রহ করা হয়।
জাভা
nativeAd.destroy();
কোটলিন
nativeAd.destroy()
নেটিভ বিজ্ঞাপন কোড পরীক্ষা করুন
সরাসরি বিক্রি বিজ্ঞাপন
আপনি যদি সরাসরি-বিক্রীত নেটিভ বিজ্ঞাপনগুলি কেমন তা পরীক্ষা করতে চান, আপনি এই অ্যাড ম্যানেজার বিজ্ঞাপন ইউনিট আইডি ব্যবহার করতে পারেন:
/21775744923/example/native
এটি নমুনা অ্যাপ ইনস্টল এবং বিষয়বস্তু বিজ্ঞাপনের পাশাপাশি নিম্নলিখিত সম্পদগুলির সাথে একটি কাস্টম নেটিভ বিজ্ঞাপন বিন্যাস পরিবেশনের জন্য কনফিগার করা হয়েছে:
- শিরোনাম (পাঠ্য)
- মূল ছবি (ছবি)
- ক্যাপশন (পাঠ্য)
কাস্টম নেটিভ বিজ্ঞাপন ফরম্যাটের টেমপ্লেট আইডি হল 10063170
।
নেটিভ ব্যাকফিল বিজ্ঞাপন
Ad Exchange ব্যাকফিল প্রকাশকদের একটি নির্বাচিত গোষ্ঠীর মধ্যে সীমাবদ্ধ৷ নেটিভ ব্যাকফিল বিজ্ঞাপনের আচরণ পরীক্ষা করতে, এই অ্যাড ম্যানেজার বিজ্ঞাপন ইউনিট ব্যবহার করুন:
/21775744923/example/native-backfill
এটি নমুনা অ্যাপ ইনস্টল এবং বিষয়বস্তু বিজ্ঞাপন পরিবেশন করে যা AdChoices ওভারলে অন্তর্ভুক্ত করে।
লাইভ হওয়ার আগে আপনার আসল বিজ্ঞাপন ইউনিট এবং টেমপ্লেট আইডি উল্লেখ করতে আপনার কোড আপডেট করতে ভুলবেন না।
গিটহাবের উদাহরণ
নেটিভ বিজ্ঞাপনের সম্পূর্ণ প্রয়োগের উদাহরণ:
পরবর্তী পদক্ষেপ
নিম্নলিখিত বিষয়গুলি অন্বেষণ করুন: