এবার শুরু করা যাক

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

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

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

পূর্বশর্ত

  • Google মোবাইল বিজ্ঞাপন ইউনিটি প্লাগইন সংস্করণ 7.0.0 বা উচ্চতর।
  • শুরু করুন গাইডটি সম্পূর্ণ করুন।
  • নেটিভ বিজ্ঞাপন অ্যাড-অন ডাউনলোড এবং ইনস্টল করুন।

নেটিভ বিজ্ঞাপন ফরম্যাট লোড করুন

নেটিভ বিজ্ঞাপনগুলি AdLoader ক্লাসের মাধ্যমে লোড করা হয়, যার নিজস্ব AdLoader.Builder শ্রেণী তৈরির সময় কাস্টমাইজ করা হয়। ForNativeAd() পদ্ধতি নেটিভ বিজ্ঞাপনগুলি পরিচালনা করতে AdLoader কনফিগার করে।

private void RequestNativeAd() {
    AdLoader adLoader = new AdLoader.Builder(INSERT_AD_UNIT_HERE)
        .ForNativeAd()
        .Build();
}

AdLoader বিজ্ঞাপন ইভেন্টের জন্য নিবন্ধন করুন

একটি নেটিভ বিজ্ঞাপন সফলভাবে লোড হলে বা লোড হতে ব্যর্থ হলে বিজ্ঞপ্তি পেতে, নীচে তালিকাভুক্ত ইভেন্টগুলির জন্য AdLoader ক্লাসে প্রতিনিধি যোগ করুন।

OnNativeAdLoaded

একটি নেটিভ বিজ্ঞাপন সফলভাবে লোড হলে আহ্বান করা হয়। লোড হওয়া বিজ্ঞাপনটি অ্যাক্সেস করার জন্য এই ইভেন্টের জন্য একজন প্রতিনিধি থাকা প্রয়োজন৷

OnAdFailedToLoad

একটি নেটিভ বিজ্ঞাপন লোড করতে ব্যর্থ হলে আহ্বান করা হয়।

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

একবার আপনি একটি AdLoader তৈরি করা শেষ হলে, একটি বিজ্ঞাপনের অনুরোধ করতে এটির LoadAd() পদ্ধতিতে কল করুন:

adLoader.LoadAd(new AdRequest.Builder().Build());

বিজ্ঞাপন অনুরোধ একসাথে রাখুন

নীচের কোড স্নিপেটটি দেখায় কিভাবে একটি AdLoader তৈরি করতে হয় যা নেটিভ বিজ্ঞাপনের অনুরোধ করার জন্য কনফিগার করা হয়, সফল এবং ব্যর্থ বিজ্ঞাপন লোডের জন্য প্রতিনিধি সেট করে এবং একটি বিজ্ঞাপন অনুরোধ করে।

private void RequestNativeAd() {
    AdLoader adLoader = new AdLoader.Builder(INSERT_AD_UNIT_HERE)
        .ForNativeAd()
        .Build();
    adLoader.OnNativeAdLoaded += this.HandleNativeAdLoaded;
    adLoader.OnAdFailedToLoad += this.HandleAdFailedToLoad;
    adLoader.LoadAd(new AdRequest.Builder().Build());
}

ব্যর্থ বিজ্ঞাপন লোড পরিচালনা করুন

OnAdFailedToLoad ইভেন্টটি EventHandle<AdFailedToLoadEventArgs> টাইপের। এই ইভেন্ট থেকে একটি বিজ্ঞাপন লোড ব্যর্থতার কারণ পার্সিং নীচে দেখানো হয়েছে.

private void RequestNativeAd() {
    ...
    adLoader.OnAdFailedToLoad += this.HandleNativeAdFailedToLoad;
}

private void HandleNativeAdFailedToLoad(object sender, AdFailedToLoadEventArgs args) {
    Debug.Log("Native ad failed to load: " + args.Message);
}

একটি নেটিভ বিজ্ঞাপন প্রদর্শন করুন

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

বিজ্ঞাপন লোড হ্যান্ডেল

OnNativeAdLoaded ইভেন্টটি EventHandler<NativeAdEventArgs> টাইপের। NativeAd অবজেক্টে এনক্যাপসুলেট করা বিজ্ঞাপনটি NativeAdEventArgs থেকে পুনরুদ্ধার করা যেতে পারে যেমন দেখানো হয়েছে:

private NativeAd nativeAd;
...
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
    Debug.Log("Native ad loaded.");
    this.nativeAd = args.nativeAd;
}

নেটিভ বিজ্ঞাপন সম্পদ পুনরুদ্ধার করুন

বিজ্ঞাপনগুলি একবার লোড হয়ে গেলে, নীচে দেখানো হিসাবে তাদের সম্পদগুলি অ্যাক্সেস করা যেতে পারে৷ গ্রাফিকাল সম্পদগুলি Texture2D অবজেক্ট হিসাবে ফেরত দেওয়া হয় এবং টেক্সট সম্পদগুলি string অবজেক্ট হিসাবে ফেরত দেওয়া হয়।

private bool nativeAdLoaded;
private NativeAd nativeAd;

