উন্নত নেটিভ ফিচার সেট করা

প্ল্যাটফর্ম বেছে নিন: Android iOS Android (Legacy)

নেটিভ বিজ্ঞাপনে অনেক উন্নত ফিচার আছে যা আপনাকে অতিরিক্ত কাস্টমাইজেশন করতে এবং সম্ভাব্য সেরা বিজ্ঞাপন অভিজ্ঞতা প্রদান করতে সাহায্য করে। এই নির্দেশিকা থেকে আপনি নেটিভ বিজ্ঞাপনের উন্নত ফিচার কীভাবে ব্যবহার করবেন তা জানতে পারবেন।

পূর্বশর্ত

অ্যাসেট কন্ট্রোল

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

পছন্দসই মিডিয়া অ্যাস্পেক্ট রেশিও কন্ট্রোল

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

NativeAd.NativeMediaAspectRatio ভ্যালু সহ NativeAdRequest.Builder.setMediaAspectRatio() কল করুন।

  • সেট করা না থাকলে, রিটার্ন করা বিজ্ঞাপনে যেকোনও মিডিয়া অ্যাস্পেক্ট রেশিও থাকতে পারে।

  • সেট করা হলে, আপনি অ্যাসপেক্ট রেশিওর পছন্দের ধরন নির্দিষ্ট করে ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে পারবেন।

নিম্নলিখিত উদাহরণে SDK-কে নির্দিষ্ট অ্যাস্পেক্ট রেশিও সহ রিটার্ন ইমেজ বা ভিডিওকে অগ্রাধিকার দেওয়ার নির্দেশ দেওয়া হয়েছে।

Kotlin

val adRequest = NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
  .build()

Java

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
  .build();

ছবি ডাউনলোড কন্ট্রোল

SDK-এর মাধ্যমে ইমেজ অ্যাসেট বা শুধুমাত্র URI রিটার্ন করা হবে কিনা তা ইমেজ ডাউনলোড কন্ট্রোল আপনাকে সিদ্ধান্ত নিতে দেয়।

NativeAdRequest.Builder.disableImageDownloading() নম্বরে কল করুন।

  • ডিফল্ট হিসেবে ছবি ডাউনলোড কন্ট্রোল বন্ধ করা থাকে।

  • বন্ধ করা থাকলে, GMA Next-Gen SDK আপনার জন্য ছবি ও URI দুটিই পূরণ করে দেয়।

  • চালু করা হলে, SDK শুধুমাত্র URI পূরণ করে, যার ফলে আপনি নিজের ইচ্ছামতো আসল ছবি ডাউনলোড করতে পারেন।

নিচে দেওয়া উদাহরণে SDK-কে শুধুমাত্র URI রিটার্ন করার নির্দেশ দেওয়া হয়েছে।

Kotlin

val adRequest = NativeAdRequest.Builder(
    "ca-app-pub-3940256099942544/2247696110",
    listOf(NativeAd.NativeAdType.NATIVE))
    .setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
    .disableImageDownloading()
    .build()

val adCallback: NativeAdLoaderCallback =
  object : NativeAdLoaderCallback {
    override fun onNativeAdLoaded(nativeAd: NativeAd) {
      // Get the image uri.
      val imageUri = nativeAd.image?.uri
    }
  };

// Load the native ad with the ad request and callback.
NativeAdLoader.load(adRequest, adLoaderCallback);

Java

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .disableImageDownloading()
  .build();

NativeAdLoaderCallback adLoaderCallback =
  new NativeAdLoaderCallback() {
    @Override
    public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
      // Get the image uri.
      Uri imageUri = nativeAd.getImage().getUri();
    }
  };

// Load the native ad with the ad request and callback.
NativeAdLoader.load(adRequest, adLoaderCallback);

ইমেজ পেলোড কন্ট্রোল

কিছু বিজ্ঞাপনে একটির পরিবর্তে একাধিক ছবি থাকে। আপনার অ্যাপ সব ছবি নাকি শুধু একটি ছবি দেখানোর জন্য প্রস্তুত তা বোঝাতে এই ফিচার ব্যবহার করুন।

  • ডিফল্ট হিসেবে ইমেজ পেলোড কন্ট্রোল বন্ধ করা থাকে।

  • বন্ধ করা হলে, আপনার অ্যাপ SDK-কে নির্দেশ দেয় যে, কোনও অ্যাসেটে সিরিজ থাকলে তার প্রথম ছবি যেন প্রদান করা হয়।

  • চালু করা হলে, আপনার অ্যাপ ইঙ্গিত করে যে একাধিক অ্যাসেট থাকা যেকোনও অ্যাসেটের জন্য সব ছবি দেখাতে এটি প্রস্তুত।

নিচে উল্লেখ করা উদাহরণে SDK-কে একাধিক ইমেজ অ্যাসেট রিটার্ন করার নির্দেশ দেওয়া হয়েছে।

AdChoices প্লেসমেন্ট

