ডিসপ্লে-টাইপ কাস্টম নেটিভ অ্যাড ফরম্যাট এবং ওপেন মেজারমেন্ট

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

পূর্বশর্ত

চালিয়ে যাওয়ার আগে, নিম্নলিখিতগুলি করুন:

ইন্টিগ্রেশন

যদি আপনি এমন কাস্টম নেটিভ বিজ্ঞাপন ফর্ম্যাটের সাথে ওপেন মেজারমেন্ট ব্যবহার করার পরিকল্পনা করেন যেখানে ভিডিও অ্যাসেট থাকে না, তাহলে ওপেন মেজারমেন্ট API গুলি কল করার জন্য আপনার নিজের দায়িত্ব থাকবে।

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

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

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

জাভা

private void loadCustomNativeAd(Context context, ViewGroup nativeCustomFormatAdContainer) {

  AdLoader adLoader =
      new AdLoader.Builder(context, "AD_UNIT_ID")
          .forCustomFormatAd(
              "CUSTOM_TEMPLATE_ID",
              new NativeCustomFormatAd.OnCustomFormatAdLoadedListener() {
                @Override
                public void onCustomFormatAdLoaded(@NonNull NativeCustomFormatAd ad) {
                  // Show the ad first and then register your view and begin open measurement.
                  // Make sure to do this on the main thread.

                  // ...
                  // Show ad
                  // ...

                  startOpenMeasurement(ad, nativeCustomFormatAdContainer);
                }
              },
              new NativeCustomFormatAd.OnCustomClickListener() {
                @Override
                public void onCustomClick(NativeCustomFormatAd ad, String assetName) {
                  // Handle the click action
                }
              })
          .build();
  adLoader.loadAd(new AdRequest.Builder().build());
}

কোটলিন

private fun loadCustomNativeAd(context: Context, nativeCustomFormatAdContainer: ViewGroup) {
  val adLoader =
    AdLoader.Builder(context, "AD_UNIT_ID")
      .forCustomFormatAd(
        "CUSTOM_TEMPLATE_ID",
        NativeCustomFormatAd.OnCustomFormatAdLoadedListener { ad ->
          // Show the ad first and then register your view and begin open measurement. Make sure
          // to do this on the main thread.

          // ...
          // Show ad
          // ...

          startOpenMeasurement(ad, nativeCustomFormatAdContainer)
        },
        NativeCustomFormatAd.OnCustomClickListener { ad, assetName ->
          // Handle the click action.
        },
      )
      .build()

  adLoader.loadAd(AdRequest.Builder().build())
}

AD_UNIT_ID এবং CUSTOM_TEMPLATE_ID পরিবর্তে আপনার বিজ্ঞাপন ইউনিট আইডি এবং কাস্টম টেমপ্লেট আইডি দিন।

আপনার ভিউ নিবন্ধন করুন এবং পরিমাপ শুরু করুন

একটি কাস্টম নেটিভ বিজ্ঞাপনে ওপেন মেজারমেন্ট সক্ষম করতে, প্রথমে বিজ্ঞাপনটি প্রদর্শন করুন এবং তারপর কাস্টম নেটিভ বিজ্ঞাপনের সাথে যুক্ত DisplayOpenMeasurement অবজেক্টের সাথে আপনার কাস্টম বিজ্ঞাপন ভিউ নিবন্ধন করুন। DisplayOpenMeasurement অবজেক্টটি আপনার কন্টেইনার ভিউকে ওপেন মেজারমেন্টের সাথে নিবন্ধন করার জন্য setView() পদ্ধতি প্রদান করে।

আপনাকে SDK-কে স্পষ্টভাবে বলতে হবে যে আপনার বিজ্ঞাপন পরিমাপ শুরু করতে। এটি করার জন্য আপনার কাস্টম নেটিভ বিজ্ঞাপনের DisplayOpenMeasurement অবজেক্টে start() পদ্ধতিটি কল করুন। start() পদ্ধতিটি অবশ্যই মূল থ্রেড থেকে কল করতে হবে এবং পরবর্তী কলগুলির কোনও প্রভাব থাকবে না।

এটি দেখতে কেমন তা এখানে:

জাভা

private void startOpenMeasurement(
    NativeCustomFormatAd ad, ViewGroup nativeCustomFormatAdContainer) {
  DisplayOpenMeasurement displayOpenMeasurement = ad.getDisplayOpenMeasurement();
  if (displayOpenMeasurement != null) {
    displayOpenMeasurement.setView(nativeCustomFormatAdContainer);
    displayOpenMeasurement.start();
  }
}

কোটলিন

private fun startOpenMeasurement(
  ad: NativeCustomFormatAd,
  nativeCustomFormatAdContainer: ViewGroup,
) {
  ad.getDisplayOpenMeasurement()?.let { displayOpenMeasurement ->
    displayOpenMeasurement.setView(nativeCustomFormatAdContainer)
    displayOpenMeasurement.start()
  }
}