void Update() {
    ...

    if (this.nativeAdLoaded) {
        this.nativeAdLoaded = false;
        // Get Texture2D for the icon asset of native ad.
        Texture2D iconTexture = this.nativeAd.GetIconTexture();

        // Get string for headline asset of native ad.
        string headline = this.nativeAd.GetHeadlineText();
    }
}

private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
    Debug.Log("Native ad loaded.");
    this.nativeAd = args.nativeAd;
    this.nativeAdLoaded = true;
}

নোট করুন যে বিজ্ঞাপন সম্পদগুলি শুধুমাত্র প্রধান থ্রেডে অ্যাক্সেস করা উচিত, উদাহরণস্বরূপ, একটি ইউনিটি স্ক্রিপ্টের Update() পদ্ধতি থেকে। এছাড়াও মনে রাখবেন যে নিম্নলিখিত সম্পদগুলি সর্বদা উপস্থিত থাকার গ্যারান্টিযুক্ত নয় এবং প্রদর্শিত হওয়ার আগে চেক করা উচিত:

  • GetStarRating()
  • GetStore()
  • GetPrice()
  • GetAdvertiser()
  • GetIconTexture()

AdChoices সম্পদ

নেটিভ বিজ্ঞাপনের অংশ হিসেবে AdChoices বিজ্ঞাপন সম্পদ প্রদর্শন করা আবশ্যক। এছাড়াও, এটি গুরুত্বপূর্ণ যে AdChoices বিজ্ঞাপন সম্পদ সহজে দেখা যায়, তাই সঠিকভাবে পটভূমির রং এবং ছবি বেছে নিন।

বিজ্ঞাপন সম্পদের জন্য গেমঅবজেক্ট নিবন্ধন করুন

আপনার ইউনিটি অ্যাপে প্রদর্শিত বিজ্ঞাপন সম্পদের জন্য আপনাকে অবশ্যই GameObject নিবন্ধন করতে হবে। নিবন্ধন সফল হলে, GameObject নিবন্ধন করার জন্য ব্যবহৃত পদ্ধতি একটি bool প্রদান করে। একটি List<GameObject> , পদ্ধতিটি একটি int প্রদান করে যা সফলভাবে নিবন্ধিত GameObject গণনা নির্দেশ করে।

যদি একটি বিজ্ঞাপন সম্পদের নিবন্ধন ব্যর্থ হয়, তাহলে সংশ্লিষ্ট নেটিভ বিজ্ঞাপনে ইম্প্রেশন এবং ক্লিকগুলি স্বীকৃত হবে না।

if (!this.nativeAd.RegisterIconImageGameObject(icon))
{
    // Handle failure to register the icon ad asset.
}

একটি বিজ্ঞাপন সম্পদের জন্য নিবন্ধিত GameObject এ অবশ্যই একটি উত্তল কোলাইডার উপাদান থাকতে হবে যা GameObject এর আকার এবং আকৃতির প্রতিনিধিত্ব করে। বিজ্ঞাপন সম্পদে নিবন্ধিত GameObject অবজেক্টে Collider উপাদান অনুপস্থিত থাকলে বা ভুলভাবে কনফিগার করা থাকলে, নেটিভ বিজ্ঞাপনগুলি সঠিকভাবে কাজ করবে না।

নীচের কোড স্নিপেটে, একটি BoxCollider GameObject এ যোগ করা হয়েছে যা একটি নেটিভ বিজ্ঞাপনের শিরোনাম বিজ্ঞাপন সম্পদ প্রদর্শন করতে TextMesh ব্যবহার করে। BoxCollider একবার GameObject সাথে সংযুক্ত হয়ে গেলে, এটি স্বয়ংক্রিয়ভাবে TextMesh উপাদানের পাঠ্যকে মানিয়ে নিতে স্কেল করবে।

// Create GameObject that will display the headline ad asset.
GameObject headline = new GameObject();
headline.AddComponent<TextMesh>();
headline.GetComponent<TextMesh>().characterSize = 0.5 f;
headline.GetComponent<TextMesh>().anchor = TextAnchor.MiddleCenter;
headline.GetComponent<TextMesh>().color = Color.black;

// Get string of the headline asset.
string headlineText = this.nativeAd.GetHeadlineText();
headline.GetComponent<TextMesh>().text = headlineText;

// Add box collider to the GameObject which will automatically scale.
headline.AddComponent<BoxCollider>();

ডেমো

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

private GameObject icon;
private bool nativeAdLoaded;
private NativeAd nativeAd;
...
void Update() {
    ...

    if (this.nativeAdLoaded) {
        this.nativeAdLoaded = false;
        // Get Texture2D for icon asset of native ad.
        Texture2D iconTexture = this.nativeAd.GetIconTexture();

        icon = GameObject.CreatePrimitive(PrimitiveType.Quad);
        icon.transform.position = new Vector3(1, 1, 1);
        icon.transform.localScale = new Vector3(1, 1, 1);
        icon.GetComponent<Renderer>().material.mainTexture = iconTexture;

        // Register GameObject that will display icon asset of native ad.
        if (!this.nativeAd.RegisterIconImageGameObject(icon))
        {
            // Handle failure to register ad asset.
        }
    }
}
...

private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
    Debug.Log("Native ad loaded.");
    this.nativeAd = args.nativeAd;
    this.nativeAdLoaded = true;
}