Google, डिवाइस पर एक ऐसा प्लैटफ़ॉर्म बना रहा है जो उपयोगकर्ताओं के ऐप्लिकेशन को वर्टिकल के हिसाब से व्यवस्थित करता है. साथ ही, ऐप्लिकेशन के कॉन्टेंट को उपयोगकर्ताओं के हिसाब से इस्तेमाल करने और खोजने के लिए, एक नया अनुभव देता है. फ़ुलस्क्रीन में दिखने वाले इस अनुभव की मदद से, डेवलपर पार्टनर को अपने ऐप्लिकेशन के बाहर, एक खास चैनल पर अपना बेहतरीन कॉन्टेंट दिखाने का मौका मिलता है.
इस गाइड में, डेवलपर पार्टनर के लिए निर्देश दिए गए हैं. इन निर्देशों की मदद से, वे अपने ऑडियो कॉन्टेंट को इंटिग्रेट कर सकते हैं. इसके लिए, उन्हें Engage SDK टूल का इस्तेमाल करना होगा. इससे, इस नए प्लैटफ़ॉर्म और Google के मौजूदा प्लैटफ़ॉर्म, दोनों पर ऑडियो कॉन्टेंट दिखाया जा सकेगा.
इंटिग्रेशन की जानकारी
शब्दावली
इस इंटिग्रेशन में तीन तरह के क्लस्टर शामिल होते हैं: सुझाव, जारी रखना, और चुनिंदा.
सुझाव क्लस्टर, किसी डेवलपर पार्टनर के कॉन्टेंट के लिए, आपके हिसाब से सुझाव दिखाते हैं.
आपके सुझावों का स्ट्रक्चर इस तरह का होता है:
सुझाव क्लस्टर: एक यूज़र इंटरफ़ेस (यूआई) व्यू, जिसमें एक ही डेवलपर पार्टनर के सुझावों का ग्रुप होता है.
पहली इमेज. Entertainment Space का यूज़र इंटरफ़ेस, जिसमें किसी एक पार्टनर से मिले सुझावों का क्लस्टर दिख रहा है. इकाई: क्लस्टर में किसी एक आइटम को दिखाने वाला ऑब्जेक्ट. इकाई, प्लेलिस्ट, ऑडियो बुक, पॉडकास्ट वगैरह हो सकती है. इकाई के इस्तेमाल किए जा सकने वाले टाइप की सूची देखने के लिए, इकाई का डेटा दें सेक्शन देखें.
दूसरी इमेज. Entertainment Space का यूज़र इंटरफ़ेस (यूआई), जिसमें किसी एक पार्टनर के सुझाव वाले क्लस्टर में एक इकाई दिख रही है.
जारी रखना क्लस्टर, एक ही यूज़र इंटरफ़ेस (यूआई) ग्रुपिंग में, कई डेवलपर पार्टनर के उपयोगकर्ताओं के हाल ही में सुने गए ऑडियो कॉन्टेंट को दिखाता है. हर डेवलपर पार्टनर को, 'जारी रखने वाले क्लस्टर' में ज़्यादा से ज़्यादा 10 इकाइयां ब्रॉडकास्ट करने की अनुमति होगी.
तीसरी इमेज. Entertainment Space का यूज़र इंटरफ़ेस (यूआई), जिसमें एक से ज़्यादा पार्टनर के अधूरे सुझावों के साथ, वीडियो देखने के लिए सुझावों का क्लस्टर दिखाया गया है. फ़िलहाल, इसमें सिर्फ़ एक सुझाव दिख रहा है. चुनिंदा क्लस्टर में, एक ही यूज़र इंटरफ़ेस ग्रुपिंग में कई डेवलपर पार्टनर के आइटम दिखाए जाते हैं. इसमें एक हाइलाइट किया गया क्लस्टर होगा. यह यूज़र इंटरफ़ेस (यूआई) के सबसे ऊपर दिखेगा. साथ ही, सुझाव वाले सभी क्लस्टर के ऊपर प्राथमिकता के साथ दिखेगा. हर डेवलपर पार्टनर को, 'चुनिंदा' क्लस्टर में ज़्यादा से ज़्यादा 10 इकाइयां ब्रॉडकास्ट करने की अनुमति होगी.
चौथी इमेज. Entertainment Space का यूज़र इंटरफ़ेस (यूआई), जिसमें कई पार्टनर के सुझावों के साथ, चुनिंदा क्लस्टर दिखाया गया है. फ़िलहाल, सिर्फ़ एक सुझाव दिख रहा है.
सेशन की तैयारी
कम से कम एपीआई लेवल: 19
अपने ऐप्लिकेशन में com.google.android.engage:engage-core
लाइब्रेरी जोड़ें:
dependencies {
// Make sure you also include that repository in your project's build.gradle file.
implementation 'com.google.android.engage:engage-core:1.5.2'
}
खास जानकारी
यह डिज़ाइन, बाउंड सेवा को लागू करने पर आधारित है.
क्लाइंट, अलग-अलग क्लस्टर टाइप के लिए, यहां दी गई सीमाओं के हिसाब से डेटा पब्लिश कर सकता है:
क्लस्टर का टाइप | क्लस्टर की सीमाएं | किसी क्लस्टर में इकाइयों की ज़्यादा से ज़्यादा संख्या |
---|---|---|
सुझाव क्लस्टर | ज़्यादा से ज़्यादा सात | ज़्यादा से ज़्यादा 50 |
कंटिन्यूऐशन क्लस्टर | ज़्यादा से ज़्यादा एक | ज़्यादा से ज़्यादा 20 |
चुनिंदा क्लस्टर | ज़्यादा से ज़्यादा एक | ज़्यादा से ज़्यादा 20 |
पहला चरण: इकाई का डेटा देना
SDK ने हर तरह के आइटम को दिखाने के लिए अलग-अलग इकाइयां तय की हैं. 'सुनें' कैटगरी के लिए, हम इन इकाइयों के साथ काम करते हैं:
MusicAlbumEntity
MusicArtistEntity
MusicTrackEntity
MusicVideoEntity
PlaylistEntity
PodcastSeriesEntity
PodcastEpisodeEntity
LiveRadioStationEntity
AudiobookEntity
नीचे दिए गए चार्ट में, हर टाइप के लिए उपलब्ध एट्रिब्यूट और ज़रूरी शर्तों के बारे में बताया गया है.
MusicAlbumEntity
MusicAlbumEntity
ऑब्जेक्ट से किसी म्यूज़िक एल्बम के बारे में पता चलता है. उदाहरण के लिए, टेलर स्विफ़्ट का Midnights.
एट्रिब्यूट | ज़रूरी शर्त | नोट |
---|---|---|
नाम | ज़रूरी है | म्यूज़िक एल्बम का टाइटल. |
पोस्टर इमेज | ज़रूरी है | कम से कम एक इमेज देना ज़रूरी है. दिशा-निर्देश के लिए, इमेज की जानकारी देखें. |
जानकारी वाले पेज का यूआरआई | ज़रूरी है |
संगीत एल्बम के बारे में जानकारी पाने के लिए, सेवा देने वाली कंपनी के ऐप्लिकेशन का डीप लिंक. ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले इस सवाल को देखें |
कलाकार | ज़रूरी है | संगीत एल्बम में शामिल कलाकारों की सूची. |
प्लेबैक यूआरआई | वैकल्पिक |
ऐसा डीप लिंक जो सेवा देने वाले ऐप्लिकेशन में, एल्बम चलाना शुरू करता है. ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले इस सवाल को देखें |
ब्यौरा | वैकल्पिक | अगर यह जानकारी दी गई है, तो इसमें 200 से ज़्यादा वर्ण नहीं होने चाहिए. |
गानों की संख्या | वैकल्पिक | संगीत एल्बम में मौजूद गानों की संख्या. |
शैलियां | वैकल्पिक | संगीत एल्बम में मौजूद शैलियों की सूची. |
एल्बम का फ़ॉर्मैट | वैकल्पिक |
एल्बम (इसमें एलपी और डबल एलपी शामिल हैं) ईपी SINGLE मिक्सटेप |
संगीत लेबल | वैकल्पिक | एल्बम से जुड़े संगीत लेबल की सूची. |
डिवाइस पर डाउनलोड किए गए | वैकल्पिक | बूलियन वैल्यू, जो बताती है कि संगीत का एल्बम डिवाइस पर डाउनलोड किया गया है या नहीं. |
अश्लील कॉन्टेंट | वैकल्पिक |
बुलियन वैल्यू, जो बताती है कि कॉन्टेंट अश्लील है या नहीं जिन आइटम में अश्लील कॉन्टेंट है या जिन पर माता-पिता के लिए चेतावनी दी गई है उनके लिए, इस एट्रिब्यूट की वैल्यू को 'सही' पर सेट किया जाना चाहिए. अश्लील कॉन्टेंट वाले आइटम, "E" टैग के साथ दिखते हैं. |
रिलीज़ की तारीख | वैकल्पिक | एल्बम की रिलीज़ की तारीख, युग के हिसाब से मिलीसेकंड में. |
कुल अवधि | वैकल्पिक | एल्बम की अवधि मिलीसेकंड में. |
दर्शकों के जुड़ाव का आखिरी समय | वैकल्पिक |
यह सुझाव, 'जारी रखने वाले क्लस्टर' में मौजूद आइटम के लिए दिया जाता है. इसका इस्तेमाल रैंकिंग के लिए किया जा सकता है. एपिक मिलीसेकंड में |
प्रोग्रेस का प्रतिशत पूरा हो गया | वैकल्पिक |
यह सुझाव, 'जारी रखने वाले क्लस्टर' में मौजूद आइटम के लिए दिया जाता है. 0 से 100 के बीच का पूर्णांक |
MusicArtistEntity
MusicArtistEntity
ऑब्जेक्ट, संगीत कलाकार (उदाहरण के लिए, एडेल) के बारे में बताता है.
एट्रिब्यूट | ज़रूरी शर्त | नोट |
---|---|---|
नाम | ज़रूरी है | संगीत कलाकार का नाम. |
पोस्टर इमेज | ज़रूरी है | कम से कम एक इमेज देना ज़रूरी है. दिशा-निर्देश के लिए, इमेज की जानकारी देखें. |
जानकारी वाले पेज का यूआरआई | ज़रूरी है |
संगीत कलाकार के बारे में जानकारी पाने के लिए, सेवा देने वाली कंपनी के ऐप्लिकेशन का डीप लिंक. ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले इस सवाल को देखें |
प्लेबैक यूआरआई | वैकल्पिक |
डीप लिंक, जो सेवा देने वाले ऐप्लिकेशन में कलाकार के गाने चलाना शुरू करता है. ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले इस सवाल को देखें |
ब्यौरा | वैकल्पिक | अगर यह जानकारी दी गई है, तो इसमें 200 से ज़्यादा वर्ण नहीं होने चाहिए. |
दर्शकों के जुड़ाव का आखिरी समय | वैकल्पिक |
यह सुझाव, 'जारी रखने वाले क्लस्टर' में मौजूद आइटम के लिए दिया जाता है. इसका इस्तेमाल रैंकिंग के लिए किया जा सकता है. एपिक मिलीसेकंड में |
MusicTrackEntity
MusicTrackEntity
ऑब्जेक्ट, किसी म्यूज़िक ट्रैक को दिखाता है. उदाहरण के लिए, Coldplay का Yellow.
एट्रिब्यूट | ज़रूरी शर्त | नोट |
---|---|---|
नाम | ज़रूरी है | संगीत ट्रैक का टाइटल. |
पोस्टर इमेज | ज़रूरी है | कम से कम एक इमेज देना ज़रूरी है. दिशा-निर्देश के लिए, इमेज की जानकारी देखें. |
प्लेबैक यूआरआई | ज़रूरी है |
ऐसा डीप लिंक जो सेवा देने वाली कंपनी के ऐप्लिकेशन में, संगीत ट्रैक को चलाना शुरू करता है. ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले इस सवाल को देखें |
कलाकार | ज़रूरी है | संगीत ट्रैक के लिए कलाकारों की सूची. |
जानकारी वाले पेज का यूआरआई | वैकल्पिक |
संगीत ट्रैक के बारे में जानकारी पाने के लिए, सेवा देने वाले ऐप्लिकेशन का डीप लिंक. ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले इस सवाल को देखें |
ब्यौरा | वैकल्पिक | अगर यह जानकारी दी गई है, तो इसमें 200 से ज़्यादा वर्ण नहीं होने चाहिए. |
कुल अवधि | वैकल्पिक | ट्रैक का कुल समय, मिलीसेकंड में. |
एल्बम | वैकल्पिक | उस एल्बम का नाम जिसका यह गाना है. |
डिवाइस पर डाउनलोड किए गए | वैकल्पिक | बूलियन से पता चलता है कि संगीत ट्रैक, डिवाइस पर डाउनलोड किया गया है या नहीं. |
अश्लील कॉन्टेंट | वैकल्पिक |
बुलियन वैल्यू, जो बताती है कि कॉन्टेंट अश्लील है या नहीं जिन आइटम में अश्लील कॉन्टेंट है या जिन पर माता-पिता के लिए चेतावनी है उनके लिए TRUE को सेट किया जाना चाहिए. अश्लील कॉन्टेंट वाले आइटम, "E" टैग के साथ दिखते हैं. |
दर्शकों के जुड़ाव का आखिरी समय | वैकल्पिक |
यह सुझाव, 'जारी रखने वाले क्लस्टर' में मौजूद आइटम के लिए दिया जाता है. इसका इस्तेमाल रैंकिंग के लिए किया जा सकता है. एपिक मिलीसेकंड में |
प्रोग्रेस का प्रतिशत पूरा हो गया | वैकल्पिक |
यह सुझाव, 'जारी रखने वाले क्लस्टर' में मौजूद आइटम के लिए दिया जाता है. 0 से 100 के बीच का पूर्णांक |
MusicVideoEntity
MusicVideoEntity
ऑब्जेक्ट, किसी संगीत वीडियो के बारे में बताता है. उदाहरण के लिए,
The Weeknd - Take My Breath (Official Music Video).
एट्रिब्यूट | ज़रूरी शर्त | नोट |
---|---|---|
नाम | ज़रूरी है | संगीत वीडियो का टाइटल. |
पोस्टर इमेज | ज़रूरी है | कम से कम एक इमेज देना ज़रूरी है. दिशा-निर्देश के लिए, इमेज की जानकारी देखें. |
प्लेबैक यूआरआई | ज़रूरी है |
ऐसा डीप लिंक जो संगीत वीडियो को, सेवा देने वाली कंपनी के ऐप्लिकेशन में चलाता है. ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले इस सवाल को देखें |
जानकारी वाले पेज का यूआरआई | वैकल्पिक |
संगीत वीडियो के बारे में जानकारी पाने के लिए, सेवा देने वाली कंपनी के ऐप्लिकेशन का डीप लिंक. ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले इस सवाल को देखें |
कुल अवधि | वैकल्पिक | वीडियो की अवधि मिलीसेकंड में. |
व्यू की संख्या | वैकल्पिक | वीडियो पर मिले व्यू की संख्या, फ़्री टेक्स्ट फ़ॉर्मैट में. |
कलाकार | वैकल्पिक | संगीत वीडियो में शामिल कलाकारों की सूची. |
सामग्री रेटिंग | वैकल्पिक | ट्रैक की कॉन्टेंट रेटिंग की सूची. |
ब्यौरा | वैकल्पिक | अगर यह जानकारी दी गई है, तो इसमें 200 से ज़्यादा वर्ण नहीं होने चाहिए. |
डिवाइस पर डाउनलोड किए गए | वैकल्पिक | बूलियन वैल्यू, जो बताती है कि संगीत वीडियो को डिवाइस पर डाउनलोड किया गया है या नहीं. |
अश्लील कॉन्टेंट | वैकल्पिक |
बुलियन वैल्यू, जो बताती है कि कॉन्टेंट अश्लील है या नहीं जिन आइटम में अश्लील कॉन्टेंट है या जिन पर माता-पिता के लिए चेतावनी है उनके लिए TRUE को सेट किया जाना चाहिए. अश्लील कॉन्टेंट वाले आइटम, "E" टैग के साथ दिखते हैं. |
दर्शकों के जुड़ाव का आखिरी समय | वैकल्पिक |
यह सुझाव, 'जारी रखने वाले क्लस्टर' में मौजूद आइटम के लिए दिया जाता है. इसका इस्तेमाल रैंकिंग के लिए किया जा सकता है. एपिक मिलीसेकंड में |
प्रोग्रेस का प्रतिशत पूरा हो गया | वैकल्पिक |
यह सुझाव, 'जारी रखने वाले क्लस्टर' में मौजूद आइटम के लिए दिया जाता है. 0 से 100 के बीच का पूर्णांक |
PlaylistEntity
PlaylistEntity
ऑब्जेक्ट, संगीत प्लेलिस्ट को दिखाता है. उदाहरण के लिए, अमेरिका की टॉप 10 प्लेलिस्ट.
एट्रिब्यूट | ज़रूरी शर्त | नोट |
---|---|---|
नाम | ज़रूरी है | प्लेलिस्ट का टाइटल. |
पोस्टर इमेज | ज़रूरी है | कम से कम एक इमेज देना ज़रूरी है. दिशा-निर्देश के लिए, इमेज की जानकारी देखें. |
प्लेबैक यूआरआई | ज़रूरी है |
ऐसा डीप लिंक जो सेवा देने वाले ऐप्लिकेशन में संगीत प्लेलिस्ट चलाना शुरू करता है. ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले इस सवाल को देखें |
जानकारी वाले पेज का यूआरआई | वैकल्पिक |
संगीत प्लेलिस्ट के बारे में जानकारी पाने के लिए, सेवा देने वाली कंपनी के ऐप्लिकेशन का डीप लिंक. ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले इस सवाल को देखें |
कुल अवधि | वैकल्पिक | प्लेलिस्ट में मौजूद वीडियो चलने का कुल समय (मिलीसेकंड में). |
गानों की संख्या | वैकल्पिक | संगीत प्लेलिस्ट में मौजूद गानों की संख्या. |
ब्यौरा | वैकल्पिक | अगर यह जानकारी दी गई है, तो इसमें 200 से ज़्यादा वर्ण नहीं होने चाहिए. |
डिवाइस पर डाउनलोड किए गए | वैकल्पिक | बूलियन से पता चलता है कि प्लेलिस्ट को डिवाइस पर डाउनलोड किया गया है या नहीं. |
अश्लील कॉन्टेंट | वैकल्पिक |
बुलियन वैल्यू, जो बताती है कि कॉन्टेंट अश्लील है या नहीं जिन आइटम में अश्लील कॉन्टेंट है या जिन पर माता-पिता के लिए चेतावनी है उनके लिए TRUE को सेट किया जाना चाहिए. अश्लील कॉन्टेंट वाले आइटम, "E" टैग के साथ दिखते हैं. |
दर्शकों के जुड़ाव का आखिरी समय | वैकल्पिक |
यह सुझाव, 'जारी रखने वाले क्लस्टर' में मौजूद आइटम के लिए दिया जाता है. इसका इस्तेमाल रैंकिंग के लिए किया जा सकता है. एपिक मिलीसेकंड में |
प्रोग्रेस का प्रतिशत पूरा हो गया | वैकल्पिक |
यह सुझाव, 'जारी रखने वाले क्लस्टर' में मौजूद आइटम के लिए दिया जाता है. 0 से 100 के बीच का पूर्णांक |
PodcastSeriesEntity
PodcastSeriesEntity
ऑब्जेक्ट, किसी पॉडकास्ट सीरीज़ के बारे में बताता है. उदाहरण के लिए, This American Life.
एट्रिब्यूट | ज़रूरी शर्त | नोट |
---|---|---|
नाम | ज़रूरी है | पॉडकास्ट सीरीज़ का टाइटल. |
पोस्टर इमेज | ज़रूरी है | कम से कम एक इमेज देना ज़रूरी है. दिशा-निर्देश के लिए, इमेज की जानकारी देखें. |
जानकारी वाले पेज का यूआरआई | ज़रूरी है |
पॉडकास्ट सीरीज़ के बारे में जानकारी पाने के लिए, सेवा देने वाली कंपनी के ऐप्लिकेशन का डीप लिंक. ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले इस सवाल को देखें |
प्लेबैक यूआरआई | वैकल्पिक |
ऐसा डीप लिंक जो पॉडकास्ट सेवा देने वाले ऐप्लिकेशन में पॉडकास्ट सीरीज़ चलाना शुरू करता है. ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले इस सवाल को देखें |
एपिसोड की संख्या | वैकल्पिक | पॉडकास्ट सीरीज़ में मौजूद एपिसोड की संख्या. |
प्रोडक्शन का नाम | वैकल्पिक | पॉडकास्ट सीरीज़ के प्रोडक्शन का नाम. |
होस्ट | वैकल्पिक | पॉडकास्ट सीरीज़ के होस्ट की सूची. |
शैलियां | वैकल्पिक | पॉडकास्ट सीरीज़ की शैलियों की सूची. |
डिवाइस पर डाउनलोड किया गया | वैकल्पिक | बूलियन से पता चलता है कि पॉडकास्ट को डिवाइस पर डाउनलोड किया गया है या नहीं. |
ब्यौरा | वैकल्पिक | अगर यह जानकारी दी गई है, तो इसमें 200 से ज़्यादा वर्ण नहीं होने चाहिए. |
अश्लील कॉन्टेंट | वैकल्पिक |
बुलियन वैल्यू, जो बताती है कि कॉन्टेंट अश्लील है या नहीं जिन आइटम में अश्लील कॉन्टेंट है या जिन पर माता-पिता के लिए चेतावनी है उनके लिए TRUE को सेट किया जाना चाहिए. अश्लील कॉन्टेंट वाले आइटम, "E" टैग के साथ दिखते हैं. |
दर्शकों के जुड़ाव का आखिरी समय | वैकल्पिक |
यह सुझाव, 'जारी रखने वाले क्लस्टर' में मौजूद आइटम के लिए दिया जाता है. इसका इस्तेमाल रैंकिंग के लिए किया जा सकता है. एपिक मिलीसेकंड में |
PodcastEpisodeEntity
PodcastEpisodeEntity
ऑब्जेक्ट, पॉडकास्ट सीरीज़ को दिखाता है. उदाहरण के लिए,
Spark Bird, Episode 754: This American Life.
एट्रिब्यूट | ज़रूरी शर्त | नोट |
---|---|---|
नाम | ज़रूरी है | पॉडकास्ट के एपिसोड का टाइटल. |
पोस्टर इमेज | ज़रूरी है | कम से कम एक इमेज देना ज़रूरी है. दिशा-निर्देश के लिए, इमेज की जानकारी देखें. |
प्लेबैक यूआरआई | ज़रूरी है |
ऐसा डीप लिंक जो पॉडकास्ट के एपिसोड को, सेवा देने वाली कंपनी के ऐप्लिकेशन में चलाता है. ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले इस सवाल को देखें |
पॉडकास्ट सीरीज़ का टाइटल | ज़रूरी है | पॉडकास्ट की उस सीरीज़ का नाम जिसका यह एपिसोड है. |
कुल अवधि | ज़रूरी है | पॉडकास्ट के एपिसोड का कुल समय, मिलीसेकंड में. |
पब्लिश करने की तारीख | ज़रूरी है | पॉडकास्ट पब्लिश करने की तारीख (मिलीसेकंड में) |
जानकारी वाले पेज का यूआरआई | वैकल्पिक |
पॉडकास्ट एपिसोड के बारे में जानकारी पाने के लिए, सेवा देने वाले ऐप्लिकेशन का डीप लिंक. ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले इस सवाल को देखें |
प्रोडक्शन का नाम | वैकल्पिक | पॉडकास्ट सीरीज़ के प्रोडक्शन का नाम. |
एपिसोड का इंडेक्स | वैकल्पिक | सीरीज़ में एपिसोड का इंडेक्स (पहला इंडेक्स 1 होता है). |
होस्ट | वैकल्पिक | पॉडकास्ट के एपिसोड के होस्ट की सूची. |
शैलियां | वैकल्पिक | पॉडकास्ट के एपिसोड की शैलियों की सूची. |
डिवाइस पर डाउनलोड किया गया | वैकल्पिक | बूलियन से पता चलता है कि पॉडकास्ट का एपिसोड डिवाइस पर डाउनलोड किया गया है या नहीं. |
ब्यौरा | वैकल्पिक | अगर यह जानकारी दी गई है, तो इसमें 200 से ज़्यादा वर्ण नहीं होने चाहिए. |
वीडियो पॉडकास्ट | वैकल्पिक | बूलियन वैल्यू, जो बताती है कि पॉडकास्ट के एपिसोड में वीडियो कॉन्टेंट है या नहीं |
अश्लील कॉन्टेंट | वैकल्पिक |
बुलियन वैल्यू, जो बताती है कि कॉन्टेंट अश्लील है या नहीं जिन आइटम में अश्लील कॉन्टेंट है या जिन पर माता-पिता के लिए चेतावनी दी गई है उनके लिए, इस एट्रिब्यूट की वैल्यू को 'सही' पर सेट किया जाना चाहिए. अश्लील कॉन्टेंट वाले आइटम, "E" टैग के साथ दिखते हैं. |
'अगला सुनें' सुविधा का टाइप | वैकल्पिक |
यह सुझाव, कंटिन्यूएशन क्लस्टर में मौजूद आइटम के लिए दिया जाता है TYPE_CONTINUE - किसी अधूरे ऑडियो आइटम को फिर से शुरू करना. TYPE_NEXT - सीरीज़ के अगले एपिसोड पर जाएं. TYPE_NEW - हाल ही में रिलीज़ किया गया. |
दर्शकों के जुड़ाव का आखिरी समय | वैकल्पिक |
यह सुझाव, 'जारी रखने वाले क्लस्टर' में मौजूद आइटम के लिए दिया जाता है. इसका इस्तेमाल रैंकिंग के लिए किया जा सकता है. एपिक मिलीसेकंड में |
प्रोग्रेस का प्रतिशत पूरा हो गया | वैकल्पिक |
यह सुझाव, 'जारी रखने वाले क्लस्टर' में मौजूद आइटम के लिए दिया जाता है. 0 से 100 के बीच का पूर्णांक |
LiveRadioStationEntity
LiveRadioStationEntity
ऑब्जेक्ट, लाइव रेडियो स्टेशन (उदाहरण के लिए, 98.1 The Breeze) को दिखाता है.
एट्रिब्यूट | ज़रूरी शर्त | नोट |
---|---|---|
नाम | ज़रूरी है | लाइव रेडियो स्टेशन का टाइटल. |
पोस्टर इमेज | ज़रूरी है | कम से कम एक इमेज देना ज़रूरी है. दिशा-निर्देश के लिए, इमेज की जानकारी देखें. |
प्लेबैक यूआरआई | ज़रूरी है |
ऐसा डीप लिंक जो सेवा देने वाले ऐप्लिकेशन में रेडियो स्टेशन को चलाना शुरू करता है. ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले इस सवाल को देखें |
जानकारी वाले पेज का यूआरआई | वैकल्पिक |
रेडियो स्टेशन के बारे में जानकारी पाने के लिए, सेवा देने वाली कंपनी के ऐप्लिकेशन का डीप लिंक. ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले इस सवाल को देखें |
फ़्रीक्वेंसी | वैकल्पिक | रेडियो स्टेशन की फ़्रीक्वेंसी (उदाहरण के लिए, "98.1 एफ़एम"). |
शीर्षक दिखाएं | वैकल्पिक | रेडियो स्टेशन पर चल रहा मौजूदा शो. |
होस्ट | वैकल्पिक | रेडियो स्टेशन के होस्ट की सूची. |
ब्यौरा | वैकल्पिक | अगर यह जानकारी दी गई है, तो इसमें 200 से ज़्यादा वर्ण नहीं होने चाहिए. |
दर्शकों के जुड़ाव का आखिरी समय | वैकल्पिक |
यह सुझाव, 'जारी रखने वाले क्लस्टर' में मौजूद आइटम के लिए दिया जाता है. इसका इस्तेमाल रैंकिंग के लिए किया जा सकता है. एपिक मिलीसेकंड में |
AudiobookEntity
AudiobookEntity
ऑब्जेक्ट, ऑडियो बुक को दिखाता है. उदाहरण के लिए, मिशेल ओबामा की Becoming ऑडियो बुक.
एट्रिब्यूट | ज़रूरी शर्त | नोट |
---|---|---|
नाम | ज़रूरी है | |
पोस्टर इमेज | ज़रूरी है | कम से कम एक इमेज देना ज़रूरी है. दिशा-निर्देश के लिए, इमेज की जानकारी देखें. |
लेखक | ज़रूरी है | कम से कम एक लेखक का नाम देना ज़रूरी है. |
Narrator | ज़रूरी है | कम से कम एक नैरेटर का नाम देना ज़रूरी है. |
ऐक्शन लिंक का यूआरआई | ज़रूरी है |
ऑडियो बुक के लिए, सेवा देने वाली कंपनी के ऐप्लिकेशन का डीप लिंक. ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले इस सवाल को देखें |
पब्लिश होने की तारीख | वैकल्पिक | अगर दिया गया है, तो युग के मिलीसेकंड में. |
ब्यौरा | वैकल्पिक | अगर यह जानकारी दी गई है, तो इसमें 200 से ज़्यादा वर्ण नहीं होने चाहिए. |
कीमत | वैकल्पिक | फ़्री टेक्स्ट |
कुल अवधि | वैकल्पिक | अगर वैल्यू दी गई है, तो वह पॉज़िटिव होनी चाहिए. |
शैली | वैकल्पिक | किताब से जुड़ी शैलियों की सूची. |
सीरीज़ का नाम | वैकल्पिक | उस सीरीज़ का नाम जिससे ऑडियो बुक जुड़ी है. उदाहरण के लिए, हैरी पॉटर. |
सीरीज़ यूनिट का इंडेक्स | वैकल्पिक | सीरीज़ में ऑडियो बुक का इंडेक्स, जहां 1 सीरीज़ की पहली ऑडियो बुक होती है. उदाहरण के लिए, अगर हैरी पॉटर ऐंड द प्रिज़नर ऑफ़ अज़काबान सीरीज़ की तीसरी किताब है, तो इसे 3 पर सेट किया जाना चाहिए. |
फ़ोटोबुक किस तरह की है | वैकल्पिक |
TYPE_CONTINUE - जिस किताब को पढ़ा नहीं गया है उसे फिर से पढ़ना शुरू करना. TYPE_NEXT - सीरीज़ के अगले एपिसोड पर जाएं. TYPE_NEW - हाल ही में रिलीज़ किया गया. |
दर्शकों के जुड़ाव का आखिरी समय | कुछ शर्तों के मुताबिक ज़रूरी है | अगर आइटम, 'जारी रखने के लिए क्लस्टर' में है, तो यह एट्रिब्यूट देना ज़रूरी है. एपिक मिलीसेकंड में. |
प्रोग्रेस का प्रतिशत | कुछ शर्तों के मुताबिक ज़रूरी है |
अगर आइटम, 'जारी रखने के लिए क्लस्टर' में है, तो यह एट्रिब्यूट देना ज़रूरी है. *नई* खरीदी गई ऑडियो बुक, 'पढ़ना जारी रखें' क्लस्टर का हिस्सा हो सकती हैं. वैल्यू 0 से ज़्यादा और 100 से कम होनी चाहिए. |
DisplayTimeWindow - किसी कॉन्टेंट को डिसप्ले पर दिखाने के लिए, समय की विंडो सेट करना | ||
शुरू होने का टाइमस्टैंप | वैकल्पिक |
वह टाइमस्टैंप जिसे ईपोच के तौर पर इस्तेमाल किया गया है. इसके बाद, कॉन्टेंट को प्लैटफ़ॉर्म पर दिखाया जाना चाहिए. अगर यह सेट नहीं है, तो इसका मतलब है कि कॉन्टेंट को प्लैटफ़ॉर्म पर दिखाया जा सकता है. एपिक मिलीसेकंड में. |
खत्म होने का टाइमस्टैंप | वैकल्पिक |
वह टाइमस्टैंप जिसे ईपोच के तौर पर इस्तेमाल किया जाता है. इसके बाद, कॉन्टेंट को प्लैटफ़ॉर्म पर नहीं दिखाया जाता. अगर यह सेट नहीं है, तो इसका मतलब है कि कॉन्टेंट को प्लैटफ़ॉर्म पर दिखाया जा सकता है. एपिक मिलीसेकंड में. |
इमेज की जानकारी
इमेज ऐसेट के लिए ज़रूरी खास बातें यहां दी गई हैं:
आसपेक्ट रेशियो | ज़रूरी शर्त | कम से कम पिक्सल | सुझाए गए पिक्सल |
---|---|---|---|
स्क्वेयर (1x1) | ज़रूरी है | 300x300 | 1200x1200 |
लैंडस्केप (1.91x1) | वैकल्पिक | 600x314 | 1200x628 |
पोर्ट्रेट (4x5) | वैकल्पिक | 480x600 | 960x1200 |
फ़ाइल फ़ॉर्मैट
PNG, JPG, स्टैटिक GIF, WebP
फ़ाइल का ज़्यादा से ज़्यादा साइज़
5120 केबी
कुछ और सुझाव
- इमेज के लिए सेफ़ एरिया: अपने मुख्य कॉन्टेंट को इमेज के बीच वाले 80% हिस्से में रखें.
उदाहरण
MusicAlbumEntity musicAlbumEntity =
new MusicAlbumEntity.Builder()
.setName(NAME)
.addPosterImage(new Image.Builder()
.setImageUri(Uri.parse("http://www.x.com/image.png"))
.setImageHeightInPixel(960)
.setImageWidthInPixel(408)
.build())
.setPlayBackUri("https://play.google/album/play")
.setInfoPageUri("https://play.google/album/info")
.setDescription("A description of this album.")
.addArtist("Artist")
.addGenre("Genre")
.addMusicLabel("Label")
.addContentRating("Rating")
.setSongsCount(960)
.setReleaseDateEpochMillis(1633032895L)
.setDurationMillis(1633L)
.build();
AudiobookEntity audiobookEntity =
new AudiobookEntity.Builder()
.setName("Becoming")
.addPosterImage(new Image.Builder()
.setImageUri(Uri.parse("http://www.x.com/image.png"))
.setImageHeightInPixel(960)
.setImageWidthInPixel(408)
.build())
.addAuthor("Michelle Obama")
.addNarrator("Michelle Obama")
.setActionLinkUri(
Uri.parse("https://play.google/audiobooks/1"))
.setDurationMillis(16335L)
.setPublishDateEpochMillis(1633032895L)
.setDescription("An intimate, powerful, and inspiring memoir")
.setPrice("$16.95")
.addGenre("biography")
.build();
दूसरा चरण: क्लस्टर डेटा देना
हमारा सुझाव है कि कॉन्टेंट पब्लिश करने की प्रोसेस को बैकग्राउंड में (उदाहरण के लिए, WorkManager का इस्तेमाल करके) शुरू करें और इसे नियमित तौर पर या किसी इवेंट के आधार पर शेड्यूल करें. उदाहरण के लिए, जब भी उपयोगकर्ता ऐप्लिकेशन खोले या जब उपयोगकर्ता ने अपने कार्ट में कुछ जोड़ा हो.
क्लस्टर पब्लिश करने की ज़िम्मेदारी AppEngagePublishClient
की है. क्लाइंट में ये एपीआई उपलब्ध हैं:
isServiceAvailable
publishRecommendationClusters
publishFeaturedCluster
publishContinuationCluster
publishUserAccountManagementRequest
updatePublishStatus
deleteRecommendationsClusters
deleteFeaturedCluster
deleteContinuationCluster
deleteUserManagementCluster
deleteClusters
isServiceAvailable
इस एपीआई का इस्तेमाल यह देखने के लिए किया जाता है कि सेवा, इंटिग्रेशन के लिए उपलब्ध है या नहीं और डिवाइस पर कॉन्टेंट दिखाया जा सकता है या नहीं.
Kotlin
client.isServiceAvailable.addOnCompleteListener { task -> if (task.isSuccessful) { // Handle IPC call success if(task.result) { // Service is available on the device, proceed with content // publish calls. } else { // Service is not available, no further action is needed. } } else { // The IPC call itself fails, proceed with error handling logic here, // such as retry. } }
Java
client.isServiceAvailable().addOnCompleteListener(task - > { if (task.isSuccessful()) { // Handle success if(task.getResult()) { // Service is available on the device, proceed with content publish // calls. } else { // Service is not available, no further action is needed. } } else { // The IPC call itself fails, proceed with error handling logic here, // such as retry. } });
publishRecommendationClusters
इस एपीआई का इस्तेमाल, RecommendationCluster
ऑब्जेक्ट की सूची पब्लिश करने के लिए किया जाता है.
Kotlin
client.publishRecommendationClusters( PublishRecommendationClustersRequest.Builder() .addRecommendationCluster( RecommendationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .setTitle("Trending music") .build()) .build())
Java
client.publishRecommendationClusters( new PublishRecommendationClustersRequest.Builder() .addRecommendationCluster( new RecommendationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .setTitle("Trending music") .build()) .build());
जब सेवा को अनुरोध मिलता है, तो एक ही लेन-देन में ये कार्रवाइयां होती हैं:
- डेवलपर पार्टनर का मौजूदा
RecommendationCluster
डेटा हटा दिया जाता है. - अनुरोध से मिले डेटा को पार्स करके, अपडेट किए गए सुझाव क्लस्टर में सेव किया जाता है.
गड़बड़ी होने पर, पूरा अनुरोध अस्वीकार कर दिया जाता है और मौजूदा स्थिति को बनाए रखा जाता है.
publishFeaturedCluster
इस एपीआई का इस्तेमाल, FeaturedCluster
ऑब्जेक्ट की सूची पब्लिश करने के लिए किया जाता है.
Kotlin
client.publishFeaturedCluster( PublishFeaturedClusterRequest.Builder() .setFeaturedCluster( FeaturedCluster.Builder() ... .build()) .build())
Java
client.publishFeaturedCluster( new PublishFeaturedClusterRequest.Builder() .setFeaturedCluster( new FeaturedCluster.Builder() ... .build()) .build());
जब सेवा को अनुरोध मिलता है, तो एक ही लेन-देन में ये कार्रवाइयां होती हैं:
- डेवलपर पार्टनर का मौजूदा
FeaturedCluster
डेटा हटा दिया जाता है. - अनुरोध से मिले डेटा को पार्स करके, अपडेट किए गए हाइलाइट किए गए क्लस्टर में सेव किया जाता है.
गड़बड़ी होने पर, पूरा अनुरोध अस्वीकार कर दिया जाता है और मौजूदा स्थिति को बनाए रखा जाता है.
publishContinuationCluster
इस एपीआई का इस्तेमाल, ContinuationCluster
ऑब्जेक्ट को पब्लिश करने के लिए किया जाता है.
Kotlin
client.publishContinuationCluster( PublishContinuationClusterRequest.Builder() .setContinuationCluster( ContinuationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .build()) .build())
Java
client.publishContinuationCluster( PublishContinuationClusterRequest.Builder() .setContinuationCluster( ContinuationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .build()) .build())
जब सेवा को अनुरोध मिलता है, तो एक ही लेन-देन में ये कार्रवाइयां होती हैं:
- डेवलपर पार्टनर का मौजूदा
ContinuationCluster
डेटा हटा दिया जाता है. - अनुरोध से मिले डेटा को पार्स करके, अपडेट किए गए कंटिन्यूएशन क्लस्टर में सेव किया जाता है.
गड़बड़ी होने पर, पूरा अनुरोध अस्वीकार कर दिया जाता है और मौजूदा स्थिति को बनाए रखा जाता है.
publishUserAccountManagementRequest
इस एपीआई का इस्तेमाल, साइन इन कार्ड पब्लिश करने के लिए किया जाता है . साइन इन ऐक्शन, उपयोगकर्ताओं को ऐप्लिकेशन के साइन इन पेज पर ले जाता है, ताकि ऐप्लिकेशन कॉन्टेंट पब्लिश कर सके (या ज़्यादा पसंद के मुताबिक कॉन्टेंट उपलब्ध करा सके)
यहां दिया गया मेटाडेटा, साइन इन कार्ड का हिस्सा है -
एट्रिब्यूट | ज़रूरी शर्त | ब्यौरा |
---|---|---|
ऐक्शन यूआरआई | ज़रूरी है | ऐक्शन के लिए डीपलिंक (जैसे, ऐप्लिकेशन के साइन इन पेज पर ले जाता है) |
इमेज | ज़रूरी नहीं - अगर यह नहीं दिया जाता है, तो टाइटल देना ज़रूरी है |
कार्ड पर दिखाई गई इमेज 16x9 आसपेक्ट रेशियो वाली इमेज, जिनका रिज़ॉल्यूशन 1264x712 हो |
शीर्षक | ज़रूरी नहीं - अगर यह नहीं दिया जाता है, तो इमेज देना ज़रूरी है | कार्ड पर मौजूद टाइटल |
ऐक्शन टेक्स्ट | वैकल्पिक | सीटीए (जैसे, साइन इन करें) पर दिखाया गया टेक्स्ट |
उपशीर्षक | वैकल्पिक | कार्ड पर सबटाइटल जोड़ना (ज़रूरी नहीं) |
Kotlin
var SIGN_IN_CARD_ENTITY = SignInCardEntity.Builder() .addPosterImage( Image.Builder() .setImageUri(Uri.parse("http://www.x.com/image.png")) .setImageHeightInPixel(500) .setImageWidthInPixel(500) .build()) .setActionText("Sign In") .setActionUri(Uri.parse("http://xx.com/signin")) .build() client.publishUserAccountManagementRequest( PublishUserAccountManagementRequest.Builder() .setSignInCardEntity(SIGN_IN_CARD_ENTITY) .build());
Java
SignInCardEntity SIGN_IN_CARD_ENTITY = new SignInCardEntity.Builder() .addPosterImage( new Image.Builder() .setImageUri(Uri.parse("http://www.x.com/image.png")) .setImageHeightInPixel(500) .setImageWidthInPixel(500) .build()) .setActionText("Sign In") .setActionUri(Uri.parse("http://xx.com/signin")) .build(); client.publishUserAccountManagementRequest( new PublishUserAccountManagementRequest.Builder() .setSignInCardEntity(SIGN_IN_CARD_ENTITY) .build());
जब सेवा को अनुरोध मिलता है, तो एक ही लेन-देन में ये कार्रवाइयां होती हैं:
- डेवलपर पार्टनर का मौजूदा
UserAccountManagementCluster
डेटा हटा दिया जाता है. - अनुरोध से मिले डेटा को पार्स करके, अपडेट किए गए UserAccountManagementCluster क्लस्टर में सेव किया जाता है.
गड़बड़ी होने पर, पूरा अनुरोध अस्वीकार कर दिया जाता है और मौजूदा स्थिति को बनाए रखा जाता है.
updatePublishStatus
अगर कारोबार से जुड़ी किसी वजह से, कोई भी क्लस्टर पब्लिश नहीं होता है, तो हमारा सुझाव है कि आप updatePublishStatus एपीआई का इस्तेमाल करके, पब्लिश करने की स्थिति अपडेट करें. ऐसा इसलिए ज़रूरी है, क्योंकि :
- सभी स्थितियों में स्थिति की जानकारी देना ज़रूरी है. भले ही, कॉन्टेंट पब्लिश हो गया हो (STATUS == PUBLISHED). ऐसा उन डैशबोर्ड को पॉप्युलेट करने के लिए ज़रूरी है जो आपके इंटिग्रेशन की परफ़ॉर्मेंस और अन्य मेट्रिक बताने के लिए, इस साफ़ तौर पर बताई गई स्थिति का इस्तेमाल करते हैं.
- अगर कोई कॉन्टेंट पब्लिश नहीं किया गया है, लेकिन इंटिग्रेशन का स्टेटस ठीक है (STATUS == NOT_PUBLISHED), तो Google, ऐप्लिकेशन की परफ़ॉर्मेंस के डैशबोर्ड में सूचनाएं ट्रिगर करने से बच सकता है. इससे यह पुष्टि होती है कि कॉन्टेंट, कॉन्टेंट उपलब्ध कराने वाली कंपनी के हिसाब से, उम्मीद के मुताबिक स्थिति की वजह से पब्लिश नहीं किया गया है.
- इससे डेवलपर को यह जानकारी देने में मदद मिलती है कि डेटा कब पब्लिश किया गया है और कब नहीं.
- Google, स्टेटस कोड का इस्तेमाल करके उपयोगकर्ता को ऐप्लिकेशन में कुछ कार्रवाइयां करने के लिए कह सकता है, ताकि वह ऐप्लिकेशन का कॉन्टेंट देख सके या उससे जुड़ी समस्या को हल कर सके.
पब्लिश करने की स्थिति के कोड की सूची यहां दी गई है :
// Content is published
AppEngagePublishStatusCode.PUBLISHED,
// Content is not published as user is not signed in
AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN,
// Content is not published as user is not subscribed
AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SUBSCRIPTION,
// Content is not published as user location is ineligible
AppEngagePublishStatusCode.NOT_PUBLISHED_INELIGIBLE_LOCATION,
// Content is not published as there is no eligible content
AppEngagePublishStatusCode.NOT_PUBLISHED_NO_ELIGIBLE_CONTENT,
// Content is not published as the feature is disabled by the client
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_FEATURE_DISABLED_BY_CLIENT,
// Content is not published as the feature due to a client error
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_CLIENT_ERROR,
// Content is not published as the feature due to a service error
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_SERVICE_ERROR,
// Content is not published due to some other reason
// Reach out to engage-developers@ before using this enum.
AppEngagePublishStatusCode.NOT_PUBLISHED_OTHER
अगर उपयोगकर्ता के लॉग इन न करने की वजह से कॉन्टेंट पब्लिश नहीं होता है, तो Google, साइन इन कार्ड पब्लिश करने का सुझाव देगा. अगर किसी वजह से, सेवा देने वाली कंपनियां साइन इन कार्ड पब्लिश नहीं कर पा रही हैं, तो हमारा सुझाव है कि वे updatePublishStatus एपीआई को कॉल करें. साथ ही, स्टेटस कोड के तौर पर NOT_PUBLISHED_REQUIRES_SIGN_IN का इस्तेमाल करें
Kotlin
client.updatePublishStatus( PublishStatusRequest.Builder() .setStatusCode(AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN) .build())
Java
client.updatePublishStatus( new PublishStatusRequest.Builder() .setStatusCode(AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN) .build());
deleteRecommendationClusters
इस एपीआई का इस्तेमाल, सुझाव वाले क्लस्टर के कॉन्टेंट को मिटाने के लिए किया जाता है.
Kotlin
client.deleteRecommendationClusters()
Java
client.deleteRecommendationClusters();
अनुरोध मिलने पर, यह सेवा सुझाव क्लस्टर से मौजूदा डेटा हटा देती है. गड़बड़ी होने पर, पूरा अनुरोध अस्वीकार कर दिया जाता है और मौजूदा स्थिति में कोई बदलाव नहीं किया जाता.
deleteFeaturedCluster
इस एपीआई का इस्तेमाल, हाइलाइट किए गए क्लस्टर का कॉन्टेंट मिटाने के लिए किया जाता है.
Kotlin
client.deleteFeaturedCluster()
Java
client.deleteFeaturedCluster();
अनुरोध मिलने पर, यह सेवा 'चुनिंदा क्लस्टर' से मौजूदा डेटा हटा देती है. गड़बड़ी होने पर, पूरा अनुरोध अस्वीकार कर दिया जाता है और मौजूदा स्थिति में कोई बदलाव नहीं किया जाता.
deleteContinuationCluster
इस एपीआई का इस्तेमाल, कंटिन्यूएशन क्लस्टर का कॉन्टेंट मिटाने के लिए किया जाता है.
Kotlin
client.deleteContinuationCluster()
Java
client.deleteContinuationCluster();
सेवा को अनुरोध मिलने पर, वह 'जारी रखने वाले क्लस्टर' से मौजूदा डेटा हटा देती है. गड़बड़ी होने पर, पूरा अनुरोध अस्वीकार कर दिया जाता है और मौजूदा स्थिति में कोई बदलाव नहीं किया जाता.
deleteUserManagementCluster
इस एपीआई का इस्तेमाल, UserAccountManagement क्लस्टर का कॉन्टेंट मिटाने के लिए किया जाता है.
Kotlin
client.deleteUserManagementCluster()
Java
client.deleteUserManagementCluster();
जब सेवा को अनुरोध मिलता है, तो वह UserAccountManagement क्लस्टर से मौजूदा डेटा को हटा देती है. गड़बड़ी होने पर, पूरा अनुरोध अस्वीकार कर दिया जाता है और मौजूदा स्थिति में कोई बदलाव नहीं किया जाता.
deleteClusters
इस एपीआई का इस्तेमाल, किसी क्लस्टर टाइप का कॉन्टेंट मिटाने के लिए किया जाता है.
Kotlin
client.deleteClusters( DeleteClustersRequest.Builder() .addClusterType(ClusterType.TYPE_FEATURED) .addClusterType(ClusterType.TYPE_RECOMMENDATION) ... .build())
Java
client.deleteClusters( new DeleteClustersRequest.Builder() .addClusterType(ClusterType.TYPE_FEATURED) .addClusterType(ClusterType.TYPE_RECOMMENDATION) ... .build());
जब सेवा को अनुरोध मिलता है, तो वह तय किए गए क्लस्टर टाइप से मैच करने वाले सभी क्लस्टर से मौजूदा डेटा हटा देती है. क्लाइंट एक या कई तरह के क्लस्टर पास कर सकते हैं. गड़बड़ी होने पर, पूरा अनुरोध अस्वीकार कर दिया जाता है और मौजूदा स्थिति में कोई बदलाव नहीं किया जाता.
गड़बड़ी ठीक करना
हमारा सुझाव है कि पब्लिश करने वाले एपीआई से टास्क के नतीजे को सुनें, ताकि किसी टास्क को फिर से सबमिट करने और उसे वापस पाने के लिए, फ़ॉलो-अप कार्रवाई की जा सके.
client.publishRecommendationClusters(
new PublishRecommendationClustersRequest.Builder()
.addRecommendationCluster(...)
.build())
.addOnCompleteListener(
task -> {
if (task.isSuccessful()) {
// do something
} else {
Exception exception = task.getException();
if (exception instanceof AppEngageException) {
@AppEngageErrorCode
int errorCode = ((AppEngageException) exception).getErrorCode();
if (errorCode == AppEngageErrorCode.SERVICE_NOT_FOUND) {
// do something
}
}
}
});
गड़बड़ी को AppEngageException
के तौर पर दिखाया जाता है. साथ ही, गड़बड़ी की वजह को गड़बड़ी कोड के तौर पर शामिल किया जाता है.
गड़बड़ी कोड | गड़बड़ी का नाम | ध्यान दें |
---|---|---|
1 |
SERVICE_NOT_FOUND |
यह सेवा दिए गए डिवाइस पर उपलब्ध नहीं है. |
2 |
SERVICE_NOT_AVAILABLE |
यह सेवा दिए गए डिवाइस पर उपलब्ध है, लेकिन कॉल के समय उपलब्ध नहीं है. उदाहरण के लिए, इसे साफ़ तौर पर बंद किया गया है. |
3 |
SERVICE_CALL_EXECUTION_FAILURE |
थ्रेड करने से जुड़ी समस्याओं की वजह से, टास्क पूरा नहीं हो सका. इस मामले में, फिर से कोशिश की जा सकती है. |
4 |
SERVICE_CALL_PERMISSION_DENIED |
कॉलर के पास सेवा कॉल करने की अनुमति नहीं है. |
5 |
SERVICE_CALL_INVALID_ARGUMENT |
अनुरोध में अमान्य डेटा है. उदाहरण के लिए, क्लस्टर की अनुमति से ज़्यादा संख्या. |
6 |
SERVICE_CALL_INTERNAL |
सेवा की साइड पर कोई गड़बड़ी हुई है. |
7 |
SERVICE_CALL_RESOURCE_EXHAUSTED |
सेवा कॉल बहुत बार किया जाता है. |
तीसरा चरण: ब्रॉडकास्ट इंटेंट मैनेज करना
किसी जॉब के ज़रिए कॉन्टेंट पब्लिश करने के लिए Content API कॉल करने के अलावा, कॉन्टेंट पब्लिश करने का अनुरोध पाने के लिए, BroadcastReceiver
सेट अप करना भी ज़रूरी है.
ब्रॉडकास्ट इंटेंट का मकसद, मुख्य रूप से ऐप्लिकेशन को फिर से चालू करना और डेटा को सिंक करना है. ब्रॉडकास्ट इंटेंट को बार-बार भेजने के लिए डिज़ाइन नहीं किया गया है. यह सिर्फ़ तब ट्रिगर होता है, जब Engage सेवा यह तय करती है कि कॉन्टेंट पुराना हो सकता है. उदाहरण के लिए, एक हफ़्ते पुराना. इससे यह भरोसा बढ़ता है कि उपयोगकर्ता को नया कॉन्टेंट देखने का अनुभव मिल सकता है. भले ही, ऐप्लिकेशन को लंबे समय से इस्तेमाल न किया गया हो.
BroadcastReceiver
को इन दो तरीकों से सेट अप करना होगा:
Context.registerReceiver()
का इस्तेमाल करके,BroadcastReceiver
क्लास का इंस्टेंस डाइनैमिक तौर पर रजिस्टर करें. इससे, उन ऐप्लिकेशन से कम्यूनिकेशन की सुविधा चालू हो जाती है जो अब भी मेमोरी में मौजूद हैं.
class AppEngageBroadcastReceiver extends BroadcastReceiver {
// Trigger recommendation cluster publish when PUBLISH_RECOMMENDATION broadcast
// is received
// Trigger featured cluster publish when PUBLISH_FEATURED broadcast is received
// Trigger continuation cluster publish when PUBLISH_CONTINUATION broadcast is
// received
}
public static void registerBroadcastReceivers(Context context) {
context = context.getApplicationContext();
// Register Recommendation Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_RECOMMENDATION));
// Register Featured Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_FEATURED));
// Register Continuation Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_CONTINUATION));
}
- अपनी
AndroidManifest.xml
फ़ाइल में,<receiver>
टैग के साथ लागू करने का एलान करें. इससे ऐप्लिकेशन को ब्रॉडकास्ट के लिए भेजे गए इंटेंट तब भी मिल सकते हैं, जब वह ऐप्लिकेशन बंद हो. साथ ही, ऐप्लिकेशन को कॉन्टेंट पब्लिश करने की अनुमति भी मिलती है.
<application>
<receiver
android:name=".AppEngageBroadcastReceiver"
android:exported="true"
android:enabled="true">
<intent-filter>
<action android:name="com.google.android.engage.action.PUBLISH_RECOMMENDATION" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.engage.action.PUBLISH_FEATURED" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.engage.action.PUBLISH_CONTINUATION" />
</intent-filter>
</receiver>
</application>
सेवा से ये इंटेंट भेजे जाएंगे:
com.google.android.engage.action.PUBLISH_RECOMMENDATION
इस इंटेंट को मिलने पर,publishRecommendationClusters
कॉल शुरू करने का सुझाव दिया जाता है.com.google.android.engage.action.PUBLISH_FEATURED
इस इंटेंट को मिलने पर,publishFeaturedCluster
कॉल शुरू करने का सुझाव दिया जाता है.com.google.android.engage.action.PUBLISH_CONTINUATION
इस इंटेंट को मिलने पर,publishContinuationCluster
कॉल शुरू करने का सुझाव दिया जाता है.
इंटिग्रेशन वर्कफ़्लो
इंटिग्रेशन पूरा होने के बाद, उसकी पुष्टि करने के बारे में सिलसिलेवार निर्देश पाने के लिए, डेवलपर इंटिग्रेशन वर्कफ़्लो से जुड़ी जानकारी देखें.
अक्सर पूछे जाने वाले सवाल
अक्सर पूछे जाने वाले सवालों के लिए, Engage SDK के बारे में अक्सर पूछे जाने वाले सवाल देखें.
संपर्क
अगर इंटिग्रेशन की प्रोसेस के दौरान आपका कोई सवाल है, तो engage-developers@google.com पर संपर्क करें. हमारी टीम जल्द से जल्द जवाब देगी.
अगले चरण
इस इंटिग्रेशन को पूरा करने के बाद, आपको ये चरण पूरे करने होंगे:
- engage-developers@google.com पर ईमेल भेजें और Google से टेस्ट कराने के लिए, इंटिग्रेट किया गया अपना APK अटैच करें.
- Google, पुष्टि करने और इंटरनल समीक्षा करने के लिए, यह पक्का करेगा कि इंटिग्रेशन उम्मीद के मुताबिक काम कर रहा है. अगर बदलावों की ज़रूरत होगी, तो Google आपसे संपर्क करेगा और ज़रूरी जानकारी देगा.
- जांच पूरी होने और कोई बदलाव न किए जाने पर, Google आपसे संपर्क करेगा और आपको बताएगा कि अपडेट किए गए और इंटिग्रेट किए गए APK को Google Play पर पब्लिश किया जा सकता है.
- Google के यह पुष्टि करने के बाद कि आपका अपडेट किया गया APK, Play Store पर पब्लिश हो गया है, आपके सुझाव, चुनिंदा, और जारी रखें क्लस्टर पब्लिश हो जाएंगे और उपयोगकर्ताओं को दिखेंगे.