इस गाइड में, आईएमए डीएआई एसडीके को एक सामान्य वीडियो प्लेयर ऐप्लिकेशन में इंटिग्रेट करने का तरीका बताया गया है. अगर आपको इंटिग्रेशन का पूरा सैंपल देखना है या उसे फ़ॉलो करना है, तो GitHub से BasicExample डाउनलोड करें.
आईएमए डीएआई के बारे में खास जानकारी
आईएमए डीएआई को लागू करने के लिए, एसडीके के चार मुख्य कॉम्पोनेंट की ज़रूरत होती है. इनके बारे में इस गाइड में बताया गया है:
StreamDisplayContainer: यह एक कंटेनर ऑब्जेक्ट होता है, जो वीडियो प्लेबैक एलिमेंट के ऊपर मौजूद होता है. इसमें विज्ञापन के यूज़र इंटरफ़ेस (यूआई) एलिमेंट होते हैं.AdsLoader: यह एक ऐसा ऑब्जेक्ट है जो स्ट्रीम का अनुरोध करता है और स्ट्रीम के अनुरोध के रिस्पॉन्स ऑब्जेक्ट से ट्रिगर होने वाले इवेंट को मैनेज करता है. आपको सिर्फ़ एक विज्ञापन लोडर को इंस्टैंशिएट करना चाहिए. इसे ऐप्लिकेशन के लाइफ़टाइम के दौरान फिर से इस्तेमाल किया जा सकता है.StreamRequest: यह एक ऐसा ऑब्जेक्ट है जो स्ट्रीम के अनुरोध के बारे में बताता है. स्ट्रीम के अनुरोध, मांग पर वीडियो या लाइव स्ट्रीम के लिए हो सकते हैं. लाइव स्ट्रीम के अनुरोधों में ऐसेट कुंजी की जानकारी दी जाती है. वहीं, वीओडी के अनुरोधों में कॉन्टेंट मैनेजमेंट सिस्टम आईडी और वीडियो आईडी की जानकारी दी जाती है. दोनों तरह के अनुरोधों में, एपीआई पासकोड को शामिल किया जा सकता है. इसकी ज़रूरत, चुनिंदा स्ट्रीम को ऐक्सेस करने के लिए होती है. साथ ही, इनमें Google Ad Manager नेटवर्क कोड को भी शामिल किया जा सकता है. इसकी ज़रूरत, IMA SDK को होती है, ताकि वह Google Ad Manager की सेटिंग में बताए गए विज्ञापन आइडेंटिफ़ायर को मैनेज कर सके.StreamManager: यह एक ऐसा ऑब्जेक्ट है जो डाइनैमिक ऐड इंसर्शन स्ट्रीम और डीएआई बैकएंड के साथ इंटरैक्शन को मैनेज करता है. स्ट्रीम मैनेजर, ट्रैकिंग पिंग को भी मैनेज करता है. साथ ही, स्ट्रीम और विज्ञापन इवेंट को पब्लिशर को फ़ॉरवर्ड करता है.
ज़रूरी शर्तें
- Android Studio
- एसडीके इंटिग्रेशन के लिए, सैंपल वीडियो प्लेयर ऐप्लिकेशन
सैंपल वीडियो प्लेयर ऐप्लिकेशन डाउनलोड करना और चलाना
सैंपल के तौर पर मिला ऐप्लिकेशन, एक ऐसा वीडियो प्लेयर उपलब्ध कराता है जो एचएलएस वीडियो चलाता है. आईएमए डीएआई एसडीके की डीएआई सुविधाओं को इंटिग्रेट करने के लिए, इसे शुरुआती पॉइंट के तौर पर इस्तेमाल करें.
सैंपल वीडियो प्लेयर ऐप्लिकेशन डाउनलोड करें और उसे एक्सट्रैक्ट करें.
Android Studio खोलें और कोई मौजूदा Android Studio प्रोजेक्ट खोलें को चुनें. अगर Android Studio पहले से चल रहा है, तो फ़ाइल > नया > प्रोजेक्ट इंपोर्ट करें को चुनें. इसके बाद,
SampleVideoPlayer/build.gradleको चुनें.टूल > Android > Gradle फ़ाइलों के साथ प्रोजेक्ट सिंक करें को चुनकर, Gradle सिंक चलाएं.
पक्का करें कि प्लेयर ऐप्लिकेशन, किसी Android डिवाइस या Android वर्चुअल डिवाइस पर कंपाइल हो और काम करे. इसके लिए, Run > Run 'app' का इस्तेमाल करें. वीडियो स्ट्रीम को चलने से पहले लोड होने में कुछ समय लगना सामान्य बात है.
सैंपल वीडियो प्लेयर की जांच करना
सैंपल वीडियो प्लेयर में, अब तक IMA डीएआई एसडीके का कोई इंटिग्रेशन कोड नहीं है. सैंपल के तौर पर मिले ऐप्लिकेशन के दो मुख्य हिस्से होते हैं:
samplevideoplayer/SampleVideoPlayer.java: ExoPlayer पर आधारित एचएलएस प्लेयर, जो आईएमए डीएआई इंटिग्रेशन के लिए आधार के तौर पर काम करता है.videoplayerapp/MyActivity.java: यह गतिविधि, वीडियो प्लेयर बनाती है और उसेContextऔरmedia3.ui.PlayerViewपास करती है.
प्लेयर ऐप्लिकेशन में आईएमए डीएआई एसडीके जोड़ना
आपको आईएमए डीएआई एसडीके का रेफ़रंस भी शामिल करना होगा. Android Studio में, app/build.gradle में मौजूद ऐप्लिकेशन-लेवल की build.gradle फ़ाइल में यह जानकारी जोड़ें. आईएमए एसडीके के लिए, लाइब्रेरी डिशुगरिंग की सुविधा चालू होनी चाहिए. इसके लिए, आपको coreLibraryDesugaringEnabled true सेट करना होगा और build.gradle फ़ाइल में 'com.android.tools:desugar_jdk_libs' को डिपेंडेंसी के तौर पर जोड़ना होगा. ज़्यादा जानकारी के लिए, एनआईओ स्पेसिफ़िकेशन के साथ डिशुगरिंग की मदद से उपलब्ध Java 11+ एपीआई देखें.
आईएमए डीएआई एसडीके को इंटिग्रेट करना
मौजूदा
SampleVideoPlayerको रैप करने और आईएमए डीएआई को लागू करने वाला लॉजिक जोड़ने के लिए,videoplayerappपैकेज (app/java/com.google.ads.interactivemedia.v3.samples/videoplayerapp/में) मेंSampleAdsWrapperनाम की एक नई क्लास बनाएं. ऐसा करने के लिए, आपको सबसे पहले एकAdsLoaderबनाना होगा. इसका इस्तेमाल, डीएआई स्ट्रीम का अनुरोध करने के लिए किया जाता है.इस स्निपेट में एचएलएस और DASH, लाइव, और वीओडी स्ट्रीम के लिए सैंपल पैरामीटर शामिल हैं. कौनसी स्ट्रीम चलाई जा रही है, यह सेट करने के लिए
CONTENT_TYPEवैरिएबल को अपडेट करें.VideoStreamPlayer.VideoStreamPlayerCallbackको एक्सटेंड करने वालेSampleVideoPlayerCallbackइंटरफ़ेस इंस्टेंस को बनाने के लिए,createSampleVideoPlayerCallback()हेल्पर मेथड बनाएं.डीएआई के साथ काम करने के लिए, प्लेयर को IMA डीएआई एसडीके को ID3 इवेंट पास करने होंगे. यहां दिए गए सैंपल कोड में,
callback.onUserTextReceived()मेथड का इस्तेमाल करके ऐसा किया गया है.SteamRequestबनाने के लिए,buildStreamRequest()तरीका जोड़ें. यह तरीका,CONTENT_TYPEवैरिएबल को सेट करने के तरीके के आधार पर, अलग-अलग स्ट्रीम के बीच स्विच करता है. इस गाइड में इस्तेमाल की गई डिफ़ॉल्ट स्ट्रीम, IMA की सैंपल वीओडी एचएलएस स्ट्रीम है.स्ट्रीम चलाने के लिए, आपको
VideoStreamPlayerकी भी ज़रूरत होगी. इसलिए,createVideoStreamPlayer()तरीका जोड़ें. इससे एक ऐसी क्लास बनती है जोVideoStreamPlayerको लागू करती है.ज़रूरी लिसनर लागू करें और गड़बड़ी को ठीक करने के लिए सहायता जोड़ें.
AdErrorListenerलागू करने पर ध्यान दें, क्योंकि विज्ञापन न चलने पर यह फ़ॉलबैक यूआरएल को कॉल करता है. कॉन्टेंट और विज्ञापन एक ही स्ट्रीम में होते हैं. इसलिए, अगर डीएआई स्ट्रीम में कोई गड़बड़ी होती है, तो आपको फ़ॉलबैक स्ट्रीम को कॉल करने के लिए तैयार रहना चाहिए.लॉगिंग के लिए कोड जोड़ें.
SampleAdsWrapperको इंस्टैंशिएट और कॉल करने के लिए,videoplayerappमेंMyActivityमें बदलाव करें. साथ ही,ImaSdkSettingsइंस्टेंस बनाने के लिए, हेल्पर मेथड का इस्तेमाल करके, यहांImaSdkFactory.initialize()को कॉल करें.ImaSdkSettingsइंस्टेंस बनाने के लिए,getImaSdkSettings()हेल्पर मेथड जोड़ें.लॉग इन करने के लिए यूज़र इंटरफ़ेस (यूआई) एलिमेंट जोड़ने के लिए, गतिविधि की लेआउट फ़ाइल
activity_my.xmlमें बदलाव करें.
बधाई हो! अब आपके Android ऐप्लिकेशन में वीडियो विज्ञापनों के लिए अनुरोध किया जा रहा है और उन्हें दिखाया जा रहा है. इसे बेहतर तरीके से लागू करने के लिए, बुकमार्क, स्नैपबैक, और एपीआई दस्तावेज़ देखें.
समस्या का हल
अगर आपको वीडियो विज्ञापन चलाने में समस्याएं आ रही हैं, तो पूरा BasicExample डाउनलोड करके देखें. अगर यह BasicExample में ठीक से काम करता है, तो हो सकता है कि आपके ऐप्लिकेशन के IMA इंटिग्रेशन कोड में कोई समस्या हो.
अगर आपको अब भी समस्याएं आ रही हैं, तो आईएमए एसडीके फ़ोरम पर जाएं.