নেটিভ বিজ্ঞাপন

নেটিভ বিজ্ঞাপন হল বিজ্ঞাপন সম্পদ যা ব্যবহারকারীদের কাছে UI উপাদানের মাধ্যমে উপস্থাপন করা হয় যা প্ল্যাটফর্মের নেটিভ। সেগুলি একই ধরণের ভিউ ব্যবহার করে দেখানো হয় যার সাহায্যে আপনি ইতিমধ্যে আপনার লেআউট তৈরি করছেন এবং আপনার অ্যাপের ভিজ্যুয়াল ডিজাইনের সাথে মেলে ফর্ম্যাট করা যেতে পারে৷

যখন একটি নেটিভ বিজ্ঞাপন লোড হয়, তখন আপনার অ্যাপ একটি বিজ্ঞাপন অবজেক্ট পায় যাতে এর সম্পদ থাকে এবং অ্যাপটি—Google মোবাইল বিজ্ঞাপন SDK-এর পরিবর্তে—তাহলে সেগুলি দেখানোর জন্য দায়ী৷

বিস্তৃতভাবে বলতে গেলে, নেটিভ বিজ্ঞাপনগুলি সফলভাবে বাস্তবায়নের দুটি অংশ রয়েছে: SDK ব্যবহার করে একটি বিজ্ঞাপন লোড করা এবং তারপরে আপনার অ্যাপে বিজ্ঞাপন সামগ্রী প্রদর্শন করা।

এই পৃষ্ঠাটি দেখায় কিভাবে নেটিভ বিজ্ঞাপন লোড করতে SDK ব্যবহার করতে হয়।

পূর্বশর্ত

সর্বদা পরীক্ষার বিজ্ঞাপন দিয়ে পরীক্ষা করুন

আপনার অ্যাপ তৈরি এবং পরীক্ষা করার সময়, নিশ্চিত করুন যে আপনি লাইভ, প্রোডাকশন বিজ্ঞাপনের পরিবর্তে পরীক্ষামূলক বিজ্ঞাপন ব্যবহার করছেন।

টেস্ট বিজ্ঞাপন লোড করার সবচেয়ে সহজ উপায় হল Android-এ নেটিভ বিজ্ঞাপনের জন্য আমাদের ডেডিকেটেড টেস্ট অ্যাড ইউনিট আইডি ব্যবহার করা:

/6499/example/native

প্রতিটি অনুরোধের জন্য পরীক্ষার বিজ্ঞাপনগুলি ফেরত দেওয়ার জন্য এটি বিশেষভাবে কনফিগার করা হয়েছে এবং আপনি কোডিং, পরীক্ষা এবং ডিবাগ করার সময় এটি আপনার নিজের অ্যাপে ব্যবহার করতে পারেন৷ আপনার অ্যাপ প্রকাশ করার আগে শুধু নিশ্চিত করুন যে আপনি এটিকে আপনার নিজের বিজ্ঞাপন ইউনিট আইডি দিয়ে প্রতিস্থাপন করেছেন।

Google মোবাইল বিজ্ঞাপন SDK-এর পরীক্ষার বিজ্ঞাপনগুলি কীভাবে কাজ করে সে সম্পর্কে আরও তথ্যের জন্য, পরীক্ষা বিজ্ঞাপনগুলি দেখুন।

লোড বিজ্ঞাপন

নেটিভ বিজ্ঞাপনগুলি AdLoader ক্লাসের সাথে লোড করা হয়, যার নিজস্ব Builder ক্লাস রয়েছে যা তৈরি করার সময় এটি কাস্টমাইজ করতে পারে। এটি তৈরি করার সময় AdLoader শ্রোতাদের যোগ করে, একটি অ্যাপ নির্দিষ্ট করে যে এটি কোন ধরনের নেটিভ বিজ্ঞাপনগুলি গ্রহণ করতে প্রস্তুত। AdLoader তারপর শুধুমাত্র এই ধরনের অনুরোধ.

একটি অ্যাডলোডার তৈরি করুন

নিম্নলিখিত কোডটি দেখায় কিভাবে একটি AdLoader তৈরি করতে হয় যা নেটিভ বিজ্ঞাপন লোড করতে পারে:

জাভা

AdLoader adLoader = new AdLoader.Builder(context, "/6499/example/native")
    .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
        @Override
        public void onNativeAdLoaded(NativeAd nativeAd) {
            // Show the ad.
        }
    })
    .withAdListener(new AdListener() {
        @Override
        public void onAdFailedToLoad(LoadAdError adError) {
            // Handle the failure by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(new NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build();

কোটলিন

val adLoader = AdLoader.Builder(this, "/6499/example/native")
    .forNativeAd { ad : NativeAd ->
        // Show the ad.
    }
    .withAdListener(object : AdListener() {
        override fun onAdFailedToLoad(adError: LoadAdError) {
            // Handle the failure by logging, altering the UI, and so on.
        }
    })
    .withNativeAdOptions(NativeAdOptions.Builder()
            // Methods in the NativeAdOptions.Builder class can be
            // used here to specify individual options settings.
            .build())
    .build()

forNativeAd() পদ্ধতি NativeAd ফরম্যাটের জন্য AdLoader প্রস্তুত করার জন্য দায়ী। একটি বিজ্ঞাপন সফলভাবে লোড হলে, শ্রোতা বস্তুর onNativeAdLoaded() পদ্ধতি বলা হয়।

AdLoader এর সাথে একটি AdListener সেট আপ করুন (ঐচ্ছিক)

AdLoader তৈরি করার সময়, withAdListener ফাংশন লোডারের জন্য একটি AdListener সেট করে। পদ্ধতিটি একটি AdListener তার একমাত্র প্যারামিটার হিসাবে নেয়, যেটি AdLoader থেকে কলব্যাক গ্রহণ করে যখন বিজ্ঞাপনের জীবনচক্রের ঘটনা ঘটে:

জাভা

.withAdListener(new AdListener() {
    // AdListener callbacks can be overridden here.
})

কোটলিন

.withAdListener(object : AdListener() {
    // AdListener callbacks can be overridden here.
})

বিজ্ঞাপনের জন্য অনুরোধ করুন

একবার আপনি একটি AdLoader তৈরি করা শেষ করলে, এটি বিজ্ঞাপনের অনুরোধ করার জন্য এটি ব্যবহার করার সময়। loadAd() পদ্ধতিটি ব্যবহার করুন যা একটি AdManagerAdRequest অবজেক্টকে তার প্রথম প্যারামিটার হিসাবে নেয়। এটি একই AdManagerAdRequest ক্লাস ব্যানার এবং ইন্টারস্টিশিয়াল দ্বারা ব্যবহৃত হয়, এবং আপনি AdManagerAdRequest ক্লাসের পদ্ধতিগুলি টার্গেটিং তথ্য যোগ করতে ব্যবহার করতে পারেন, ঠিক যেমন আপনি অন্যান্য বিজ্ঞাপন ফর্ম্যাটের সাথে করবেন৷

loadAd()

এই পদ্ধতিটি একটি একক বিজ্ঞাপনের জন্য একটি অনুরোধ পাঠায়।

জাভা

adLoader.loadAd(new AdManagerAdRequest.Builder().build());

কোটলিন

adLoader.loadAd(AdManagerAdRequest.Builder().build())

কলব্যাক

loadAd() এ কল করার পর, নেটিভ বিজ্ঞাপন অবজেক্ট ডেলিভার করতে বা একটি ত্রুটি রিপোর্ট করার জন্য পূর্বে সংজ্ঞায়িত শ্রোতা পদ্ধতিতে একটি একক কলব্যাক করা হয়।

রিলিজ সম্পদ

লোড করা নেটিভ বিজ্ঞাপনগুলিতে destroy() পদ্ধতি ব্যবহার করতে ভুলবেন না। এটি ব্যবহৃত সম্পদ প্রকাশ করে এবং মেমরি লিক প্রতিরোধ করে।

আপনার কার্যকলাপের onDestroy() পদ্ধতিতে সমস্ত NativeAd রেফারেন্স ধ্বংস করা হয়েছে তা নিশ্চিত করুন।

আপনার onNativeAdLoaded কলব্যাকে, যে কোনো বিদ্যমান নেটিভ বিজ্ঞাপনগুলিকে ডিরেফারেন্স করা হবে তা ধ্বংস করতে ভুলবেন না।

আরেকটি মূল চেক হল কার্যকলাপ ধ্বংস হয়ে গেছে কিনা এবং যদি তাই হয়, তাহলে প্রত্যাবর্তিত বিজ্ঞাপনে destroy() কল করুন এবং অবিলম্বে ফিরে আসুন:

জাভা

final AdLoader adLoader = new AdLoader.Builder(this, "/6499/example/native")
        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
    @Override
    public void onNativeAdLoaded(NativeAd nativeAd) {
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed()` is a method on Activity.
        if (isDestroyed()) {
            nativeAd.destroy();
            return;
        }
        ...
    }
}).build();

কোটলিন

lateinit var adLoader: AdLoader
...
adLoader = AdLoader.Builder(this, "/6499/example/native")
    .forNativeAd { nativeAd ->
        // If this callback occurs after the activity is destroyed, you
        // must call destroy and return or you may get a memory leak.
        // Note `isDestroyed` is a method on Activity.
        if (isDestroyed) {
            nativeAd.destroy()
            return@forNativeAd
        }
        ...
    }.build()

সেরা অনুশীলন

বিজ্ঞাপন লোড করার সময় এই নিয়মগুলি অনুসরণ করুন।

  • যে অ্যাপগুলি একটি তালিকায় নেটিভ বিজ্ঞাপনগুলি ব্যবহার করে সেগুলিকে বিজ্ঞাপনের তালিকা প্রিক্যাচ করা উচিত৷

  • বিজ্ঞাপন প্রচার করার সময়, আপনার ক্যাশে সাফ করুন এবং এক ঘন্টা পরে পুনরায় লোড করুন।

  • প্রথম অনুরোধ লোডিং শেষ না হওয়া পর্যন্ত একটি AdLoaderloadAd() কল করবেন না।

ভিডিও বিজ্ঞাপনের জন্য হার্ডওয়্যার ত্বরণ

আপনার নেটিভ বিজ্ঞাপন দৃশ্যে ভিডিও বিজ্ঞাপনগুলি সফলভাবে দেখানোর জন্য, হার্ডওয়্যার ত্বরণ সক্ষম করতে হবে।

হার্ডওয়্যার ত্বরণ ডিফল্টরূপে সক্ষম থাকে, তবে কিছু অ্যাপ এটিকে নিষ্ক্রিয় করতে বেছে নিতে পারে। এটি আপনার অ্যাপে প্রযোজ্য হলে, আমরা বিজ্ঞাপন ব্যবহার করে এমন কার্যকলাপের ক্লাসের জন্য হার্ডওয়্যার ত্বরণ সক্ষম করার পরামর্শ দিই।

হার্ডওয়্যার ত্বরণ সক্ষম করা হচ্ছে

যদি আপনার অ্যাপটি বিশ্বব্যাপী হার্ডওয়্যার ত্বরণ চালু করার সাথে সঠিকভাবে আচরণ না করে, তাহলে আপনি পৃথক কার্যকলাপের জন্যও এটি নিয়ন্ত্রণ করতে পারেন। হার্ডওয়্যার ত্বরণ সক্ষম বা অক্ষম করতে, আপনার AndroidManifest.xml<application> এবং <activity> উপাদানগুলির জন্য android:hardwareAccelerated বৈশিষ্ট্যটি ব্যবহার করুন। নিম্নলিখিত উদাহরণটি সম্পূর্ণ অ্যাপের জন্য হার্ডওয়্যার ত্বরণ সক্ষম করে কিন্তু একটি কার্যকলাপের জন্য এটি অক্ষম করে:

<application android:hardwareAccelerated="true">
    <!-- For activities that use ads, hardwareAcceleration should be true. -->
    <activity android:hardwareAccelerated="true" />
    <!-- For activities that don't use ads, hardwareAcceleration can be false. -->
    <activity android:hardwareAccelerated="false" />
</application>

হার্ডওয়্যার ত্বরণ নিয়ন্ত্রণের বিকল্পগুলি সম্পর্কে আরও তথ্যের জন্য HW ত্বরণ নির্দেশিকা দেখুন। মনে রাখবেন যে কার্যকলাপটি অক্ষম থাকলে হার্ডওয়্যার ত্বরণের জন্য পৃথক বিজ্ঞাপন দৃশ্যগুলি সক্ষম করা যাবে না, তাই ক্রিয়াকলাপ নিজেই হার্ডওয়্যার ত্বরণ সক্ষম থাকতে হবে৷

আপনার বিজ্ঞাপন প্রদর্শন করুন

একবার আপনি একটি বিজ্ঞাপন লোড করার পরে, যা অবশিষ্ট থাকে তা হল আপনার ব্যবহারকারীদের কাছে এটি প্রদর্শন করা। কিভাবে দেখতে আমাদের নেটিভ অ্যাডভান্সড গাইডে যান।