नेटिव विज्ञापनों में कई बेहतर सुविधाएं होती हैं. इनकी मदद से, विज्ञापन को अपनी पसंद के मुताबिक बनाया जा सकता है और विज्ञापन का बेहतर अनुभव दिया जा सकता है. इस गाइड में, नेटिव विज्ञापनों की बेहतर सुविधाओं का इस्तेमाल करने का तरीका बताया गया है.
ज़रूरी शर्तें
- नेटिव विज्ञापन फ़ॉर्मैट को इंटिग्रेट करें.
ऐसेट कंट्रोल
इस सेक्शन में, नेटिव विज्ञापनों में क्रिएटिव ऐसेट को अपनी पसंद के मुताबिक बनाने का तरीका बताया गया है. आपके पास मीडिया ऐसेट के लिए, अपनी पसंद के मुताबिक आसपेक्ट रेशियो (चौड़ाई-ऊंचाई का अनुपात) तय करने का विकल्प होता है. साथ ही, यह भी तय किया जा सकता है कि इमेज ऐसेट कैसे डाउनलोड और दिखाई जाएं.
अपनी पसंद के मुताबिक मीडिया आसपेक्ट रेशियो (चौड़ाई-ऊंचाई का अनुपात) के कंट्रोल
मीडिया आसपेक्ट रेशियो (चौड़ाई-ऊंचाई का अनुपात) के कंट्रोल की मदद से, विज्ञापन क्रिएटिव के आसपेक्ट रेशियो के लिए अपनी पसंद तय की जा सकती है.
NativeAdRequest.Builder.setMediaAspectRatio()
को NativeAd.NativeMediaAspectRatio
वैल्यू के साथ कॉल करें.
अगर इसे सेट नहीं किया जाता है, तो दिखाए जाने वाले विज्ञापन का मीडिया आसपेक्ट रेशियो (चौड़ाई-ऊंचाई का अनुपात) कोई भी हो सकता है.
इसे सेट करने पर, अपनी पसंद के मुताबिक आसपेक्ट रेशियो (चौड़ाई-ऊंचाई का अनुपात) तय करके, उपयोगकर्ता अनुभव को बेहतर बनाया जा सकता है.
यहां दिए गए उदाहरण में, एसडीके टूल को निर्देश दिया गया है कि वह किसी खास आसपेक्ट रेशियो (चौड़ाई-ऊंचाई का अनुपात) वाली इमेज या वीडियो को प्राथमिकता दे.
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);
इमेज पेलोड कंट्रोल
कुछ विज्ञापनों में सिर्फ़ एक इमेज के बजाय, कई इमेज होती हैं. इस सुविधा का इस्तेमाल करके, यह बताया जा सकता है कि आपका ऐप्लिकेशन सभी इमेज दिखा सकता है या सिर्फ़ एक.
इमेज पेलोड कंट्रोल डिफ़ॉल्ट रूप से बंद होते हैं.
इन्हें बंद करने पर, आपका ऐप्लिकेशन एसडीके टूल को निर्देश देता है कि वह ऐसी किसी भी ऐसेट के लिए सिर्फ़ पहली इमेज दिखाए जिसमें कई इमेज शामिल हों.
इन्हें चालू करने पर, आपका ऐप्लिकेशन यह बताता है कि वह ऐसी किसी भी ऐसेट के लिए सभी इमेज दिखा सकता है जिसमें एक से ज़्यादा इमेज शामिल हों.
यहां दिए गए उदाहरण में, एसडीके टूल को निर्देश दिया गया है कि वह एक से ज़्यादा इमेज ऐसेट दिखाए.
AdChoices प्लेसमेंट
इस सेक्शन में, AdChoices ओवरले की पोज़िशन सेट करने का तरीका बताया गया है. आपके पास इसे चारों कोनों में से किसी एक में सेट करने या कस्टम व्यू में रेंडर करने का विकल्प होता है.
AdChoices की पोज़िशन के कंट्रोल
AdChoices की पोज़िशन के कंट्रोल की मदद से, यह चुना जा सकता है कि AdChoices आइकॉन किस कोने में रेंडर किया जाए.
NativeAdRequest.Builder.setAdChoicesPlacement()
को NativeAdRequest.AdChoicesPlacement
वैल्यू के साथ कॉल करें.
अगर इसे सेट नहीं किया जाता है, तो 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 की पोज़िशन के कंट्रोल से अलग है. इसमें सिर्फ़ चारों कोनों में से किसी एक को तय किया जा सकता है.
को वैल्यू के साथ कॉल करें.NativeAdView.setAdChoicesView()AdChoicesView
यहां दिए गए उदाहरण में, 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);
}
वीडियो के कंट्रोल
इस सेक्शन में, वीडियो विज्ञापनों के प्लेबैक अनुभव को अपनी पसंद के मुताबिक बनाने का तरीका बताया गया है. आपके पास शुरुआती म्यूट की स्थिति सेट करने और कस्टम प्लेबैक कंट्रोल लागू करने का विकल्प होता है.
शुरुआत में म्यूट करने का व्यवहार
शुरुआत में म्यूट करने के व्यवहार की मदद से, वीडियो के शुरुआती ऑडियो को बंद या चालू किया जा सकता है.
VideoOptions.Builder.setStartMuted()
को boolean वैल्यू के साथ कॉल करें और 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();
}
}
}
};
कस्टम वीडियो कंट्रोल रेंडर करना
कस्टम वीडियो कंट्रोल रेंडर करने के लिए, इन सबसे सही तरीकों का इस्तेमाल करें:
- कस्टम कंट्रोल व्यू को नेटिव विज्ञापन व्यू के चाइल्ड के तौर पर रेंडर करें. इस तरीके से, ओपन मेज़रमेंट व्यूएबिलिटी कैलकुलेशन में कस्टम कंट्रोल को रुकावट के तौर पर माना जाता है.
- पूरे मीडिया व्यू पर, न दिखने वाला ओवरले रेंडर करने से बचें. ओवरले की वजह से, मीडिया व्यू पर क्लिक नहीं किया जा सकता. इससे नेटिव विज्ञापनों की परफ़ॉर्मेंस पर बुरा असर पड़ता है. इसके बजाय, एक छोटा ओवरले बनाएं जो कंट्रोल के लिए काफ़ी बड़ा हो.
कस्टम क्लिक जेस्चर
कस्टम क्लिक जेस्चर, नेटिव विज्ञापनों की एक सुविधा है. इसकी मदद से, विज्ञापन व्यू पर स्वाइप को विज्ञापन क्लिक के तौर पर रजिस्टर किया जा सकता है. इसे ऐसे ऐप्लिकेशन के साथ काम करने के लिए डिज़ाइन किया गया है जिनमें कॉन्टेंट नेविगेशन के लिए स्वाइप जेस्चर का इस्तेमाल किया जाता है. इस गाइड में, नेटिव विज्ञापनों पर कस्टम क्लिक जेस्चर चालू करने का तरीका बताया गया है.
NativeAdRequest.Builder.enableCustomClickGestureDirection()
को NativeAd.SwipeGestureDirection
और boolean वैल्यू के साथ कॉल करें.
यहां दिए गए उदाहरण में, दाईं ओर स्वाइप करने के लिए कस्टम जेस्चर लागू किया गया है. साथ ही, टैब के सामान्य व्यवहार को बनाए रखा गया है.
कस्टम क्लिक जेस्चर डिफ़ॉल्ट रूप से बंद होते हैं.
इन्हें बंद करने पर, आपका ऐप्लिकेशन क्लिक करने के सामान्य व्यवहार के साथ काम करेगा.
इन्हें चालू करने पर, आपका ऐप्लिकेशन स्वाइप करने के कस्टम जेस्चर के साथ काम करेगा.
यहां दिए गए उदाहरण में, दाईं ओर स्वाइप करने के लिए कस्टम जेस्चर लागू किया गया है. साथ ही, टैब के सामान्य व्यवहार को बनाए रखा गया है.
Kotlin
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(
"/21775744923/example/native",
listOf(NativeAd.NativeAdType.NATIVE))
.withNativeAdOptions(adOptions)
.build();
Java
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(
"/21775744923/example/native",
List.of(NativeAd.NativeAdType.NATIVE))
.withNativeAdOptions(adOptions)
.build();
स्वाइप जेस्चर के इवेंट सुनना
स्वाइप जेस्चर के इवेंट सुनने के लिए, NativeAd.setAdEventCallback()
को NativeAdEventCallback के साथ कॉल करें और
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 टूल रेंडर करता है. विज्ञापन के ऐसे सोर्स जिन्हें रेंडर करने के लिए, तीसरे पक्ष के एसडीके टूल की ज़रूरत होती है वे कस्टम क्लिक की दिशाओं की सेटिंग के मुताबिक काम नहीं करते.