नेटिव विज्ञापनों में कई बेहतर सुविधाएं होती हैं. इनकी मदद से, विज्ञापन को अपनी पसंद के मुताबिक बनाया जा सकता है और लोगों को विज्ञापन का बेहतर अनुभव दिया जा सकता है. इस गाइड में, नेटिव विज्ञापनों की बेहतर सुविधाओं का इस्तेमाल करने का तरीका बताया गया है.
ज़रूरी शर्तें
- नेटिव विज्ञापन फ़ॉर्मैट को इंटिग्रेट करें.
ऐसेट कंट्रोल
इस सेक्शन में, नेटिव विज्ञापनों में क्रिएटिव ऐसेट को अपनी पसंद के मुताबिक बनाने का तरीका बताया गया है. आपके पास मीडिया ऐसेट के लिए, पसंदीदा आसपेक्ट रेशियो (चौड़ाई-ऊंचाई का अनुपात) तय करने का विकल्प होता है. साथ ही, यह भी तय किया जा सकता है कि इमेज ऐसेट कैसे डाउनलोड और दिखाई जाएं.
पसंदीदा मीडिया आसपेक्ट रेशियो (चौड़ाई-ऊंचाई का अनुपात) के कंट्रोल
मीडिया आसपेक्ट रेशियो (चौड़ाई-ऊंचाई का अनुपात) के कंट्रोल की मदद से, विज्ञापन क्रिएटिव के आसपेक्ट रेशियो के लिए प्राथमिकता तय की जा सकती है.
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 आइकॉन को AdChoicesView में रेंडर करके, AdChoices कस्टम व्यू सेट करने का तरीका बताया गया है.
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 रेंडर करता है. विज्ञापन के ऐसे सोर्स जिन्हें रेंडर करने के लिए, तीसरे पक्ष के एसडीके की ज़रूरत होती है वे कस्टम क्लिक की दिशाओं की सेटिंग के मुताबिक काम नहीं करते.