नेटिव विज्ञापन के विकल्प

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

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

ऐसेट कंट्रोल

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

मीडिया आसपेक्ट रेशियो कंट्रोल की मदद से, विज्ञापन क्रिएटिव के आसपेक्ट रेशियो के लिए प्राथमिकता तय की जा सकती है.

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

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

  • सेट होने के बाद, उपयोगकर्ता अनुभव को बेहतर बनाने के लिए, पसंदीदा आसपेक्ट रेशियो तय किया जा सकता है.

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

NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
                              .setMediaAspectRatio(NativeAdOptions.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
                              .build();

AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
                              .withNativeAdOptions(nativeAdOptions)
                              .build();

इमेज डाउनलोड करने की सुविधा

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

boolean वैल्यू के साथ NativeAdOptions.Builder.setReturnUrlsForImageAssets() को कॉल करें.
  • इमेज डाउनलोड करने की सेटिंग डिफ़ॉल्ट रूप से बंद होती है.

  • बंद होने पर, Google Mobile Ads SDK टूल आपके लिए इमेज और यूआरआई, दोनों को पॉप्युलेट करता है.

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

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

NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
                                                     .setReturnUrlsForImageAssets(true)
                                                     .build();

AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
                              .withNativeAdOptions(nativeAdOptions)
                              .forNativeAd(nativeAd -> {
                                List<Uri> imageUris = new ArrayList<>();
                                for (Image image : nativeAd.getImages()) {
                                  imageUris.add(image.getUri());
                                }
                              })
                              .build();

इमेज पेलोड कंट्रोल

कुछ विज्ञापनों में, एक इमेज के बजाय, सीरीज़ की कई इमेज होती हैं. इस सुविधा का इस्तेमाल करके, यह बताएं कि आपका ऐप्लिकेशन सभी इमेज दिखाने के लिए तैयार है या सिर्फ़ एक इमेज दिखाने के लिए.

boolean वैल्यू के साथ NativeAdOptions.Builder.setRequestMultipleImages() को कॉल करें.
  • इमेज पेलोड कंट्रोल डिफ़ॉल्ट रूप से बंद होते हैं.

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

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

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

NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
                                                     .setRequestMultipleImages(true)
                                                     .build();

AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
                              .withNativeAdOptions(nativeAdOptions)
                              .build();

AdChoices प्लेसमेंट

AdChoices की पोज़िशन कंट्रोल करने की सुविधा

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

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

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

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

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

NativeAdOptions nativeAdOptions = new NativeAdOptions.Builder()
                                                     .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
                                                     .build();

AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
                              .withNativeAdOptions(nativeAdOptions)
                              .build();

AdChoices का कस्टम व्यू

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

AdChoicesView वैल्यू के साथ NativeAdView.setAdChoicesView() को कॉल करें.

यहां दिए गए उदाहरण में, AdChoicesView में रेंडर किए गए AdChoices आइकॉन के साथ, कस्टम AdChoices व्यू सेट करने का तरीका बताया गया है.


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

वीडियो के कंट्रोल

म्यूट करने की कार्रवाई शुरू करें

वीडियो शुरू होने पर म्यूट होने की सुविधा की मदद से, वीडियो के शुरू होने पर ऑडियो को म्यूट या अनम्यूट किया जा सकता है.

boolean वैल्यू के साथ VideoOptions.Builder.setStartMuted() को कॉल करें.
  • वीडियो शुरू होने पर उसे म्यूट रखने की सुविधा डिफ़ॉल्ट रूप से चालू होती है.

  • यह सुविधा बंद होने पर, ऐप्लिकेशन, वीडियो की शुरुआत ऑडियो से करने का अनुरोध करता है.

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

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

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

NativeAdOptions adOptions = new NativeAdOptions.Builder()
                                               .setVideoOptions(videoOptions)
                                               .build();

AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
                              .withNativeAdOptions(adOptions).build();

प्लेबैक के लिए कस्टम कंट्रोल

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

boolean वैल्यू के साथ VideoOptions.Builder.setCustomControlsRequested() को कॉल करें.
  • प्लेबैक के लिए कस्टम कंट्रोल की सुविधा डिफ़ॉल्ट रूप से बंद होती है.

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

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

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

VideoOptions videoOptions = new VideoOptions.Builder()
                                            .setCustomControlsRequested(true)
                                            .build();

NativeAdOptions adOptions = new NativeAdOptions.Builder()
                                               .setVideoOptions(videoOptions)
                                               .build();

AdLoader loader = new AdLoader.Builder(this, '/21775744923/example/native')
                              .withNativeAdOptions(adOptions).build();

देखें कि कस्टम कंट्रोल चालू हैं या नहीं

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

Java

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

Kotlin

NativeAd.OnNativeAdLoadedListener { ad ->
  val mediaContent = ad.mediaContent
  if (mediaContent != null) {
    val videoController = mediaContent.videoController
    val canShowCustomControls = videoController.isCustomControlsEnabled
  }
}

वीडियो विज्ञापनों के लिए कस्टम कंट्रोल रेंडर करना

इन सबसे सही तरीकों का इस्तेमाल करके, वीडियो के कस्टम कंट्रोल रेंडर करें:

  1. कस्टम कंट्रोल व्यू को नेटिव विज्ञापन व्यू के चाइल्ड व्यू के तौर पर रेंडर करें. इस तरीके से यह पक्का किया जाता है कि ओपन मेज़रमेंट के ज़रिए विज्ञापन दिखने की दर का हिसाब लगाते समय, कस्टम कंट्रोल को आसानी से हटाया जा सकने वाले अवरोध के तौर पर माना जाता है.
  2. पूरे मीडिया व्यू पर, ऐसे ओवरले को रेंडर करने से बचें जो न दिखे. ओवरले, मीडिया व्यू पर क्लिक को ब्लॉक करते हैं. इससे नेटिव विज्ञापनों की परफ़ॉर्मेंस पर बुरा असर पड़ता है. इसके बजाय, एक छोटा ओवरले बनाएं, जो कंट्रोल के हिसाब से हो.

क्लिक करने के लिए कस्टम जेस्चर

कस्टम क्लिक जेस्चर एक नेटिव विज्ञापन सुविधा है. इसकी मदद से विज्ञापन व्यू पर स्वाइप करके उन्हें विज्ञापन क्लिक के रूप में रजिस्टर किया जाता है. इसे उन ऐप्लिकेशन के साथ काम करने के लिए डिज़ाइन किया गया है जो कॉन्टेंट नेविगेशन के लिए स्वाइप जेस्चर का इस्तेमाल करते हैं. इस गाइड में, नेटिव विज्ञापनों पर कस्टम क्लिक जेस्चर चालू करने का तरीका बताया गया है.

NativeAdOptions.SwipeGestureDirection और boolean के साथ NativeAdOptions.Builder.enableCustomClickGestureDirection() को कॉल करके यह बताएं कि आपको टैप को क्लिक के तौर पर इस्तेमाल करने की अनुमति देनी है या नहीं.

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

  • बंद होने पर, आपका ऐप्लिकेशन सामान्य तरीके से क्लिक करने की सुविधा देगा.

  • इस सुविधा को चालू करने पर, आपके ऐप्लिकेशन में कस्टम स्वाइप जेस्चर काम करेंगे.

इस उदाहरण में, दाईं ओर स्वाइप करने के लिए कस्टम जेस्चर लागू किया गया है. साथ ही, टैब के सामान्य व्यवहार को बनाए रखा गया है.

NativeAdOptions adOptions = new NativeAdOptions
    .Builder()
    .enableCustomClickGestureDirection(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.
AdLoader.Builder builder = new AdLoader
    .Builder(this, '/21775744923/example/native')
    .withNativeAdOptions(adOptions);

स्वाइप जेस्चर इवेंट के लिए सुनना

जब स्वाइप जेस्चर क्लिक रिकॉर्ड किया जाता है, तो Google Mobile Ads SDK, AdListener पर मौजूदा onAdClicked() तरीके के साथ-साथ onAdSwipeGestureClicked() तरीका भी इस्तेमाल करता है.

AdLoader adLoader = builder
    .withAdListener(
      new AdListener() {
        // Called when a swipe gesture click is recorded.
        @Override
        public void onAdSwipeGestureClicked() {
          Log.d(TAG, "A swipe gesture click has occurred.")
        }

        // Called when a swipe gesture click or a tap click is recorded, as
        // configured in NativeAdOptions.
        @Override
        public void onAdClicked() {
          Log.d(TAG, "A swipe gesture click or a tap click has occurred.")
        }
      })
    .build();

मीडिएशन

कस्टम क्लिक जेस्चर सिर्फ़ उन नेटिव विज्ञापनों पर काम करते हैं जिन्हें Google Mobile Ads SDK रेंडर करता है. ऐसे विज्ञापन स्रोत जिन्हें रेंडर करने के लिए तीसरे पक्ष के SDK टूल की ज़रूरत होती है, कस्टम क्लिक निर्देश सेटिंग का जवाब नहीं देते.