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

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

পূর্বশর্ত

সম্পদ নিয়ন্ত্রণ

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

পছন্দের মিডিয়া অ্যাসপেক্ট রেশিও নিয়ন্ত্রণ

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

NativeAdRequest.Builder.setMediaAspectRatio() NativeAd.NativeMediaAspectRatio মান দিয়ে কল করুন।

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

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

নিম্নলিখিত উদাহরণটি SDK-কে একটি নির্দিষ্ট আকৃতির অনুপাত সহ একটি রিটার্ন ছবি বা ভিডিও পছন্দ করার নির্দেশ দেয়।

কোটলিন

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

জাভা

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 ফেরত দেওয়ার নির্দেশ দেয়।

কোটলিন

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);

জাভা

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 আইকনটি কোন কোণে রেন্ডার করতে হবে তা বেছে নিতে দেয়।

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

  • যদি সেট না করা থাকে, তাহলে AdChoices আইকনের অবস্থান উপরের ডানদিকে সেট করা হবে।

  • যদি সেট করা থাকে, তাহলে অনুরোধ অনুসারে AdChoices কাস্টম অবস্থানে স্থাপন করা হবে।

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

কোটলিন

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

জাভা

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 ভিউ সেট করতে হয়, AdChoicesView ভিতরে AdChoices আইকনটি রেন্ডার করা হয়।

কোটলিন

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

জাভা

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() কল করুন।

  • স্টার্ট মিউটেড আচরণটি ডিফল্টরূপে সক্রিয় থাকে।

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

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

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

কোটলিন

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

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

জাভা

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()

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

কোটলিন

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

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

জাভা

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()

কাস্টম নিয়ন্ত্রণ সক্রিয় আছে কিনা তা পরীক্ষা করুন

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

কোটলিন

  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();
        }
      }
    };

জাভা

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. সম্পূর্ণ মিডিয়া ভিউতে একটি অদৃশ্য ওভারলে রেন্ডার করা এড়িয়ে চলুন। ওভারলে মিডিয়া ভিউতে ক্লিক ব্লক করে, যা নেটিভ বিজ্ঞাপনের পারফরম্যান্সের উপর নেতিবাচক প্রভাব ফেলে। পরিবর্তে, একটি ছোট ওভারলে তৈরি করুন যা নিয়ন্ত্রণগুলিতে ফিট করার জন্য যথেষ্ট বড়।

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

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

NativeAdRequest.Builder.enableCustomClickGestureDirection() এ একটি NativeAd.SwipeGestureDirection এবং একটি boolean মান ব্যবহার করে কল করুন।

নিম্নলিখিত উদাহরণটি ডানদিকে একটি কাস্টম সোয়াইপ অঙ্গভঙ্গি প্রয়োগ করে এবং স্বাভাবিক ট্যাব আচরণ সংরক্ষণ করে।

  • কাস্টম ক্লিক অঙ্গভঙ্গি ডিফল্টরূপে অক্ষম করা আছে।

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

  • সক্রিয় থাকলে, আপনার অ্যাপ কাস্টম সোয়াইপ অঙ্গভঙ্গি সমর্থন করবে।

নিম্নলিখিত উদাহরণটি ডানদিকে একটি কাস্টম সোয়াইপ অঙ্গভঙ্গি প্রয়োগ করে এবং স্বাভাবিক ট্যাব আচরণ সংরক্ষণ করে।

কোটলিন

val adOptions = NativeAdOptions
  .Builder()
  .enableCustomClickGestureDirection(
    /* swipeDirection */ NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT,
    /* tapsAllowed= */ true)
  .build();

// The following sample ad unit ID has been enabled for custom click gestures
// and can be used for testing.
val adRequest = NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  listOf(NativeAd.NativeAdType.NATIVE))
  .withNativeAdOptions(adOptions)
  .build();

জাভা

NativeAdOptions adOptions = new NativeAdOptions
  .Builder()
  .enableCustomClickGestureDirection(
    /* swipeDirection */ NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT,
    /* tapsAllowed= */ true)
  .build();

// The following sample ad unit ID has been enabled for custom click gestures
// and can be used for testing.
NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "ca-app-pub-3940256099942544/2247696110",
  List.of(NativeAd.NativeAdType.NATIVE))
  .withNativeAdOptions(adOptions)
  .build();

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

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

কোটলিন

  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)

জাভা

  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 মোবাইল বিজ্ঞাপন SDK রেন্ডার করা নেটিভ বিজ্ঞাপনগুলিতে কাজ করে। যেসব বিজ্ঞাপন সোর্সগুলিতে রেন্ডারিংয়ের জন্য তৃতীয় পক্ষের SDK প্রয়োজন , তারা কাস্টম ক্লিক দিকনির্দেশনা সেটিংসে সাড়া দেয় না।