এই বিভাগে AdChoices ওভারলে কীভাবে পজিশন করতে হয় তা বিশদে বলা আছে। আপনার কাছে চারটি কোণের মধ্যে কোনও একটিতে এর প্লেসমেন্ট সেট করার বা কাস্টম ভিউয়ের মধ্যে এটি রেন্ডার করার বিকল্প আছে।

AdChoices পজিশন কন্ট্রোল

AdChoices পজিশন কন্ট্রোল আপনাকে বেছে নিতে দেয় যে কোন কোণে AdChoices আইকন রেন্ডার করা হবে।

NativeAdRequest.AdChoicesPlacement ভ্যালু সহ NativeAdRequest.Builder.setAdChoicesPlacement() কল করুন।

  • সেট করা না থাকলে, AdChoices আইকনের পজিশন উপরের ডানদিকে সেট করা হয়।

  • সেট করা থাকলে, অনুরোধ অনুযায়ী কাস্টম পজিশনে AdChoices প্লেস করা হয়।

নিম্নলিখিত উদাহরণ থেকে কীভাবে কাস্টম AdChoices ছবির পজিশন সেট করতে হয় তা জানতে পারবেন।

Kotlin

val adRequest = NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
  .build()

Java

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
  .build();

AdChoices কাস্টম ভিউ

AdChoices কাস্টম ভিউ ফিচার আপনাকে AdChoices আইকনকে কাস্টম লোকেশনে পজিশন করতে দেয়। এটি AdChoices পজিশন কন্ট্রোল থেকে আলাদা, যা শুধুমাত্র চারটি কোণের মধ্যে একটি নির্দিষ্ট করার অনুমতি দেয়।

AdChoicesView ভ্যালু সহ NativeAdView.setAdChoicesView() নম্বরে কল করুন।

নিচের উদাহরণে দেখানো হয়েছে যে কীভাবে কাস্টম AdChoices ভিউ সেট করতে হয়, যেখানে AdChoices আইকনটি AdChoicesView-এর মধ্যে রেন্ডার করা হয়।

Kotlin

override fun onNativeAdLoaded(nativeAd: NativeAd) {
  val nativeAdView = NativeAdView(applicationContext)
  val adChoicesView = AdChoicesView(this)
  nativeAdView.adChoicesView = adChoicesView
}

Java

public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
  NativeAdView nativeAdView = new NativeAdView(getApplicationContext());
  AdChoicesView adChoicesView = new AdChoicesView(this);
  nativeAdView.setAdChoicesView(adChoicesView);
}

ভিডিও কন্ট্রোল

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

মিউট করার আচরণ শুরু করা

'শুরুতে মিউট করা' আচরণ আপনাকে কোনও ভিডিওর শুরুর অডিও বন্ধ বা চালু করতে দেয়।

boolean ভ্যালু সহ VideoOptions.Builder.setStartMuted() নম্বরে কল করুন এবং NativeAdOptions.Builder.setVideoOptions() নম্বরে কল করুন।

  • ডিফল্ট হিসেবে 'মিউট করা অবস্থায় শুরু করুন' আচরণ চালু করা থাকে।

  • বন্ধ করা থাকলে, আপনার অ্যাপ অনুরোধ করে যে ভিডিওটি অডিও দিয়ে শুরু করা উচিত।

  • চালু করা হলে, আপনার অ্যাপ অনুরোধ করে যে ভিডিওটি অডিও মিউট করে শুরু করা উচিত।

নিচের উদাহরণে দেখানো হয়েছে কীভাবে আন-মিউট করা অডিও সহ ভিডিও শুরু করতে হয়।

Kotlin

val videoOptions = VideoOptions.Builder()
  .setStartMuted(false)
  .build()

val adRequest = NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

Java

VideoOptions videoOptions = VideoOptions.Builder()
  .setStartMuted(false)
  .build()

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

কাস্টম প্লেব্যাক কন্ট্রোল

এর মাধ্যমে আপনি ভিডিও চালানোর, পজ করার বা মিউট করার জন্য কাস্টম ভিডিও ইনপুট কন্ট্রোল অনুরোধ করতে পারবেন।

বিজ্ঞাপন শুরু করার সময় মিউট করার অবস্থা সেট করতে, VideoOptions.Builder.setCustomControlsRequested() কল করুন।

  • কাস্টম প্লেব্যাক কন্ট্রোল ডিফল্ট হিসেবে বন্ধ করা থাকে।

  • বন্ধ করা থাকলে, আপনার ভিডিওতে SDK রেন্ডার করা ইনপুট কন্ট্রোল দেখা যাবে।

বিজ্ঞাপনে ভিডিও কন্টেন্ট থাকলে এবং কাস্টম কন্ট্রোল চালু করা থাকলে, আপনাকে বিজ্ঞাপনের সাথে কাস্টম কন্ট্রোল দেখাতে হবে, কারণ বিজ্ঞাপনে কোনও কন্ট্রোল থাকে না। কন্ট্রোলগুলি তারপরে

VideoOptions.Builder.setCustomControlsRequested().

কাস্টম প্লেব্যাক কন্ট্রোল সহ ভিডিওর অনুরোধ কীভাবে করতে হয় তা নিম্নলিখিত উদাহরণ থেকে জানুন।

Kotlin

val videoOptions: VideoOptions.Builder()
  .setCustomControlsRequested(true)
  .build()

val adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

Java

VideoOptions VideoOptions = VideoOptions.Builder()
  .setCustomControlsRequested(true)
  .build()

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

কাস্টম কন্ট্রোল চালু আছে কিনা চেক করুন

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

Kotlin

  val adCallback: NativeAdLoaderCallback =
    object : NativeAdLoaderCallback {
      override fun onNativeAdLoaded(nativeAd: NativeAd) {
        val mediaContent = nativeAd.mediaContent;
        if (mediaContent != null) {
          val videoController = mediaContent.videoController;
          val canShowCustomControls = videoController?.isCustomControlsEnabled();
        }
      }
    };

Java

NativeAdLoaderCallback adCallback =
  new NativeAdLoaderCallback() {
    @Override
    public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
      MediaContent mediaContent = nativeAd.getMediaContent();
      if (mediaContent != null) {
        VideoController videoController = mediaContent.getVideoController();
        if (videoController != null) {
          boolean canShowCustomControls = videoController.isCustomControlsEnabled();
        }
      }
    }
  };

কাস্টম ভিডিও কন্ট্রোল রেন্ডার করা

নিম্নলিখিত পেশাদার পদ্ধতি ব্যবহার করে কাস্টম ভিডিও কন্ট্রোল রেন্ডার করুন:

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

কাস্টম ক্লিক জেসচার

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

NativeAd.SwipeGestureDirection ও boolean ভ্যালু সহ NativeAdRequest.Builder.enableCustomClickGestureDirection()-এ কল করুন।

  • ক্লিক করার কাস্টম জেসচার ডিফল্ট হিসেবে বন্ধ থাকে।

  • বন্ধ করা থাকলে, আপনার অ্যাপ সাধারণ ক্লিক আচরণ সমর্থন করে।

  • চালু করা হলে, আপনার অ্যাপ কাস্টম সোয়াইপ জেসচার ব্যবহার করতে পারবে।

নিচে দেওয়া উদাহরণে ডানদিকে সোয়াইপ করার জন্য কাস্টম জেসচার প্রয়োগ করা হয়েছে এবং সাধারণ ট্যাপ করার আচরণ বজায় রাখা হয়েছে।

Kotlin

val adRequest =
  NativeAdRequest.Builder(AD_UNIT_ID, listOf(NativeAdType.NATIVE))
    .enableCustomClickGestureDirection(
      SwipeGestureDirection.RIGHT,
      /* customClickGestureAllowTaps= */ true,
    )
    .build()

Java

NativeAdRequest adRequest =
    new NativeAdRequest.Builder(AD_UNIT_ID, List.of(NativeAdType.NATIVE))
        .enableCustomClickGestureDirection(
            SwipeGestureDirection.RIGHT, /* customClickGestureAllowTaps= */ true)
        .build();

সোয়াইপ জেসচার ইভেন্ট শোনা

সোয়াইপ জেসচার ইভেন্ট শুনতে, NativeAdEventCallback সহ NativeAd.setAdEventCallback() কল করুন এবং onAdSwipeGestureClicked() মেথড প্রয়োগ করুন।

Kotlin

  val adCallback: NativeAdLoaderCallback =
    object : NativeAdLoaderCallback {
      override fun onNativeAdLoaded(nativeAd: NativeAd) {
        // Implement the onAdSwipeGestureClicked() method.
        val nativeAdCallback: NativeAdEventCallback = object : NativeAdEventCallback {
          override fun onAdSwipeGestureClicked() {
            // A swipe gesture click has occurred.
          }
        }
      }
    }
  // Load the native ad with the ad request and callback.
  NativeAdLoader.load(adRequest, adCallback)

Java

  NativeAdLoaderCallback adCallback =
    new NativeAdLoaderCallback() {
      @Override
      public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
        // Implement the onAdSwipeGestureClicked() method.
        NativeAdEventCallback nativeAdCallback = new NativeAdEventCallback() {
          @Override
          public void onAdSwipeGestureClicked() {
            // A swipe gesture click has occurred.
          }
        };
      }
    };
  // Load the native ad with the ad request and callback.
  NativeAdLoader.load(adRequest, adCallback);

মধ্যস্থতা

কাস্টম ক্লিক জেসচার শুধুমাত্র Google Mobile Ads SDK রেন্ডার করে এমন নেটিভ বিজ্ঞাপনের ক্ষেত্রেই কাজ করে। বিজ্ঞাপন সোর্স যা রেন্ডার করার জন্যথার্ড-পার্টি SDK প্রয়োজন, সেগুলি কাস্টম ক্লিক ডাইরেকশন সেটিংয়ে সাড়া দেয় না।