একটি নেটিভ বিজ্ঞাপন প্রদর্শন করুন
যখন একটি নেটিভ বিজ্ঞাপন লোড হয়, তখন 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>
// Other assets such as image or media view, call to action, etc follow.
...
</LinearLayout>
</com.google.android.gms.ads.nativead.NativeAdView>
এখানে একটি উদাহরণ যা একটি NativeAdView
তৈরি করে এবং এটি একটি NativeAd
দিয়ে পপুলেট করে:
জাভা
AdLoader.Builder builder = new AdLoader.Builder(this, "AD_UNIT_ID")
.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 text, images and the native ad, etc into the ad
// view.
populateNativeAdView(nativeAd, adView);
frameLayout.removeAllViews();
frameLayout.addView(adView);
}
});
কোটলিন
val builder = AdLoader.Builder(this, "AD_UNIT_ID")
.forNativeAd { nativeAd ->
// 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 text, images and the native ad, etc into the ad
// view.
populateNativeAdView(nativeAd, adView)
// Assumes you have a placeholder FrameLayout in your View layout
// (with id ad_frame) where the ad is to be placed.
ad_frame.removeAllViews()
ad_frame.addView(adView)
}
মনে রাখবেন যে একটি প্রদত্ত নেটিভ বিজ্ঞাপনের সমস্ত সম্পদ NativeAdView
লেআউটের মধ্যে রেন্ডার করা উচিত। Google মোবাইল বিজ্ঞাপন SDK একটি সতর্কতা লগ করার চেষ্টা করে যখন নেটিভ অ্যাসেটগুলি নেটিভ অ্যাড ভিউ লেআউটের বাইরে রেন্ডার করা হয়।
বিজ্ঞাপন ভিউ ক্লাসগুলি প্রতিটি পৃথক সম্পত্তির জন্য ব্যবহৃত ভিউ নিবন্ধন করার জন্য ব্যবহৃত পদ্ধতি এবং একটি NativeAd
অবজেক্ট নিজেই নিবন্ধন করার জন্য ব্যবহার করা হয়। এইভাবে ভিউ নিবন্ধন করলে SDK স্বয়ংক্রিয়ভাবে কাজগুলি পরিচালনা করতে দেয় যেমন:
- রেকর্ডিং ক্লিক
- স্ক্রিনে প্রথম পিক্সেল দৃশ্যমান হলে ইম্প্রেশন রেকর্ড করা
- AdChoices ওভারলে প্রদর্শন করা হচ্ছে
AdChoices ওভারলে
SDK দ্বারা প্রতিটি বিজ্ঞাপন দৃশ্যে একটি AdChoices ওভারলে যোগ করা হয়। স্বয়ংক্রিয়ভাবে সন্নিবেশিত AdChoices লোগোর জন্য আপনার নেটিভ বিজ্ঞাপন দৃশ্যের আপনার পছন্দের কোণে স্থান ছেড়ে দিন। এছাড়াও, এটি গুরুত্বপূর্ণ যে AdChoices ওভারলে সহজে দেখা যায়, তাই সঠিকভাবে পটভূমির রং এবং ছবি বেছে নিন। ওভারলে এর চেহারা এবং ফাংশন সম্পর্কে আরও তথ্যের জন্য, নেটিভ বিজ্ঞাপন ক্ষেত্রের বিবরণ দেখুন।
বিজ্ঞাপন অ্যাট্রিবিউশন
আপনাকে অবশ্যই একটি বিজ্ঞাপন অ্যাট্রিবিউশন প্রদর্শন করতে হবে যে দৃশ্যটি একটি বিজ্ঞাপন। আমাদের নীতি নির্দেশিকা আরো জানুন.
কোড উদাহরণ
একটি নেটিভ বিজ্ঞাপন প্রদর্শনের জন্য এই ধাপগুলি হল:
-
NativeAdView
ক্লাসের একটি উদাহরণ তৈরি করুন। - প্রতিটি বিজ্ঞাপন সম্পদ প্রদর্শনের জন্য:
- বিজ্ঞাপন অবজেক্টে সম্পদের সাথে সম্পদের দৃশ্য পূরণ করুন।
-
ViewGroup
ক্লাসের সাথে সম্পদ ভিউ নিবন্ধন করুন।
- আপনার নেটিভ বিজ্ঞাপন লেআউটে একটি বড় মিডিয়া সম্পদ অন্তর্ভুক্ত থাকলে
MediaView
নিবন্ধন করুন। -
ViewGroup
ক্লাসের সাথে বিজ্ঞাপন বস্তুটি নিবন্ধন করুন।
এখানে একটি উদাহরণ ফাংশন যা একটি 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 above 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 above 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 দ্বারা পরিচালিত হয় যতক্ষণ না আপনি সঠিকভাবে সম্পদের ভিউ পূরণ এবং নিবন্ধন করেন, যেমনটি পূর্ববর্তী বিভাগে আলোচনা করা হয়েছে।
এখানে একটি উদাহরণ রয়েছে যা ক্লিক ইভেন্টগুলি পর্যবেক্ষণ করতে বিজ্ঞাপন শ্রোতাকে ব্যবহার করে:
জাভা
AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110") ... .withAdListener(new AdListener() { @Override public void onAdFailedToLoad(LoadAdError adError) { // Handle the failure by logging, altering the UI, and so on. } @Override public void onAdClicked() { // Log the click event or other custom behavior. } }) .build();
কোটলিন
val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110") ... .withAdListener(object : AdListener() { override fun onAdFailedToLoad(adError: LoadAdError) { // Handle the failure by logging, altering the UI, and so on. } }) .build()
মিডিয়াভিউ নিবন্ধন করুন
আপনি যদি আপনার নেটিভ বিজ্ঞাপনের লেআউটে একটি প্রধান চিত্র সম্পদ অন্তর্ভুক্ত করতে চান তবে আপনাকে
ImageView
সম্পদের পরিবর্তেMediaView
সম্পদ ব্যবহার করতে হবে।MediaView
হল একটি বিশেষView
যা প্রধান মিডিয়া সম্পদ, ভিডিও বা ছবি প্রদর্শন করার জন্য ডিজাইন করা হয়েছে।MediaView
একটি XML বিন্যাসে সংজ্ঞায়িত করা যেতে পারে বা গতিশীলভাবে তৈরি করা যেতে পারে। এটি একটিNativeAdView
এর ভিউ হায়ারার্কির মধ্যে স্থাপন করা উচিত, ঠিক অন্য যেকোন অ্যাসেট ভিউয়ের মতো। একটিMediaView
ব্যবহার করে অ্যাপগুলি অবশ্যইNativeAdView
এর সাথে নিবন্ধন করতে হবে:জাভা
MediaView mediaView = adView.findViewById(R.id.ad_media); adView.setMediaView(mediaView);
কোটলিন
adView.mediaView = adView.findViewById<MediaView>(R.id.ad_media)
সমস্ত সম্পদ দর্শনের মত, মিডিয়া ভিউ এর বিষয়বস্তু জনবহুল করা প্রয়োজন। এটি মিডিয়া কন্টেন্ট পুনরুদ্ধার করতে
getMediaContent()
পদ্ধতি ব্যবহার করে করা হয় যা একটিMediaView
এ পাস করা যেতে পারে। মিডিয়া ভিউয়ের জন্য মিডিয়া বিষয়বস্তু সেট করার জন্য এখানে একটি কোড স্নিপেট রয়েছে:জাভা
mediaView.setMediaContent(nativeAd.getMediaContent());
কোটলিন
mediaView.mediaContent = nativeAd.mediaContent
ইমেজস্কেল টাইপ
ছবি প্রদর্শন করার সময়
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()
গিটহাবের উদাহরণ
নেটিভ বিজ্ঞাপনের সম্পূর্ণ প্রয়োগের উদাহরণ:
পরবর্তী পদক্ষেপ
নিম্নলিখিত বিষয়গুলি অন্বেষণ করুন:
,একটি নেটিভ বিজ্ঞাপন প্রদর্শন করুন
যখন একটি নেটিভ বিজ্ঞাপন লোড হয়, তখন 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>
// Other assets such as image or media view, call to action, etc follow.
...
</LinearLayout>
</com.google.android.gms.ads.nativead.NativeAdView>
এখানে একটি উদাহরণ যা একটি NativeAdView
তৈরি করে এবং এটি একটি NativeAd
দিয়ে পপুলেট করে:
জাভা
AdLoader.Builder builder = new AdLoader.Builder(this, "AD_UNIT_ID")
.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 text, images and the native ad, etc into the ad
// view.
populateNativeAdView(nativeAd, adView);
frameLayout.removeAllViews();
frameLayout.addView(adView);
}
});
কোটলিন
val builder = AdLoader.Builder(this, "AD_UNIT_ID")
.forNativeAd { nativeAd ->
// 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 text, images and the native ad, etc into the ad
// view.
populateNativeAdView(nativeAd, adView)
// Assumes you have a placeholder FrameLayout in your View layout
// (with id ad_frame) where the ad is to be placed.
ad_frame.removeAllViews()
ad_frame.addView(adView)
}
মনে রাখবেন যে একটি প্রদত্ত নেটিভ বিজ্ঞাপনের সমস্ত সম্পদ NativeAdView
লেআউটের মধ্যে রেন্ডার করা উচিত। Google মোবাইল বিজ্ঞাপন SDK একটি সতর্কতা লগ করার চেষ্টা করে যখন নেটিভ অ্যাসেটগুলি নেটিভ অ্যাড ভিউ লেআউটের বাইরে রেন্ডার করা হয়।
বিজ্ঞাপন ভিউ ক্লাসগুলি প্রতিটি পৃথক সম্পত্তির জন্য ব্যবহৃত ভিউ নিবন্ধন করার জন্য ব্যবহৃত পদ্ধতি এবং একটি NativeAd
অবজেক্ট নিজেই নিবন্ধন করার জন্য ব্যবহার করা হয়। এইভাবে ভিউ নিবন্ধন করলে SDK স্বয়ংক্রিয়ভাবে কাজগুলি পরিচালনা করতে দেয় যেমন:
- রেকর্ডিং ক্লিক
- স্ক্রিনে প্রথম পিক্সেল দৃশ্যমান হলে ইম্প্রেশন রেকর্ড করা
- AdChoices ওভারলে প্রদর্শন করা হচ্ছে
AdChoices ওভারলে
SDK দ্বারা প্রতিটি বিজ্ঞাপন দৃশ্যে একটি AdChoices ওভারলে যোগ করা হয়। স্বয়ংক্রিয়ভাবে সন্নিবেশিত AdChoices লোগোর জন্য আপনার নেটিভ বিজ্ঞাপন দৃশ্যের আপনার পছন্দের কোণে স্থান ছেড়ে দিন। এছাড়াও, এটি গুরুত্বপূর্ণ যে AdChoices ওভারলে সহজে দেখা যায়, তাই সঠিকভাবে পটভূমির রং এবং ছবি বেছে নিন। ওভারলে এর চেহারা এবং ফাংশন সম্পর্কে আরও তথ্যের জন্য, নেটিভ বিজ্ঞাপন ক্ষেত্রের বিবরণ দেখুন।
বিজ্ঞাপন অ্যাট্রিবিউশন
আপনাকে অবশ্যই একটি বিজ্ঞাপন অ্যাট্রিবিউশন প্রদর্শন করতে হবে যে দৃশ্যটি একটি বিজ্ঞাপন। আমাদের নীতি নির্দেশিকা আরো জানুন.
কোড উদাহরণ
একটি নেটিভ বিজ্ঞাপন প্রদর্শনের জন্য এই ধাপগুলি হল:
-
NativeAdView
ক্লাসের একটি উদাহরণ তৈরি করুন। - প্রতিটি বিজ্ঞাপন সম্পদ প্রদর্শনের জন্য:
- বিজ্ঞাপন অবজেক্টে সম্পদের সাথে সম্পদের দৃশ্য পূরণ করুন।
-
ViewGroup
ক্লাসের সাথে সম্পদ ভিউ নিবন্ধন করুন।
- আপনার নেটিভ বিজ্ঞাপন লেআউটে একটি বড় মিডিয়া সম্পদ অন্তর্ভুক্ত থাকলে
MediaView
নিবন্ধন করুন। -
ViewGroup
ক্লাসের সাথে বিজ্ঞাপন বস্তুটি নিবন্ধন করুন।
এখানে একটি উদাহরণ ফাংশন যা একটি 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 above 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 above 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 দ্বারা পরিচালিত হয় যতক্ষণ না আপনি সঠিকভাবে সম্পদের ভিউ পূরণ এবং নিবন্ধন করেন, যেমনটি পূর্ববর্তী বিভাগে আলোচনা করা হয়েছে।
এখানে একটি উদাহরণ রয়েছে যা ক্লিক ইভেন্টগুলি পর্যবেক্ষণ করতে বিজ্ঞাপন শ্রোতাকে ব্যবহার করে:
জাভা
AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110") ... .withAdListener(new AdListener() { @Override public void onAdFailedToLoad(LoadAdError adError) { // Handle the failure by logging, altering the UI, and so on. } @Override public void onAdClicked() { // Log the click event or other custom behavior. } }) .build();
কোটলিন
val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110") ... .withAdListener(object : AdListener() { override fun onAdFailedToLoad(adError: LoadAdError) { // Handle the failure by logging, altering the UI, and so on. } }) .build()
মিডিয়াভিউ নিবন্ধন করুন
আপনি যদি আপনার নেটিভ বিজ্ঞাপনের লেআউটে একটি প্রধান চিত্র সম্পদ অন্তর্ভুক্ত করতে চান তবে আপনাকে
ImageView
সম্পদের পরিবর্তেMediaView
সম্পদ ব্যবহার করতে হবে।MediaView
হল একটি বিশেষView
যা প্রধান মিডিয়া সম্পদ, ভিডিও বা ছবি প্রদর্শন করার জন্য ডিজাইন করা হয়েছে।MediaView
একটি XML বিন্যাসে সংজ্ঞায়িত করা যেতে পারে বা গতিশীলভাবে তৈরি করা যেতে পারে। এটি একটিNativeAdView
এর ভিউ হায়ারার্কির মধ্যে স্থাপন করা উচিত, ঠিক অন্য যেকোন অ্যাসেট ভিউয়ের মতো। একটিMediaView
ব্যবহার করে অ্যাপগুলি অবশ্যইNativeAdView
এর সাথে নিবন্ধন করতে হবে:জাভা
MediaView mediaView = adView.findViewById(R.id.ad_media); adView.setMediaView(mediaView);
কোটলিন
adView.mediaView = adView.findViewById<MediaView>(R.id.ad_media)
সমস্ত সম্পদ দর্শনের মত, মিডিয়া ভিউ এর বিষয়বস্তু জনবহুল করা প্রয়োজন। এটি মিডিয়া কন্টেন্ট পুনরুদ্ধার করতে
getMediaContent()
পদ্ধতি ব্যবহার করে করা হয় যা একটিMediaView
এ পাস করা যেতে পারে। মিডিয়া ভিউয়ের জন্য মিডিয়া বিষয়বস্তু সেট করার জন্য এখানে একটি কোড স্নিপেট রয়েছে:জাভা
mediaView.setMediaContent(nativeAd.getMediaContent());
কোটলিন
mediaView.mediaContent = nativeAd.mediaContent
ইমেজস্কেল টাইপ
ছবি প্রদর্শন করার সময়
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()
গিটহাবের উদাহরণ
নেটিভ বিজ্ঞাপনের সম্পূর্ণ প্রয়োগের উদাহরণ:
পরবর্তী পদক্ষেপ
নিম্নলিখিত বিষয়গুলি অন্বেষণ করুন:
,একটি নেটিভ বিজ্ঞাপন প্রদর্শন করুন
যখন একটি নেটিভ বিজ্ঞাপন লোড হয়, তখন 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>
// Other assets such as image or media view, call to action, etc follow.
...
</LinearLayout>
</com.google.android.gms.ads.nativead.NativeAdView>
এখানে একটি উদাহরণ যা একটি NativeAdView
তৈরি করে এবং এটি একটি NativeAd
দিয়ে পপুলেট করে:
জাভা
AdLoader.Builder builder = new AdLoader.Builder(this, "AD_UNIT_ID")
.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 text, images and the native ad, etc into the ad
// view.
populateNativeAdView(nativeAd, adView);
frameLayout.removeAllViews();
frameLayout.addView(adView);
}
});
কোটলিন
val builder = AdLoader.Builder(this, "AD_UNIT_ID")
.forNativeAd { nativeAd ->
// 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 text, images and the native ad, etc into the ad
// view.
populateNativeAdView(nativeAd, adView)
// Assumes you have a placeholder FrameLayout in your View layout
// (with id ad_frame) where the ad is to be placed.
ad_frame.removeAllViews()
ad_frame.addView(adView)
}
মনে রাখবেন যে একটি প্রদত্ত নেটিভ বিজ্ঞাপনের সমস্ত সম্পদ NativeAdView
লেআউটের মধ্যে রেন্ডার করা উচিত। Google মোবাইল বিজ্ঞাপন SDK একটি সতর্কতা লগ করার চেষ্টা করে যখন নেটিভ অ্যাসেটগুলি নেটিভ অ্যাড ভিউ লেআউটের বাইরে রেন্ডার করা হয়।
বিজ্ঞাপন ভিউ ক্লাসগুলি প্রতিটি পৃথক সম্পত্তির জন্য ব্যবহৃত ভিউ নিবন্ধন করার জন্য ব্যবহৃত পদ্ধতি এবং একটি NativeAd
অবজেক্ট নিজেই নিবন্ধন করার জন্য ব্যবহার করা হয়। এইভাবে ভিউ নিবন্ধন করলে SDK স্বয়ংক্রিয়ভাবে কাজগুলি পরিচালনা করতে দেয় যেমন:
- রেকর্ডিং ক্লিক
- স্ক্রিনে প্রথম পিক্সেল দৃশ্যমান হলে ইম্প্রেশন রেকর্ড করা
- AdChoices ওভারলে প্রদর্শন করা হচ্ছে
AdChoices ওভারলে
SDK দ্বারা প্রতিটি বিজ্ঞাপন দৃশ্যে একটি AdChoices ওভারলে যোগ করা হয়। স্বয়ংক্রিয়ভাবে সন্নিবেশিত AdChoices লোগোর জন্য আপনার নেটিভ বিজ্ঞাপন দৃশ্যের আপনার পছন্দের কোণে স্থান ছেড়ে দিন। এছাড়াও, এটি গুরুত্বপূর্ণ যে AdChoices ওভারলে সহজে দেখা যায়, তাই সঠিকভাবে পটভূমির রং এবং ছবি বেছে নিন। ওভারলে এর চেহারা এবং ফাংশন সম্পর্কে আরও তথ্যের জন্য, নেটিভ বিজ্ঞাপন ক্ষেত্রের বিবরণ দেখুন।
বিজ্ঞাপন অ্যাট্রিবিউশন
আপনাকে অবশ্যই একটি বিজ্ঞাপন অ্যাট্রিবিউশন প্রদর্শন করতে হবে যে দৃশ্যটি একটি বিজ্ঞাপন। আমাদের নীতি নির্দেশিকা আরো জানুন.
কোড উদাহরণ
একটি নেটিভ বিজ্ঞাপন প্রদর্শনের জন্য এই ধাপগুলি হল:
-
NativeAdView
ক্লাসের একটি উদাহরণ তৈরি করুন। - প্রতিটি বিজ্ঞাপন সম্পদ প্রদর্শনের জন্য:
- বিজ্ঞাপন অবজেক্টে সম্পদের সাথে সম্পদের দৃশ্য পূরণ করুন।
-
ViewGroup
ক্লাসের সাথে সম্পদ ভিউ নিবন্ধন করুন।
- আপনার নেটিভ বিজ্ঞাপন লেআউটে একটি বড় মিডিয়া সম্পদ অন্তর্ভুক্ত থাকলে
MediaView
নিবন্ধন করুন। -
ViewGroup
ক্লাসের সাথে বিজ্ঞাপন বস্তুটি নিবন্ধন করুন।
এখানে একটি উদাহরণ ফাংশন যা একটি 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 above 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 above 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 দ্বারা পরিচালিত হয় যতক্ষণ না আপনি সঠিকভাবে সম্পদের ভিউ পূরণ এবং নিবন্ধন করেন, যেমনটি পূর্ববর্তী বিভাগে আলোচনা করা হয়েছে।
এখানে একটি উদাহরণ রয়েছে যা ক্লিক ইভেন্টগুলি পর্যবেক্ষণ করতে বিজ্ঞাপন শ্রোতাকে ব্যবহার করে:
জাভা
AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110") ... .withAdListener(new AdListener() { @Override public void onAdFailedToLoad(LoadAdError adError) { // Handle the failure by logging, altering the UI, and so on. } @Override public void onAdClicked() { // Log the click event or other custom behavior. } }) .build();
কোটলিন
val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110") ... .withAdListener(object : AdListener() { override fun onAdFailedToLoad(adError: LoadAdError) { // Handle the failure by logging, altering the UI, and so on. } }) .build()
মিডিয়াভিউ নিবন্ধন করুন
আপনি যদি আপনার নেটিভ বিজ্ঞাপনের লেআউটে একটি প্রধান চিত্র সম্পদ অন্তর্ভুক্ত করতে চান তবে আপনাকে
ImageView
সম্পদের পরিবর্তেMediaView
সম্পদ ব্যবহার করতে হবে।MediaView
হল একটি বিশেষView
যা প্রধান মিডিয়া সম্পদ, ভিডিও বা ছবি প্রদর্শন করার জন্য ডিজাইন করা হয়েছে।MediaView
একটি XML বিন্যাসে সংজ্ঞায়িত করা যেতে পারে বা গতিশীলভাবে তৈরি করা যেতে পারে। এটি একটিNativeAdView
এর ভিউ হায়ারার্কির মধ্যে স্থাপন করা উচিত, ঠিক অন্য যেকোন অ্যাসেট ভিউয়ের মতো। একটিMediaView
ব্যবহার করে অ্যাপগুলি অবশ্যইNativeAdView
এর সাথে নিবন্ধন করতে হবে:জাভা
MediaView mediaView = adView.findViewById(R.id.ad_media); adView.setMediaView(mediaView);
কোটলিন
adView.mediaView = adView.findViewById<MediaView>(R.id.ad_media)
সমস্ত সম্পদ দর্শনের মত, মিডিয়া ভিউ এর বিষয়বস্তু জনবহুল করা প্রয়োজন। এটি মিডিয়া কন্টেন্ট পুনরুদ্ধার করতে
getMediaContent()
পদ্ধতি ব্যবহার করে করা হয় যা একটিMediaView
এ পাস করা যেতে পারে। মিডিয়া ভিউয়ের জন্য মিডিয়া বিষয়বস্তু সেট করার জন্য এখানে একটি কোড স্নিপেট রয়েছে:জাভা
mediaView.setMediaContent(nativeAd.getMediaContent());
কোটলিন
mediaView.mediaContent = nativeAd.mediaContent
ইমেজস্কেল টাইপ
ছবি প্রদর্শন করার সময়
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()
গিটহাবের উদাহরণ
নেটিভ বিজ্ঞাপনের সম্পূর্ণ প্রয়োগের উদাহরণ:
পরবর্তী পদক্ষেপ
নিম্নলিখিত বিষয়গুলি অন্বেষণ করুন:
,একটি নেটিভ বিজ্ঞাপন প্রদর্শন করুন
যখন একটি নেটিভ বিজ্ঞাপন লোড হয়, তখন 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>
// Other assets such as image or media view, call to action, etc follow.
...
</LinearLayout>
</com.google.android.gms.ads.nativead.NativeAdView>
এখানে একটি উদাহরণ যা একটি NativeAdView
তৈরি করে এবং এটি একটি NativeAd
দিয়ে পপুলেট করে:
জাভা
AdLoader.Builder builder = new AdLoader.Builder(this, "AD_UNIT_ID")
.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 text, images and the native ad, etc into the ad
// view.
populateNativeAdView(nativeAd, adView);
frameLayout.removeAllViews();
frameLayout.addView(adView);
}
});
কোটলিন
val builder = AdLoader.Builder(this, "AD_UNIT_ID")
.forNativeAd { nativeAd ->
// 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 text, images and the native ad, etc into the ad
// view.
populateNativeAdView(nativeAd, adView)
// Assumes you have a placeholder FrameLayout in your View layout
// (with id ad_frame) where the ad is to be placed.
ad_frame.removeAllViews()
ad_frame.addView(adView)
}
মনে রাখবেন যে একটি প্রদত্ত নেটিভ বিজ্ঞাপনের সমস্ত সম্পদ NativeAdView
লেআউটের মধ্যে রেন্ডার করা উচিত। Google মোবাইল বিজ্ঞাপন SDK একটি সতর্কতা লগ করার চেষ্টা করে যখন নেটিভ অ্যাসেটগুলি নেটিভ অ্যাড ভিউ লেআউটের বাইরে রেন্ডার করা হয়।
বিজ্ঞাপন ভিউ ক্লাসগুলি প্রতিটি পৃথক সম্পত্তির জন্য ব্যবহৃত ভিউ নিবন্ধন করার জন্য ব্যবহৃত পদ্ধতি এবং একটি NativeAd
অবজেক্ট নিজেই নিবন্ধন করার জন্য ব্যবহার করা হয়। এইভাবে ভিউ নিবন্ধন করলে SDK স্বয়ংক্রিয়ভাবে কাজগুলি পরিচালনা করতে দেয় যেমন:
- রেকর্ডিং ক্লিক
- স্ক্রিনে প্রথম পিক্সেল দৃশ্যমান হলে ইম্প্রেশন রেকর্ড করা
- AdChoices ওভারলে প্রদর্শন করা হচ্ছে
AdChoices ওভারলে
SDK দ্বারা প্রতিটি বিজ্ঞাপন দৃশ্যে একটি AdChoices ওভারলে যোগ করা হয়। স্বয়ংক্রিয়ভাবে সন্নিবেশিত AdChoices লোগোর জন্য আপনার নেটিভ বিজ্ঞাপন দৃশ্যের আপনার পছন্দের কোণে স্থান ছেড়ে দিন। এছাড়াও, এটি গুরুত্বপূর্ণ যে AdChoices ওভারলে সহজে দেখা যায়, তাই সঠিকভাবে পটভূমির রং এবং ছবি বেছে নিন। ওভারলে এর চেহারা এবং ফাংশন সম্পর্কে আরও তথ্যের জন্য, নেটিভ বিজ্ঞাপন ক্ষেত্রের বিবরণ দেখুন।
বিজ্ঞাপন অ্যাট্রিবিউশন
আপনাকে অবশ্যই একটি বিজ্ঞাপন অ্যাট্রিবিউশন প্রদর্শন করতে হবে যে দৃশ্যটি একটি বিজ্ঞাপন। আমাদের নীতি নির্দেশিকা আরো জানুন.
কোড উদাহরণ
একটি নেটিভ বিজ্ঞাপন প্রদর্শনের জন্য এই ধাপগুলি হল:
-
NativeAdView
ক্লাসের একটি উদাহরণ তৈরি করুন। - প্রতিটি বিজ্ঞাপন সম্পদ প্রদর্শনের জন্য:
- বিজ্ঞাপন অবজেক্টে সম্পদের সাথে সম্পদের দৃশ্য পূরণ করুন।
-
ViewGroup
ক্লাসের সাথে সম্পদ ভিউ নিবন্ধন করুন।
- আপনার নেটিভ বিজ্ঞাপন লেআউটে একটি বড় মিডিয়া সম্পদ অন্তর্ভুক্ত থাকলে
MediaView
নিবন্ধন করুন। -
ViewGroup
ক্লাসের সাথে বিজ্ঞাপন বস্তুটি নিবন্ধন করুন।
এখানে একটি উদাহরণ ফাংশন যা একটি 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 above 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 above 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 দ্বারা পরিচালিত হয় যতক্ষণ না আপনি সঠিকভাবে সম্পদের ভিউ পূরণ এবং নিবন্ধন করেন, যেমনটি পূর্ববর্তী বিভাগে আলোচনা করা হয়েছে।
এখানে একটি উদাহরণ রয়েছে যা ক্লিক ইভেন্টগুলি পর্যবেক্ষণ করতে বিজ্ঞাপন শ্রোতাকে ব্যবহার করে:
জাভা
AdLoader adLoader = new AdLoader.Builder(context, "ca-app-pub-3940256099942544/2247696110") ... .withAdListener(new AdListener() { @Override public void onAdFailedToLoad(LoadAdError adError) { // Handle the failure by logging, altering the UI, and so on. } @Override public void onAdClicked() { // Log the click event or other custom behavior. } }) .build();
কোটলিন
val adLoader = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110") ... .withAdListener(object : AdListener() { override fun onAdFailedToLoad(adError: LoadAdError) { // Handle the failure by logging, altering the UI, and so on. } }) .build()
মিডিয়াভিউ নিবন্ধন করুন
আপনি যদি আপনার নেটিভ বিজ্ঞাপনের লেআউটে একটি প্রধান চিত্র সম্পদ অন্তর্ভুক্ত করতে চান তবে আপনাকে
ImageView
সম্পদের পরিবর্তেMediaView
সম্পদ ব্যবহার করতে হবে।MediaView
হল একটি বিশেষView
যা প্রধান মিডিয়া সম্পদ, ভিডিও বা ছবি প্রদর্শন করার জন্য ডিজাইন করা হয়েছে।MediaView
একটি XML বিন্যাসে সংজ্ঞায়িত করা যেতে পারে বা গতিশীলভাবে তৈরি করা যেতে পারে। এটি একটিNativeAdView
এর ভিউ হায়ারার্কির মধ্যে স্থাপন করা উচিত, ঠিক অন্য যেকোন অ্যাসেট ভিউয়ের মতো। একটিMediaView
ব্যবহার করে অ্যাপগুলি অবশ্যইNativeAdView
এর সাথে নিবন্ধন করতে হবে:জাভা
MediaView mediaView = adView.findViewById(R.id.ad_media); adView.setMediaView(mediaView);
কোটলিন
adView.mediaView = adView.findViewById<MediaView>(R.id.ad_media)
সমস্ত সম্পদ দর্শনের মত, মিডিয়া ভিউ এর বিষয়বস্তু জনবহুল করা প্রয়োজন। এটি মিডিয়া কন্টেন্ট পুনরুদ্ধার করতে
getMediaContent()
পদ্ধতি ব্যবহার করে করা হয় যা একটিMediaView
এ পাস করা যেতে পারে। মিডিয়া ভিউয়ের জন্য মিডিয়া বিষয়বস্তু সেট করার জন্য এখানে একটি কোড স্নিপেট রয়েছে:জাভা
mediaView.setMediaContent(nativeAd.getMediaContent());
কোটলিন
mediaView.mediaContent = nativeAd.mediaContent
ইমেজস্কেল টাইপ
ছবি প্রদর্শন করার সময়
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()
গিটহাবের উদাহরণ
নেটিভ বিজ্ঞাপনের সম্পূর্ণ প্রয়োগের উদাহরণ:
পরবর্তী পদক্ষেপ
নিম্নলিখিত বিষয়গুলি অন্বেষণ করুন: