ব্যানার বিজ্ঞাপন

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

এই নির্দেশিকা আপনাকে দেখায় কিভাবেAdMob থেকে একটি Android অ্যাপে ব্যানার বিজ্ঞাপনগুলিকে একীভূত করতে হয়৷ কোড স্নিপেট এবং নির্দেশাবলী ছাড়াও, এতে ব্যানারগুলিকে সঠিকভাবে আকার দেওয়ার এবং অতিরিক্ত সংস্থানগুলির লিঙ্কগুলি সম্পর্কে তথ্যও রয়েছে৷

পূর্বশর্ত

লেআউটে AdView যোগ করুন

একটি ব্যানার প্রদর্শনের দিকে প্রথম ধাপ হল AdView যে Activity বা Fragment আপনি এটি প্রদর্শন করতে চান তার লেআউটে স্থাপন করা। এটি করার সবচেয়ে সহজ উপায় হল সংশ্লিষ্ট XML লেআউট ফাইলে একটি যোগ করা। এখানে একটি উদাহরণ যা একটি কার্যকলাপের AdView দেখায়:

# main_activity.xml
<com.google.android.gms.ads.AdView
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/adView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_alignParentBottom="true"
    ads:adSize="BANNER"
    ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
</com.google.android.gms.ads.AdView>

নিম্নলিখিত প্রয়োজনীয় বৈশিষ্ট্যগুলি নোট করুন:

  • ads:adSize : আপনি যে বিজ্ঞাপন আকার ব্যবহার করতে চান তাতে এটি সেট করুন। আপনি যদি ধ্রুবক দ্বারা সংজ্ঞায়িত আদর্শ আকার ব্যবহার করতে না চান তবে আপনি পরিবর্তে একটি কাস্টম আকার সেট করতে পারেন। বিস্তারিত জানার জন্য ব্যানার আকার বিভাগ দেখুন.

  • ads:adUnitId : এটিকে আপনার অ্যাপের বিজ্ঞাপন ইউনিটে দেওয়া অনন্য শনাক্তকারীতে সেট করুন যেখানে বিজ্ঞাপনগুলি প্রদর্শন করা হবে। আপনি যদি বিভিন্ন ক্রিয়াকলাপে ব্যানার বিজ্ঞাপনগুলি দেখান তবে প্রতিটিতে একটি বিজ্ঞাপন ইউনিট প্রয়োজন হবে।

আপনি বিকল্পভাবে AdView প্রোগ্রামগতভাবে তৈরি করতে পারেন:

জাভা

AdView adView = new AdView(this);

adView.setAdSize(AdSize.BANNER);

adView.setAdUnitId("ca-app-pub-3940256099942544/6300978111");
// TODO: Add adView to your view hierarchy.

কোটলিন

val adView = AdView(this)

adView.adSize = AdSize.BANNER

adView.adUnitId = "ca-app-pub-3940256099942544/6300978111"
// TODO: Add adView to your view hierarchy.

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

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

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

ca-app-pub-3940256099942544/6300978111

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

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

একটি বিজ্ঞাপন লোড করুন

একবার AdView ঠিক হয়ে গেলে, পরবর্তী ধাপ হল একটি বিজ্ঞাপন লোড করা। এটি AdView ক্লাসে loadAd() পদ্ধতিতে করা হয়েছে। এটি একটি AdRequest প্যারামিটার লাগে, যা একটি একক বিজ্ঞাপন অনুরোধ সম্পর্কে রানটাইম তথ্য, যেমন টার্গেটিং তথ্য ধারণ করে।

এখানে একটি উদাহরণ রয়েছে যা দেখায় কিভাবে একটি Activity onCreate() পদ্ধতিতে একটি বিজ্ঞাপন লোড করতে হয়:

প্রধান কার্যকলাপ (উদ্ধৃতাংশ)

জাভা

package ...

import ...
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;

public class MainActivity extends AppCompatActivity {
    private AdView mAdView;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MobileAds.initialize(this, new OnInitializationCompleteListener() {
            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {
            }
        });

        mAdView = findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
    }
}

কোটলিন

package ...

import ...
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.AdView

class MainActivity : AppCompatActivity() {

    lateinit var mAdView : AdView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        MobileAds.initialize(this) {}

        mAdView = findViewById(R.id.adView)
        val adRequest = AdRequest.Builder().build()
        mAdView.loadAd(adRequest)
    }
}

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

এটাই! আপনার অ্যাপ এখন ব্যানার বিজ্ঞাপন প্রদর্শনের জন্য প্রস্তুত।

বিজ্ঞাপন ঘটনা

আপনার বিজ্ঞাপনের আচরণকে আরও কাস্টমাইজ করতে, আপনি বিজ্ঞাপনের জীবনচক্রের বেশ কয়েকটি ইভেন্টের সাথে যুক্ত করতে পারেন: লোড করা, খোলা, বন্ধ করা ইত্যাদি। আপনি AdListener ক্লাসের মাধ্যমে এই ইভেন্টগুলির জন্য শুনতে পারেন।

AdView এর সাথে একটি AdListener ব্যবহার করতে, setAdListener() পদ্ধতিতে কল করুন:

জাভা

mAdView.setAdListener(new AdListener() {
    @Override
    public void onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    @Override
    public void onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    @Override
    public void onAdFailedToLoad(LoadAdError adError) {
      // Code to be executed when an ad request fails.
    }

    @Override
    public void onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    @Override
    public void onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    @Override
    public void onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
});

কোটলিন

