ऐडवांस नेटिव सुविधाएं सेट करना

प्लैटफ़ॉर्म चुनें: Android iOS Android (लेगसी)

नेटिव विज्ञापनों में कई ऐडवांस सुविधाएं होती हैं. इनकी मदद से, विज्ञापनों को ज़्यादा से ज़्यादा कस्टमाइज़ किया जा सकता है. साथ ही, विज्ञापन देखने का बेहतरीन अनुभव दिया जा सकता है. इस गाइड में, नेटिव विज्ञापनों की ऐडवांस सुविधाओं को इस्तेमाल करने का तरीका बताया गया है.

ज़रूरी शर्तें

ऐसेट कंट्रोल

इस सेक्शन में, नेटिव विज्ञापनों में क्रिएटिव ऐसेट को पसंद के मुताबिक बनाने का तरीका बताया गया है. आपके पास मीडिया ऐसेट के लिए, अपनी पसंद का आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) तय करने का विकल्प होता है. साथ ही, यह तय किया जा सकता है कि इमेज ऐसेट कैसे डाउनलोड और दिखाई जाएं.

मीडिया के लिए पसंदीदा आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) के कंट्रोल

मीडिया के आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) कंट्रोल की मदद से, विज्ञापन क्रिएटिव के आसपेक्ट रेशियो के लिए प्राथमिकता तय की जा सकती है.

NativeAd.NativeMediaAspectRatio वैल्यू के साथ NativeAdRequest.Builder.setMediaAspectRatio() को कॉल करें.

  • अगर इसे सेट नहीं किया जाता है, तो दिखाए जाने वाले विज्ञापन का मीडिया आसपेक्ट रेशियो कुछ भी हो सकता है.

  • इसे सेट करने पर, आपको उपयोगकर्ता अनुभव को बेहतर बनाने में मदद मिलेगी. इसके लिए, आपको अपनी पसंद के आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) की जानकारी देनी होगी.

नीचे दिए गए उदाहरण में, एसडीके को किसी खास आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) वाली इमेज या वीडियो को प्राथमिकता देने का निर्देश दिया गया है.

Kotlin

val adRequest = NativeAdRequest.Builder(
  "/21775744923/example/native",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
  .build()

Java

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "/21775744923/example/native",
  List.of(NativeAd.NativeAdType.NATIVE))
  .setMediaAspectRatio(NativeAd.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
  .build();

इमेज डाउनलोड करने का कंट्रोल

इमेज डाउनलोड कंट्रोल की मदद से, यह तय किया जा सकता है कि एसडीके, इमेज ऐसेट दिखाएगा या सिर्फ़ यूआरआई.

NativeAdRequest.Builder.disableImageDownloading() पर कॉल करें.

  • इमेज डाउनलोड करने का कंट्रोल, डिफ़ॉल्ट रूप से बंद होता है.

  • बंद होने पर, GMA Next-Gen SDK आपके लिए इमेज और यूआरआई, दोनों को अपने-आप भर देता है.

  • इस सुविधा के चालू होने पर, एसडीके सिर्फ़ यूआरआई को पॉप्युलेट करता है. इससे आपको अपनी पसंद के मुताबिक असल इमेज डाउनलोड करने की सुविधा मिलती है.

नीचे दिए गए उदाहरण में, एसडीके को सिर्फ़ यूआरआई दिखाने का निर्देश दिया गया है.

Kotlin

val adRequest = NativeAdRequest.Builder(
    "/21775744923/example/native",
    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(
  "/21775744923/example/native",
  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 टूल को निर्देश देता है कि वह सीरीज़ वाली किसी भी ऐसेट के लिए सिर्फ़ पहली इमेज उपलब्ध कराए.

  • इस सेटिंग के चालू होने पर, आपका ऐप्लिकेशन यह दिखाता है कि वह उन सभी ऐसेट की इमेज दिखाने के लिए तैयार है जिनमें एक से ज़्यादा इमेज हैं.

यहां दिए गए उदाहरण में, एसडीके को कई इमेज ऐसेट दिखाने का निर्देश दिया गया है.

AdChoices प्लेसमेंट

इस सेक्शन में, AdChoices ओवरले को सही जगह पर लगाने का तरीका बताया गया है. आपके पास इसे चारों कोनों में से किसी एक कोने पर सेट करने या कस्टम व्यू में रेंडर करने का विकल्प होता है.

AdChoices की पोज़िशन के कंट्रोल

AdChoices की पोज़िशन कंट्रोल करने की सुविधा से, यह चुना जा सकता है कि AdChoices आइकॉन को किस कोने में रेंडर करना है.

NativeAdRequest.AdChoicesPlacement वैल्यू के साथ NativeAdRequest.Builder.setAdChoicesPlacement() को कॉल करें.

  • अगर इसे सेट नहीं किया जाता है, तो AdChoices आइकॉन की पोज़िशन सबसे ऊपर दाईं ओर सेट हो जाती है.

  • अगर इसे सेट किया जाता है, तो AdChoices को अनुरोध के मुताबिक कस्टम पोज़िशन पर रखा जाता है.

यहां दिए गए उदाहरण में, AdChoices की इमेज की जगह को पसंद के मुताबिक सेट करने का तरीका बताया गया है.

Kotlin

val adRequest = NativeAdRequest.Builder(
  "/21775744923/example/native",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
  .build()

Java

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "/21775744923/example/native",
  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(
  "/21775744923/example/native",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

Java

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

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "/21775744923/example/native",
  List.of(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

पसंद के मुताबिक बनाए गए प्लेबैक कंट्रोल

इससे आपको वीडियो चलाने, रोकने या म्यूट करने के लिए, कस्टम वीडियो इनपुट कंट्रोल का अनुरोध करने की सुविधा मिलती है.

विज्ञापनों को म्यूट करके शुरू करने के लिए, VideoOptions.Builder.setCustomControlsRequested() को कॉल करें.

  • कस्टम प्लेबैक कंट्रोल की सुविधा डिफ़ॉल्ट रूप से बंद होती है.

  • इस सेटिंग के बंद होने पर, आपके वीडियो में एसडीके से रेंडर किए गए इनपुट कंट्रोल दिखेंगे.

अगर विज्ञापन में वीडियो वाला कॉन्टेंट है और कस्टम कंट्रोल चालू हैं, तो आपको विज्ञापन के साथ कस्टम कंट्रोल दिखाने चाहिए. ऐसा इसलिए, क्योंकि विज्ञापन में कोई कंट्रोल नहीं दिखेगा. इसके बाद, कंट्रोल,

VideoOptions.Builder.setCustomControlsRequested().

यहां दिए गए उदाहरण में, कस्टम प्लेबैक कंट्रोल वाले वीडियो का अनुरोध करने का तरीका बताया गया है.

Kotlin

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

val adRequest = new NativeAdRequest.Builder(
  "/21775744923/example/native",
  listOf(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

Java

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

NativeAdRequest adRequest = new NativeAdRequest.Builder(
  "/21775744923/example/native",
  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 टूल की ज़रूरत होती है वे क्लिक के लिए कस्टम निर्देश की सेटिंग के हिसाब से काम नहीं करते.