mAdView.adListener = object: AdListener() {
    override fun onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    override fun onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    override fun onAdFailedToLoad(adError : LoadAdError) {
      // Code to be executed when an ad request fails.
    }

    override fun onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    override fun onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    override fun onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
}

AdListener এর প্রতিটি ওভাররিডেবল পদ্ধতি একটি বিজ্ঞাপনের জীবনচক্রের একটি ইভেন্টের সাথে মিলে যায়।

ওভাররিডেবল পদ্ধতি
onAdClicked() একটি বিজ্ঞাপনের জন্য একটি ক্লিক রেকর্ড করা হলে onAdClicked() পদ্ধতিটি চালু করা হয়।
onAdClosed() onAdClosed() পদ্ধতিটি চালু করা হয় যখন একজন ব্যবহারকারী বিজ্ঞাপনের গন্তব্য URL দেখার পরে অ্যাপে ফিরে আসেন। আপনার অ্যাপ স্থগিত ক্রিয়াকলাপগুলি পুনরায় শুরু করতে বা নিজেকে ইন্টারঅ্যাকশনের জন্য প্রস্তুত করতে প্রয়োজনীয় অন্য কোনও কাজ করতে এটি ব্যবহার করতে পারে। Android API ডেমো অ্যাপে বিজ্ঞাপন শ্রোতা পদ্ধতি বাস্তবায়নের জন্য AdMob AdListener উদাহরণ পড়ুন।
onAdFailedToLoad() onAdFailedToLoad() পদ্ধতিটি একমাত্র যা একটি প্যারামিটার অন্তর্ভুক্ত করে। LoadAdError টাইপের ত্রুটির প্যারামিটার বর্ণনা করে কী ত্রুটি ঘটেছে। আরও তথ্যের জন্য, ডিবাগিং অ্যাড লোড ত্রুটি ডকুমেন্টেশন পড়ুন।
onAdImpression() onAdImpression() পদ্ধতিটি চালু করা হয় যখন একটি বিজ্ঞাপনের জন্য একটি ইম্প্রেশন রেকর্ড করা হয়।
onAdLoaded() একটি বিজ্ঞাপন লোড করা শেষ হলে onAdLoaded() পদ্ধতিটি কার্যকর করা হয়। আপনি যদি নিশ্চিত না হন যে একটি বিজ্ঞাপন লোড হবে না হওয়া পর্যন্ত আপনার কার্যকলাপ বা খণ্ডে AdView যোগ করতে বিলম্ব করতে চান, উদাহরণস্বরূপ, আপনি এখানে তা করতে পারেন।
onAdOpened() onAdOpened() পদ্ধতিটি চালু করা হয় যখন একটি বিজ্ঞাপন একটি ওভারলে খোলে যা স্ক্রীনকে কভার করে।

আপনি যে পাত্রে আপনার বিজ্ঞাপন রাখবেন তার আকারটি অবশ্যই ব্যানারের মতো বড় হতে হবে। যদি আপনার পাত্রে প্যাডিং থাকে তবে এটি কার্যকরভাবে আপনার ধারকটির আকার হ্রাস করে। ধারকটি ব্যানার বিজ্ঞাপনের সাথে মানানসই না হলে ব্যানারটি প্রদর্শিত হবে না এবং আপনি লগগুলিতে এই সতর্কতাটি পাবেন:

W/Ads: Not enough space to show ad. Needs 320x50 dp, but only has 288x495 dp.

নিচের সারণীতে স্ট্যান্ডার্ড ব্যানারের মাপ তালিকা করা আছে।

dp তে আকার (WxH) বর্ণনা উপস্থিতি বিজ্ঞাপনের আকার ধ্রুবক
320x50 ব্যানার ফোন এবং ট্যাবলেট BANNER
320x100 বড় ব্যানার ফোন এবং ট্যাবলেট LARGE_BANNER
300x250 IAB মাঝারি আয়তক্ষেত্র ফোন এবং ট্যাবলেট MEDIUM_RECTANGLE
468x60 IAB পূর্ণ আকারের ব্যানার ট্যাবলেট FULL_BANNER
728x90 IAB লিডারবোর্ড ট্যাবলেট LEADERBOARD
প্রদত্ত প্রস্থ x অভিযোজিত উচ্চতা অভিযোজিত ব্যানার ফোন এবং ট্যাবলেট N/A
স্ক্রিনের প্রস্থ x 32|50|90 স্মার্ট ব্যানার ফোন এবং ট্যাবলেট SMART_BANNER

একটি কাস্টম ব্যানার আকার সংজ্ঞায়িত করতে, দেখানো হিসাবে আপনার পছন্দসই AdSize সেট করুন:

জাভা

AdSize adSize = new AdSize(300, 50);

কোটলিন

val adSize = AdSize(300, 50)

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

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

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

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

যদি আপনার অ্যাপটি বিশ্বব্যাপী হার্ডওয়্যার ত্বরণ চালু করার সাথে সঠিকভাবে আচরণ না করে, তাহলে আপনি পৃথক কার্যকলাপের জন্যও এটি নিয়ন্ত্রণ করতে পারেন। হার্ডওয়্যার ত্বরণ সক্ষম বা অক্ষম করতে, আপনি আপনার 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>

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

অতিরিক্ত সম্পদ

গিটহাবের উদাহরণ

মোবাইল বিজ্ঞাপন গ্যারেজ ভিডিও টিউটোরিয়াল

সাফল্যের গল্প

পরবর্তী পদক্ষেপ

নিম্নলিখিত বিষয়গুলি অন্বেষণ করুন: