Engage SDK Watch: तीसरे पक्ष के तकनीकी इंटिग्रेशन के निर्देश

Google, उपयोगकर्ता के डिवाइस पर एक ऐसा प्लैटफ़ॉर्म बना रहा है जो वर्टिकल के हिसाब से ऐप्लिकेशन साथ ही, उपयोगकर्ताओं को उनके हिसाब से कॉन्टेंट देखने का बेहतर अनुभव मिलता है. खोजने के लिए इस्तेमाल किया जा सकता है. फ़ुलस्क्रीन वाले इस अनुभव से डेवलपर पार्टनर को अपना सबसे अच्छा रिच कॉन्टेंट दिखाने का मौका उसके ऐप्लिकेशन के बारे में बात करते हैं.

इस गाइड में, डेवलपर पार्टनर के लिए निर्देश दिए गए हैं, ताकि वे अपना वीडियो इंटिग्रेट कर सकें कॉन्टेंट बनाने के लिए, Engage SDK टूल का इस्तेमाल करके, इस नए सरफ़ेस एरिया और मौजूदा Google प्लैटफ़ॉर्म का इस्तेमाल नहीं किया जा सकता.

इंटिग्रेशन की जानकारी

शब्दावली

इस इंटिग्रेशन में ये तीन तरह के क्लस्टर शामिल होते हैं: सुझाव, जारी रखें और चुनिंदा.

  • सुझाव क्लस्टर में, कॉन्टेंट देखने के लिए आपके हिसाब से बनाए गए सुझाव दिखाए जाते हैं को भी ऐक्सेस किया जा सकता है.

    आपके सुझावों के लिए यह तरीका अपनाया जाता है:

    • सुझाव क्लस्टर: ऐसा यूज़र इंटरफ़ेस (यूआई) व्यू जिसमें सुझाव देख सकते हैं.

      पहली इमेज. Entertainment Space के यूज़र इंटरफ़ेस (यूआई) की इमेज एक पार्टनर से मिलने वाला सुझाव क्लस्टर.
    • इकाई: क्लस्टर में किसी एक आइटम को दिखाने वाला ऑब्जेक्ट. कोई इकाई इनमें कोई फ़िल्म, टीवी शो, टीवी सीरीज़, लाइव वीडियो वगैरह शामिल हो सकते हैं. ज़्यादा जानकारी के लिए, इनकी सूची के लिए इकाई का डेटा दें सेक्शन का इस्तेमाल किया जा सकता है.

      दूसरी इमेज. Entertainment Space के यूज़र इंटरफ़ेस (यूआई) की इमेज, जिसमें सिंगल दिखाया गया है किसी एक पार्टनर के सुझाव क्लस्टर में मौजूद इकाई.
  • कंटिन्युएशन क्लस्टर में, पूरे नहीं देखे गए वीडियो और काम के नए वीडियो दिखते हैं एक यूज़र इंटरफ़ेस (यूआई) ग्रुपिंग में कई डेवलपर पार्टनर के एपिसोड रिलीज़ किए गए. हर डेवलपर पार्टनर को कंटिन्यूएशन क्लस्टर. रिसर्च से पता चला है कि आपके हिसाब से काम के सुझाव साथ ही, कॉन्टेंट को लगातार बनाते रहने से, उपयोगकर्ताओं का जुड़ाव बढ़ता है.

    तीसरी इमेज. 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'
}

ज़्यादा जानकारी के लिए, Android में पैकेज की जानकारी दिखने की सेटिंग देखें 11 हैं.

खास जानकारी

यह डिज़ाइन, लागू करने पर आधारित है सेवा.

क्लाइंट के पब्लिश किए जा सकने वाले डेटा पर, नीचे दी गई सीमाएं लागू होती हैं. ये सीमाएं, क्लस्टर के टाइप:

क्लस्टर का टाइप क्लस्टर की सीमाएं क्लस्टर में इकाई की तय सीमाएं
सुझाव क्लस्टर ज़्यादा से ज़्यादा पांच ज़्यादा से ज़्यादा 50
कंटिन्यूएशन क्लस्टर ज़्यादा से ज़्यादा एक ज़्यादा से ज़्यादा 10
चुनिंदा क्लस्टर ज़्यादा से ज़्यादा एक ज़्यादा से ज़्यादा 10

पहला चरण: मौजूदा मीडिया होम SDK टूल के इंटिग्रेशन से डेटा दूसरी जगह भेजना

मौजूदा इंटिग्रेशन से मिले डेटा मॉडल को मैप करना

अगर आपको किसी मौजूदा मीडिया होम इंटिग्रेशन से माइग्रेट करना है, तो: टेबल में, मौजूदा SDK टूल में डेटा मॉडल को नए Engage SDK टूल में मैप करने का तरीका बताया गया है:

MediaHomeVideoCon इलाका इंटिग्रेशन की तरह उपलब्ध है SDK टूल के इंटिग्रेशन से मिलते-जुलते ऐप्लिकेशन
com.google.android.mediahome.video.PreviewChannel com.google.android.engage.common.datamodel.RecommendationCluster
com.google.android.mediahome.video.PreviewChannel.Builder com.google.android.engage.common.datamodel.RecommendationCluster.Builder
com.google.android.mediahome.video.PreviewChannelHelper com.google.android.engage.video.service.AppEngageVideoClient
com.google.android.mediahome.video.PreviewProgram डेटा को अलग-अलग क्लास में बांटा गया है: EventVideo, LiveStreamingVideo, Movie, TvEpisode, TvSeason, TvShow, VideoClipEntity
com.google.android.mediahome.video.PreviewProgram.Builder बिल्डर में अलग-अलग क्लास में बांटा गया है: EventVideo, LiveStreamingVideo, Movie, TvEpisode, TvSeason, TvShow, VideoClipEntity
com.google.android.mediahome.video.VideoContract अब ज़रूरत नहीं है.
com.google.android.mediahome.video.WatchNextProgram एट्रिब्यूट को अलग-अलग क्लास में बांटा जाता है: EventVideoEntity, LiveStreamingVideoEntity, MovieEntity, TvEpisodeEntity, TvSeasonEntity, TvShowEntity, VideoClipEntity
com.google.android.mediahome.video.WatchNextProgram.Builder एट्रिब्यूट को अलग-अलग क्लास में बांटा जाता है: EventVideoEntity, LiveStreamingVideoEntity, MovieEntity, TvEpisodeEntity, TvSeasonEntity, TvShowEntity, VideoClipEntity

मीडिया होम SDK टूल बनाम Engage SDK टूल में क्लस्टर पब्लिश करना

मीडिया होम SDK टूल की मदद से, क्लस्टर और इकाइयों को अलग-अलग एपीआई की मदद से पब्लिश किया गया था:

// 1. Fetch existing channels
List<PreviewChannel> channels = PreviewChannelHelper.getAllChannels();

// 2. If there are no channels, publish new channels
long channelId = PreviewChannelHelper.publishChannel(builder.build());

// 3. If there are existing channels, decide whether to update channel contents
PreviewChannelHelper.updatePreviewChannel(channelId, builder.build());

// 4. Delete all programs in the channel
PreviewChannelHelper.deleteAllPreviewProgramsByChannelId(channelId);

// 5. publish new programs in the channel
PreviewChannelHelper.publishPreviewProgram(builder.build());

Engage SDK टूल की मदद से, क्लस्टर और इकाई पब्लिश करने की सुविधा को एक ही एपीआई में जोड़ दिया गया है कॉल. किसी क्लस्टर से जुड़ी सभी इकाइयां, उसके साथ पब्लिश की जाती हैं क्लस्टर:

Kotlin


RecommendationCluster.Builder()
            .addEntity(MOVIE_ENTITY)
            .addEntity(MOVIE_ENTITY)
            .addEntity(MOVIE_ENTITY)
            .setTitle("Top Picks For You")
            .build()

Java


new RecommendationCluster.Builder()
                        .addEntity(MOVIE_ENTITY)
                        .addEntity(MOVIE_ENTITY)
                        .addEntity(MOVIE_ENTITY)
                        .setTitle("Top Picks For You")
                        .build();

पहला चरण: इकाई का डेटा देना

SDK टूल ने हर तरह के आइटम को दिखाने के लिए अलग-अलग इकाइयां तय की हैं. हम सहायता करते हैं वॉच कैटगरी के लिए ये इकाइयां:

  1. MovieEntity
  2. TvShowEntity
  3. TvSeasonEntity
  4. TvEpisodeEntity
  5. LiveStreamingVideoEntity
  6. VideoClipEntity

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

MovieEntity

एट्रिब्यूट ज़रूरी शर्त नोट
नाम ज़रूरी है
पोस्टर की इमेज ज़रूरी है कम से कम एक इमेज होनी चाहिए. साथ ही, इमेज के किसी खास हिस्से का होना भी ज़रूरी है अनुपात. (लैंडस्केप को प्राथमिकता दी जाती है, लेकिन पोर्ट्रेट और लैंडस्केप, दोनों तरह से पास होना चाहिए हमारा सुझाव है कि अलग-अलग स्थितियों के लिए इमेज का इस्तेमाल करें.)

ज़्यादा जानकारी के लिए, इमेज की खास बातें देखें.

वीडियो चलाने का यूआरआई ज़रूरी है

फ़िल्म चलाना शुरू करने के लिए, प्रोवाइडर ऐप्लिकेशन का डीप लिंक.

ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले यह सवाल देखें

जानकारी वाले पेज का यूआरआई वैकल्पिक

फ़िल्म के बारे में जानकारी दिखाने के लिए, प्रोवाइडर ऐप्लिकेशन का डीप लिंक.

ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले यह सवाल देखें

रिलीज़ की तारीख ज़रूरी है Epoch मिलीसेकंड में.
उपलब्धता ज़रूरी है

उपलब्ध है: उपयोगकर्ता के लिए यह कॉन्टेंट और भी उपलब्ध है कार्रवाई.

FREE_WITH_SUBSCRIPTION: कॉन्टेंट, उपयोगकर्ता के बाद उपलब्ध होता है कोई सदस्यता खरीदता है.

PAY_CONTENT: कॉन्टेंट के लिए उपयोगकर्ता को उसे खरीदना या किराये पर लेना ज़रूरी है.

खरीदा गया: यह कॉन्टेंट, उपयोगकर्ता.

Private Offer की कीमत वैकल्पिक फ़्री टेक्स्ट
कुल अवधि ज़रूरी है मिलीसेकंड में.
शैली ज़रूरी है फ़्री टेक्स्ट
कॉन्टेंट रेटिंग ज़रूरी है मुफ़्त टेक्स्ट, इंडस्ट्री स्टैंडर्ड का पालन करें. (उदाहरण)
'अगला वीडियो देखें' टाइप शर्तों के हिसाब से ज़रूरी है

यह वैल्यू तब सबमिट की जानी चाहिए, जब आइटम कंटिन्यूएशन क्लस्टर में हो और नीचे दिए गए चार प्रकारों में से एक होना चाहिए:

जारी रखें: उपयोगकर्ता ने पहले ही इस वीडियो को एक मिनट से ज़्यादा देख लिया है कॉन्टेंट.

नया: उपयोगकर्ता ने कुछ एपिसोड के सभी उपलब्ध एपिसोड देख लिए हैं कॉन्टेंट बनाया है, लेकिन एक नया एपिसोड उपलब्ध हुआ है और सिर्फ़ एक एपिसोड उपलब्ध है न देखा गया एपिसोड. यह टीवी शो, सीरीज़ वगैरह शामिल हैं.

अगला चरण: उपयोगकर्ता ने कुछ एपिसोड में से एक या उससे ज़्यादा पूरे एपिसोड देखे हैं एपिसोड वाला कॉन्टेंट, लेकिन एक से ज़्यादा एपिसोड वाला कॉन्टेंट बचा हुआ या सिर्फ़ एक एपिसोड बचा है, जिसमें आख़िरी एपिसोड नहीं है "नया" और उसे एपिसोड वाले एपिसोड देखने से पहले रिलीज़ कर दिया गया कॉन्टेंट.

वॉचलिस्ट: उपयोगकर्ता ने साफ़ तौर पर किसी फ़िल्म, इवेंट या सीरीज़ को वॉचलिस्ट में जोड़ें, ताकि लोग मैन्युअल तरीके से यह तय कर सकें कि उन्हें क्या देखना है अगला.

उपयोगकर्ता के पिछले जुड़ाव का समय शर्तों के हिसाब से ज़रूरी है यह वैल्यू तब सबमिट की जानी चाहिए, जब आइटम कंटिन्यूएशन क्लस्टर में हो. epoch में मिलीसेकंड.
पिछली बार वीडियो चलाने की स्थिति का समय शर्तों के हिसाब से ज़रूरी है यह वैल्यू तब सबमिट की जानी चाहिए, जब आइटम कंटिन्यूएशन क्लस्टर में हो और WatchNextType जारी रखें है. Epoch मिलीसेकंड में.

TvShowEntity

एट्रिब्यूट ज़रूरी शर्त नोट
नाम ज़रूरी है
पोस्टर की इमेज ज़रूरी है कम से कम एक इमेज होनी चाहिए. साथ ही, इमेज के किसी खास हिस्से का होना भी ज़रूरी है अनुपात. (लैंडस्केप को प्राथमिकता दी जाती है, लेकिन पोर्ट्रेट और लैंडस्केप, दोनों तरह से पास होना चाहिए हमारा सुझाव है कि अलग-अलग स्थितियों के लिए इमेज का इस्तेमाल करें.)

ज़्यादा जानकारी के लिए, इमेज की खास बातें देखें.

जानकारी वाले पेज का यूआरआई ज़रूरी है

टीवी की जानकारी दिखाने के लिए, सेवा देने वाले ऐप्लिकेशन का डीप लिंक दिखाएं.

ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले यह सवाल देखें

वीडियो चलाने का यूआरआई वैकल्पिक

टीवी शो चलाने के लिए, प्रोवाइडर ऐप्लिकेशन का डीप लिंक.

ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले यह सवाल देखें

पहले एपिसोड के प्रसारण की तारीख ज़रूरी है Epoch मिलीसेकंड में.
सबसे नए एपिसोड के प्रसारण की तारीख वैकल्पिक Epoch मिलीसेकंड में.
उपलब्धता ज़रूरी है

उपलब्ध है: उपयोगकर्ता के लिए यह कॉन्टेंट और भी उपलब्ध है कार्रवाई.

FREE_WITH_SUBSCRIPTION: कॉन्टेंट, उपयोगकर्ता के बाद उपलब्ध होता है कोई सदस्यता खरीदता है.

PAY_CONTENT: कॉन्टेंट के लिए उपयोगकर्ता को उसे खरीदना या किराये पर लेना ज़रूरी है.

खरीदा गया: यह कॉन्टेंट, उपयोगकर्ता.

Private Offer की कीमत वैकल्पिक फ़्री टेक्स्ट
सीज़न की संख्या ज़रूरी है धनात्मक पूर्णांक
शैली ज़रूरी है फ़्री टेक्स्ट
कॉन्टेंट रेटिंग ज़रूरी है मुफ़्त टेक्स्ट, इंडस्ट्री स्टैंडर्ड का पालन करें. (उदाहरण)
'अगला वीडियो देखें' टाइप शर्तों के हिसाब से ज़रूरी है

यह वैल्यू तब सबमिट की जानी चाहिए, जब आइटम कंटिन्यूएशन क्लस्टर में हो और नीचे दिए गए चार प्रकारों में से एक होना चाहिए:

जारी रखें: उपयोगकर्ता ने पहले ही इस वीडियो को एक मिनट से ज़्यादा देख लिया है कॉन्टेंट.

नया: उपयोगकर्ता ने कुछ एपिसोड के सभी उपलब्ध एपिसोड देख लिए हैं कॉन्टेंट बनाया है, लेकिन एक नया एपिसोड उपलब्ध हुआ है और सिर्फ़ एक एपिसोड उपलब्ध है न देखा गया एपिसोड. यह टीवी शो, सीरीज़ वगैरह शामिल हैं.

अगला चरण: उपयोगकर्ता ने कुछ एपिसोड में से एक या उससे ज़्यादा पूरे एपिसोड देखे हैं एपिसोड वाला कॉन्टेंट, लेकिन एक से ज़्यादा एपिसोड वाला कॉन्टेंट बचा हुआ या सिर्फ़ एक एपिसोड बचा है, जिसमें आख़िरी एपिसोड नहीं है "नया" और उसे एपिसोड वाले एपिसोड देखने से पहले रिलीज़ कर दिया गया कॉन्टेंट.

वॉचलिस्ट: उपयोगकर्ता ने साफ़ तौर पर किसी फ़िल्म, इवेंट या सीरीज़ को वॉचलिस्ट में जोड़ें, ताकि लोग मैन्युअल तरीके से यह तय कर सकें कि उन्हें क्या देखना है अगला.

उपयोगकर्ता के पिछले जुड़ाव का समय शर्तों के हिसाब से ज़रूरी है यह वैल्यू तब सबमिट की जानी चाहिए, जब आइटम कंटिन्यूएशन क्लस्टर में हो. epoch में मिलीसेकंड.
पिछली बार वीडियो चलाने की स्थिति का समय शर्तों के हिसाब से ज़रूरी है यह वैल्यू तब सबमिट की जानी चाहिए, जब आइटम कंटिन्यूएशन क्लस्टर में हो और WatchNextType जारी रखें है. Epoch मिलीसेकंड में.

TvSeasonEntity

एट्रिब्यूट ज़रूरी शर्त नोट
नाम ज़रूरी है
पोस्टर की इमेज ज़रूरी है कम से कम एक इमेज होनी चाहिए. साथ ही, इमेज के किसी खास हिस्से का होना भी ज़रूरी है अनुपात. (लैंडस्केप को प्राथमिकता दी जाती है, लेकिन पोर्ट्रेट और लैंडस्केप, दोनों तरह से पास होना चाहिए हमारा सुझाव है कि अलग-अलग स्थितियों के लिए इमेज का इस्तेमाल करें.)

ज़्यादा जानकारी के लिए, इमेज की खास बातें देखें.

जानकारी वाले पेज का यूआरआई ज़रूरी है

टीवी शो की जानकारी दिखाने के लिए, प्रोवाइडर ऐप्लिकेशन का डीप लिंक सीज़न.

ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले यह सवाल देखें

वीडियो चलाने का यूआरआई वैकल्पिक

टीवी शो चलाने के लिए, प्रोवाइडर ऐप्लिकेशन का डीप लिंक सीज़न.

ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले यह सवाल देखें

सीज़न नंबर दिखाएं

ज़रूरी नहीं

वर्शन 1.3.1 में उपलब्ध है

स्ट्रिंग
पहले एपिसोड के प्रसारण की तारीख ज़रूरी है Epoch मिलीसेकंड में.
सबसे नए एपिसोड के प्रसारण की तारीख वैकल्पिक Epoch मिलीसेकंड में.
उपलब्धता ज़रूरी है

उपलब्ध है: उपयोगकर्ता के लिए यह कॉन्टेंट और भी उपलब्ध है कार्रवाई.

FREE_WITH_SUBSCRIPTION: कॉन्टेंट, उपयोगकर्ता के बाद उपलब्ध होता है कोई सदस्यता खरीदता है.

PAY_CONTENT: कॉन्टेंट के लिए उपयोगकर्ता को उसे खरीदना या किराये पर लेना ज़रूरी है.

खरीदा गया: यह कॉन्टेंट, उपयोगकर्ता.

Private Offer की कीमत वैकल्पिक फ़्री टेक्स्ट
एपिसोड की संख्या ज़रूरी है धनात्मक पूर्णांक
शैली ज़रूरी है फ़्री टेक्स्ट
कॉन्टेंट रेटिंग ज़रूरी है मुफ़्त टेक्स्ट, इंडस्ट्री स्टैंडर्ड का पालन करें. (उदाहरण)
'अगला वीडियो देखें' टाइप शर्तों के हिसाब से ज़रूरी है

यह वैल्यू तब सबमिट की जानी चाहिए, जब आइटम कंटिन्यूएशन क्लस्टर में हो और नीचे दिए गए चार प्रकारों में से एक होना चाहिए:

जारी रखें: उपयोगकर्ता ने पहले ही इस वीडियो को एक मिनट से ज़्यादा देख लिया है कॉन्टेंट.

नया: उपयोगकर्ता ने कुछ एपिसोड के सभी उपलब्ध एपिसोड देख लिए हैं कॉन्टेंट बनाया है, लेकिन एक नया एपिसोड उपलब्ध हुआ है और सिर्फ़ एक एपिसोड उपलब्ध है न देखा गया एपिसोड. यह टीवी शो, सीरीज़ वगैरह शामिल हैं.

अगला चरण: उपयोगकर्ता ने कुछ एपिसोड में से एक या उससे ज़्यादा पूरे एपिसोड देखे हैं एपिसोड वाला कॉन्टेंट, लेकिन एक से ज़्यादा एपिसोड वाला कॉन्टेंट बचा हुआ या सिर्फ़ एक एपिसोड बचा है, जिसमें आख़िरी एपिसोड नहीं है "नया" और उसे एपिसोड वाले एपिसोड देखने से पहले रिलीज़ कर दिया गया कॉन्टेंट.

वॉचलिस्ट: उपयोगकर्ता ने साफ़ तौर पर किसी फ़िल्म, इवेंट या सीरीज़ को वॉचलिस्ट में जोड़ें, ताकि लोग मैन्युअल तरीके से यह तय कर सकें कि उन्हें क्या देखना है अगला.

उपयोगकर्ता के पिछले जुड़ाव का समय शर्तों के हिसाब से ज़रूरी है यह वैल्यू तब सबमिट की जानी चाहिए, जब आइटम कंटिन्यूएशन क्लस्टर में हो. epoch में मिलीसेकंड.
पिछली बार वीडियो चलाने की स्थिति का समय शर्तों के हिसाब से ज़रूरी है यह वैल्यू तब सबमिट की जानी चाहिए, जब आइटम कंटिन्यूएशन क्लस्टर में हो और WatchNextType जारी रखें है. Epoch मिलीसेकंड में.

TvEpisodeEntity

एट्रिब्यूट ज़रूरी शर्त नोट
नाम ज़रूरी है
पोस्टर की इमेज ज़रूरी है कम से कम एक इमेज होनी चाहिए. साथ ही, इमेज के किसी खास हिस्से का होना भी ज़रूरी है अनुपात. (लैंडस्केप को प्राथमिकता दी जाती है, लेकिन पोर्ट्रेट और लैंडस्केप, दोनों तरह से पास होना चाहिए हमारा सुझाव है कि अलग-अलग स्थितियों के लिए इमेज का इस्तेमाल करें.)

ज़्यादा जानकारी के लिए, इमेज की खास बातें देखें.

वीडियो चलाने का यूआरआई ज़रूरी है

एपिसोड चलाना शुरू करने के लिए, प्रोवाइडर ऐप्लिकेशन का डीप लिंक.

ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले यह सवाल देखें

जानकारी वाले पेज का यूआरआई वैकल्पिक

टीवी शो के बारे में जानकारी दिखाने के लिए, सेवा देने वाले ऐप्लिकेशन का डीप लिंक एपिसोड.

ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले यह सवाल देखें

एपिसोड नंबर दिखाएं

ज़रूरी नहीं

वर्शन 1.3.1 में उपलब्ध है

स्ट्रिंग
प्रसारण का तारीख ज़रूरी है Epoch मिलीसेकंड में.
उपलब्धता ज़रूरी है

उपलब्ध है: उपयोगकर्ता के लिए यह कॉन्टेंट और भी उपलब्ध है कार्रवाई.

FREE_WITH_SUBSCRIPTION: कॉन्टेंट, उपयोगकर्ता के बाद उपलब्ध होता है कोई सदस्यता खरीदता है.

PAY_CONTENT: कॉन्टेंट के लिए उपयोगकर्ता को उसे खरीदना या किराये पर लेना ज़रूरी है.

खरीदा गया: यह कॉन्टेंट, उपयोगकर्ता.

Private Offer की कीमत वैकल्पिक फ़्री टेक्स्ट
कुल अवधि ज़रूरी है मिलीसेकंड में एक धनात्मक मान होना चाहिए.
शैली ज़रूरी है फ़्री टेक्स्ट
कॉन्टेंट रेटिंग ज़रूरी है मुफ़्त टेक्स्ट, इंडस्ट्री स्टैंडर्ड का पालन करें. (उदाहरण)
'अगला वीडियो देखें' टाइप शर्तों के हिसाब से ज़रूरी है

यह वैल्यू तब सबमिट की जानी चाहिए, जब आइटम कंटिन्यूएशन क्लस्टर में हो और नीचे दिए गए चार प्रकारों में से एक होना चाहिए:

जारी रखें: उपयोगकर्ता ने पहले ही इस वीडियो को एक मिनट से ज़्यादा देख लिया है कॉन्टेंट.

नया: उपयोगकर्ता ने कुछ एपिसोड के सभी उपलब्ध एपिसोड देख लिए हैं कॉन्टेंट बनाया है, लेकिन एक नया एपिसोड उपलब्ध हुआ है और सिर्फ़ एक एपिसोड उपलब्ध है न देखा गया एपिसोड. यह टीवी शो, सीरीज़ वगैरह शामिल हैं.

अगला चरण: उपयोगकर्ता ने कुछ एपिसोड में से एक या उससे ज़्यादा पूरे एपिसोड देखे हैं एपिसोड वाला कॉन्टेंट, लेकिन एक से ज़्यादा एपिसोड वाला कॉन्टेंट बचा हुआ या सिर्फ़ एक एपिसोड बचा है, जिसमें आख़िरी एपिसोड नहीं है "नया" और उसे एपिसोड वाले एपिसोड देखने से पहले रिलीज़ कर दिया गया कॉन्टेंट.

वॉचलिस्ट: उपयोगकर्ता ने साफ़ तौर पर किसी फ़िल्म, इवेंट या सीरीज़ को वॉचलिस्ट में जोड़ें, ताकि लोग मैन्युअल तरीके से यह तय कर सकें कि उन्हें क्या देखना है अगला.

उपयोगकर्ता के पिछले जुड़ाव का समय शर्तों के हिसाब से ज़रूरी है यह वैल्यू तब सबमिट की जानी चाहिए, जब आइटम कंटिन्यूएशन क्लस्टर में हो. epoch में मिलीसेकंड.
पिछली बार वीडियो चलाने की स्थिति का समय शर्तों के हिसाब से ज़रूरी है यह वैल्यू तब सबमिट की जानी चाहिए, जब आइटम कंटिन्यूएशन क्लस्टर में हो और WatchNextType जारी रखें है. Epoch मिलीसेकंड में.

LiveStreamingVideoEntity

एट्रिब्यूट ज़रूरी शर्त नोट
नाम ज़रूरी है
पोस्टर की इमेज ज़रूरी है कम से कम एक इमेज होनी चाहिए. साथ ही, इमेज के किसी खास हिस्से का होना भी ज़रूरी है अनुपात. (लैंडस्केप को प्राथमिकता दी जाती है, लेकिन पोर्ट्रेट और लैंडस्केप, दोनों तरह से पास होना चाहिए हमारा सुझाव है कि अलग-अलग स्थितियों के लिए इमेज का इस्तेमाल करें.)

ज़्यादा जानकारी के लिए, इमेज की खास बातें देखें.

वीडियो चलाने का यूआरआई ज़रूरी है

वीडियो चलाने के लिए, प्रोवाइडर ऐप्लिकेशन का डीप लिंक.

ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले यह सवाल देखें

प्रसारणकर्ता ज़रूरी है फ़्री टेक्स्ट
शुरू होने का समय वैकल्पिक Epoch मिलीसेकंड में.
खत्म होने का समय वैकल्पिक Epoch मिलीसेकंड में.
व्यू की संख्या वैकल्पिक मुफ़्त टेक्स्ट, स्थानीय भाषा में होना चाहिए.
'अगला वीडियो देखें' टाइप शर्तों के हिसाब से ज़रूरी है

यह वैल्यू तब सबमिट की जानी चाहिए, जब आइटम कंटिन्यूएशन क्लस्टर में हो और नीचे दिए गए चार प्रकारों में से एक होना चाहिए:

जारी रखें: उपयोगकर्ता ने पहले ही इस वीडियो को एक मिनट से ज़्यादा देख लिया है कॉन्टेंट.

नया: उपयोगकर्ता ने कुछ एपिसोड के सभी उपलब्ध एपिसोड देख लिए हैं कॉन्टेंट बनाया है, लेकिन एक नया एपिसोड उपलब्ध हुआ है और सिर्फ़ एक एपिसोड उपलब्ध है न देखा गया एपिसोड. यह टीवी शो, सीरीज़ वगैरह शामिल हैं.

अगला चरण: उपयोगकर्ता ने कुछ एपिसोड में से एक या उससे ज़्यादा पूरे एपिसोड देखे हैं एपिसोड वाला कॉन्टेंट, लेकिन एक से ज़्यादा एपिसोड वाला कॉन्टेंट बचा हुआ या सिर्फ़ एक एपिसोड बचा है, जिसमें आख़िरी एपिसोड नहीं है "नया" और उसे एपिसोड वाले एपिसोड देखने से पहले रिलीज़ कर दिया गया कॉन्टेंट.

वॉचलिस्ट: उपयोगकर्ता ने साफ़ तौर पर किसी फ़िल्म, इवेंट या सीरीज़ को वॉचलिस्ट में जोड़ें, ताकि लोग मैन्युअल तरीके से यह तय कर सकें कि उन्हें क्या देखना है अगला.

उपयोगकर्ता के पिछले जुड़ाव का समय शर्तों के हिसाब से ज़रूरी है यह वैल्यू तब सबमिट की जानी चाहिए, जब आइटम कंटिन्यूएशन क्लस्टर में हो. epoch में मिलीसेकंड.
पिछली बार वीडियो चलाने की स्थिति का समय शर्तों के हिसाब से ज़रूरी है यह वैल्यू तब सबमिट की जानी चाहिए, जब आइटम कंटिन्यूएशन क्लस्टर में हो और WatchNextType जारी रखें है. Epoch मिलीसेकंड में.

VideoClipEntity

VideoClipEntity ऑब्जेक्ट, सोशल मीडिया से आने वाली वीडियो इकाई को दिखाता है, जैसे, TikTok या YouTube.

एट्रिब्यूट ज़रूरी शर्त नोट
नाम ज़रूरी है
पोस्टर की इमेज ज़रूरी है कम से कम एक इमेज होनी चाहिए. साथ ही, इमेज के किसी खास हिस्से का होना भी ज़रूरी है अनुपात. (लैंडस्केप को प्राथमिकता दी जाती है, लेकिन पोर्ट्रेट और लैंडस्केप, दोनों तरह से पास होना चाहिए हमारा सुझाव है कि अलग-अलग स्थितियों के लिए इमेज का इस्तेमाल करें.)

ज़्यादा जानकारी के लिए, इमेज की खास बातें देखें.

वीडियो चलाने का यूआरआई ज़रूरी है

वीडियो चलाने के लिए, प्रोवाइडर ऐप्लिकेशन का डीप लिंक.

ध्यान दें: एट्रिब्यूशन के लिए डीप लिंक का इस्तेमाल किया जा सकता है. अक्सर पूछे जाने वाले यह सवाल देखें

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

यह वैल्यू तब सबमिट की जानी चाहिए, जब आइटम कंटिन्यूएशन क्लस्टर में हो और नीचे दिए गए चार प्रकारों में से एक होना चाहिए:

जारी रखें: उपयोगकर्ता ने पहले ही इस वीडियो को एक मिनट से ज़्यादा देख लिया है कॉन्टेंट.

नया: उपयोगकर्ता ने कुछ एपिसोड के सभी उपलब्ध एपिसोड देख लिए हैं कॉन्टेंट बनाया है, लेकिन एक नया एपिसोड उपलब्ध हुआ है और सिर्फ़ एक एपिसोड उपलब्ध है न देखा गया एपिसोड. यह टीवी शो, सीरीज़ वगैरह शामिल हैं.

अगला चरण: उपयोगकर्ता ने कुछ एपिसोड में से एक या उससे ज़्यादा पूरे एपिसोड देखे हैं एपिसोड वाला कॉन्टेंट, लेकिन एक से ज़्यादा एपिसोड वाला कॉन्टेंट बचा हुआ या सिर्फ़ एक एपिसोड बचा है, जिसमें आख़िरी एपिसोड नहीं है "नया" और उसे एपिसोड वाले एपिसोड देखने से पहले रिलीज़ कर दिया गया कॉन्टेंट.

वॉचलिस्ट: उपयोगकर्ता ने साफ़ तौर पर किसी फ़िल्म, इवेंट या सीरीज़ को वॉचलिस्ट में जोड़ें, ताकि लोग मैन्युअल तरीके से यह तय कर सकें कि उन्हें क्या देखना है अगला.

उपयोगकर्ता के पिछले जुड़ाव का समय शर्तों के हिसाब से ज़रूरी है यह वैल्यू तब सबमिट की जानी चाहिए, जब आइटम कंटिन्यूएशन क्लस्टर में हो. epoch में मिलीसेकंड.
पिछली बार वीडियो चलाने की स्थिति का समय शर्तों के हिसाब से ज़रूरी है यह वैल्यू तब सबमिट की जानी चाहिए, जब आइटम कंटिन्यूएशन क्लस्टर में हो और WatchNextType जारी रखें है. Epoch मिलीसेकंड में.

इमेज की जानकारी

नीचे दिए गए सेक्शन में, इमेज ऐसेट के लिए ज़रूरी जानकारी दी गई है:

फ़ाइल फ़ॉर्मैट

PNG, JPG, स्टैटिक GIF, WebP

फ़ाइल का ज़्यादा से ज़्यादा साइज़

5120 केबी

अन्य सुझाव

  • इमेज के लिए सुरक्षित जगह: अपने मुख्य कॉन्टेंट को इमेज के बीच वाले 80% हिस्से में रखें इमेज.

उदाहरण

Kotlin

var movie = MovieEntity.Builder()
    .setName("Avengers")
    .addPosterImage(Image.Builder()
                          .setImageUri(Uri.parse("http://www.x.com/image.png"))
                          .setImageHeightInPixel(960)
                          .setImageWidthInPixel(408)
                          .build())
    .setPlayBackUri(Uri.parse("http://tv.com/playback/1"))
    .setReleaseDateEpochMillis(1633032895L)
    .setAvailability(ContentAvailability.AVAILABILITY_AVAILABLE)
    .setDurationMillis(12345678L)
    .addGenre("action")
    .addContentRating("R")
    .setWatchNextType(WatchNextType.TYPE_NEW)
    .setLastEngagementTimeMillis(1664568895L)
    .build()

Java

MovieEntity movie = new MovieEntity.Builder()
                  .setName("Avengers")
                  .addPosterImage(
                      new Image.Builder()
                          .setImageUri(Uri.parse("http://www.x.com/image.png"))
                          .setImageHeightInPixel(960)
                          .setImageWidthInPixel(408)
                          .build())
                  .setPlayBackUri(Uri.parse("http://tv.com/playback/1"))
                  .setReleaseDateEpochMillis(1633032895L)
                  .setAvailability(ContentAvailability.AVAILABILITY_AVAILABLE)
                  .setDurationMillis(12345678L)
                  .addGenre("action")
                  .addContentRating("R")
                  .setWatchNextType(WatchNextType.TYPE_NEW)
                  .setLastEngagementTimeMillis(1664568895L)
                  .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("Top Picks For You")
            .build()
        )
        .build()
    )

Java


client.publishRecommendationClusters(
            new PublishRecommendationClustersRequest.Builder()
                .addRecommendationCluster(
                    new RecommendationCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .setTitle("Top Picks For You")
                        .build())
                .build());

जब सेवा को अनुरोध मिलता है, तो नीचे दी गई कार्रवाइयां होती हैं एक लेन-देन:

  • डेवलपर पार्टनर से मिला, RecommendationCluster का मौजूदा डेटा हटा दिया जाता है.
  • अनुरोध के डेटा को पार्स किया जाता है और अपडेट किए गए सुझाव में सेव किया जाता है क्लस्टर.

कोई गड़बड़ी होने पर, पूरा अनुरोध अस्वीकार कर दिया जाता है और मौजूदा स्थिति रखरखाव किया जा रहा है.

publishFeaturedCluster

इस एपीआई का इस्तेमाल, FeaturedCluster ऑब्जेक्ट की सूची को पब्लिश करने के लिए किया जाता है.

Kotlin


client.publishFeaturedCluster(
    PublishFeaturedClusterRequest.Builder()
      .setFeaturedCluster(
        FeaturedCluster.Builder()
          .addEntity(entity1)
          .addEntity(entity2)
          .build())
      .build())

Java


client.publishFeaturedCluster(
            new PublishFeaturedClustersRequest.Builder()
                .addFeaturedCluster(
                    new FeaturedCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .build())
                .build());

जब सेवा को अनुरोध मिलता है, तो नीचे दी गई कार्रवाइयां होती हैं एक लेन-देन:

  • डेवलपर पार्टनर से मिला, FeaturedCluster का मौजूदा डेटा हटा दिया जाता है.
  • अनुरोध के डेटा को पार्स किया जाता है और अपडेट किए गए चुनिंदा क्लस्टर में स्टोर किया जाता है.

कोई गड़बड़ी होने पर, पूरा अनुरोध अस्वीकार कर दिया जाता है और मौजूदा स्थिति रखरखाव किया जा रहा है.

publishContinuationCluster

इस एपीआई का इस्तेमाल, ContinuationCluster ऑब्जेक्ट को पब्लिश करने के लिए किया जाता है.

Kotlin


client.publishContinuationCluster(
    PublishContinuationClusterRequest.Builder()
      .setContinuationCluster(
        ContinuationCluster.Builder()
          .addEntity(entity1)
          .addEntity(entity2)
          .build())
      .build())

Java


client.publishContinuationCluster(
            new PublishContinuationClusterRequest.Builder()
                .setContinuationCluster(
                    new ContinuationCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .build())
                .build());

जब सेवा को अनुरोध मिलता है, तो नीचे दी गई कार्रवाइयां होती हैं एक लेन-देन:

  • डेवलपर पार्टनर से मिला, ContinuationCluster का मौजूदा डेटा हटा दिया जाता है.
  • अनुरोध के डेटा को पार्स किया जाता है और अपडेट किए गए कंटिन्युएशन में स्टोर किया जाता है क्लस्टर.

कोई गड़बड़ी होने पर, पूरा अनुरोध अस्वीकार कर दिया जाता है और मौजूदा स्थिति रखरखाव किया जा रहा है.

publishUserAccountManagementRequest

इस एपीआई का इस्तेमाल साइन इन कार्ड को पब्लिश करने के लिए किया जाता है . साइन इन करने की कार्रवाई उपयोगकर्ता को यहां ले जाएगी: ऐप्लिकेशन के साइन इन पेज पर, ताकि ऐप्लिकेशन कॉन्टेंट पब्लिश कर सके (या ज़्यादा जानकारी उपलब्ध करा सके) आपके हिसाब से बनाया गया कॉन्टेंट)

नीचे दिया गया मेटाडेटा, साइन इन कार्ड का हिस्सा है -

एट्रिब्यूट ज़रूरी शर्त ब्यौरा
ऐक्शन Uri ज़रूरी है कार्रवाई के लिए डीपलिंक (यानी कि ऐप्लिकेशन के साइन-इन पेज पर ले जाता है)
इमेज वैकल्पिक - अगर टाइटल नहीं दिया गया है, तो टाइटल देना ज़रूरी है

कार्ड पर दिखाई गई चित्र

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

अगर कारोबार की किसी अंदरूनी वजह से, कोई भी क्लस्टर पब्लिश नहीं किया गया है, हमारा सुझाव है कि आप updateपब्लिशStatus एपीआई. ऐसा इसलिए ज़रूरी है, क्योंकि :

  • कॉन्टेंट पब्लिश होने के बाद भी, हर स्थिति में स्टेटस देना (STATUS == पब्लिश किया गया), इसका इस्तेमाल करने वाले डैशबोर्ड को भरने के लिए ज़रूरी है स्टेटस के बारे में भी बताएं.
  • अगर कोई कॉन्टेंट पब्लिश नहीं हुआ है, लेकिन इंटिग्रेशन की स्थिति सही से काम नहीं करती है (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, साइन इन कार्ड को पब्लिश करने का सुझाव देगा. अगर किसी वजह से सेवा देने वाली कंपनियां, साइन इन कार्ड पब्लिश नहीं कर पा रही हैं इसके बाद, हमारा सुझाव है कि updatePublicStatus एपीआई पर कॉल किया जाए स्थिति कोड 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 Cluster का कॉन्टेंट मिटाने के लिए किया जाता है.

Kotlin


client.deleteUserManagementCluster()

Java


client.deleteUserManagementCluster();

जब सेवा को अनुरोध मिलता है, तो वह UserAccountManagement क्लस्टर. किसी गड़बड़ी की स्थिति में, पूरे अनुरोध को अस्वीकार कर दिया गया है और मौजूदा स्थिति में बदलाव नहीं किया गया है.

deleteClusters

इस एपीआई का इस्तेमाल किसी खास तरह के क्लस्टर का कॉन्टेंट मिटाने के लिए किया जाता है.

Kotlin


client.deleteClusters(
    DeleteClustersRequest.Builder()
      .addClusterType(ClusterType.TYPE_CONTINUATION)
      .addClusterType(ClusterType.TYPE_FEATURED)
      .addClusterType(ClusterType.TYPE_RECOMMENDATION)
      .build())

Java


client.deleteClusters(
            new DeleteClustersRequest.Builder()
                .addClusterType(ClusterType.TYPE_CONTINUATION)
                .addClusterType(ClusterType.TYPE_FEATURED)
                .addClusterType(ClusterType.TYPE_RECOMMENDATION)
                .build());

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

गड़बड़ी ठीक करना

हमारा सुझाव है कि आप Publishing API की मदद से बनाए गए टास्क के नतीजे को सुनें कि किसी सफल टास्क को वापस पाने और उसे फिर से सबमिट करने के लिए, फ़ॉलो-अप कार्रवाई की जा सकती है.

Kotlin


client.publishRecommendationClusters(
        PublishRecommendationClustersRequest.Builder()
          .addRecommendationCluster(..)
          .build())
      .addOnCompleteListener { task ->
        if (task.isSuccessful) {
          // do something
        } else {
          val exception = task.exception
          if (exception is AppEngageException) {
            @AppEngageErrorCode val errorCode = exception.errorCode
            if (errorCode == AppEngageErrorCode.SERVICE_NOT_FOUND) {
              // do something
            }
          }
        }
      }

Java


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 के तौर पर दिखाया जाता है. इसके लिए, वजह भी बताई जाती है गड़बड़ी कोड.

गड़बड़ी कोड नोट
SERVICE_NOT_FOUND दिए गए डिवाइस पर सेवा उपलब्ध नहीं है.
SERVICE_NOT_AVAILABLE दिए गए डिवाइस पर सेवा उपलब्ध है, लेकिन यह उपलब्ध नहीं है कॉल करते समय (उदाहरण के लिए, उन्हें साफ़ तौर पर बंद किया गया हो).
SERVICE_CALL_EXECUTION_FAILURE थ्रेडिंग से जुड़ी समस्याओं की वजह से, टास्क नहीं चलाया जा सका. इस स्थिति में, यह दोबारा कोशिश की जाएगी.
SERVICE_CALL_PERMISSION_DENIED कॉलर को सेवा कॉल करने की अनुमति नहीं है.
SERVICE_CALL_INVALID_ARGUMENT अनुरोध में अमान्य डेटा मौजूद है (उदाहरण के लिए, तय सीमा से ज़्यादा क्लस्टर की संख्या).
SERVICE_CALL_INTERNAL सेवा की ओर कोई गड़बड़ी है.
SERVICE_CALL_RESOURCE_EXHAUSTED सेवा कॉल बार-बार किया जाता है.

तीसरा चरण: ब्रॉडकास्ट के इंटेंट मैनेज करना

किसी जॉब के ज़रिए, Publishing Content API कॉल करने के अलावा, यह सेट अप करने के लिए ज़रूरी है पाने के लिए BroadcastReceiver कॉन्टेंट पब्लिश करने का अनुरोध सबमिट करें.

ब्रॉडकास्ट इंटेंट का मकसद, मुख्य रूप से ऐप्लिकेशन को फिर से चालू करना और डेटा को ज़बरदस्ती लागू करना है सिंक. ब्रॉडकास्ट के इंटेंट, इस तरह से डिज़ाइन नहीं किए जाते कि उन्हें समय-समय पर भेजा जा सके. यह सिर्फ़ यह तब ट्रिगर होता है, जब Engage सेवा यह तय करती है कि कॉन्टेंट पुराना है या नहीं (इसके लिए उदाहरण के लिए, एक हफ़्ते पुराना). इस तरह, विज्ञापन देखने वाले को भरोसा होगा कि वह आपको एक नया कॉन्टेंट अनुभव मिलेगा, भले ही ऐप्लिकेशन को लंबे समय तक रोका है.

BroadcastReceiver को इन दो तरीकों से सेट अप किया जाना चाहिए:

  • BroadcastReceiver क्लास के इंस्टेंस को डाइनैमिक तौर पर रजिस्टर करने के लिए, इनका इस्तेमाल करें Context.registerReceiver(). इसकी मदद से, ऐप्लिकेशन के ज़रिए बातचीत की जा सकती है जो अब भी मेमोरी में हैं.

Kotlin

class AppEngageBroadcastReceiver : 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
}

fun registerBroadcastReceivers(context: Context){
  var  context = context
  context = context.applicationContext

// Register Recommendation Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_RECOMMENDATION))

// Register Featured Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_FEATURED))

// Register Continuation Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_CONTINUATION))
}

Java

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));

}
  • अपने<receiver> AndroidManifest.xml फ़ाइल. इससे ऐप्लिकेशन को ब्रॉडकास्ट मिलने लगता है इंटेंट, जब वह नहीं चल रहा होता है, और ऐप्लिकेशन को प्रकाशित करने की अनुमति भी देता है या वीडियो कॉन्टेंट.
<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 से कॉल करें इस इंटेंट के आधार पर.

एकीकरण वर्कफ़्लो

इंटिग्रेशन पूरा हो जाने के बाद, उसकी पुष्टि करने से जुड़े सिलसिलेवार निर्देश के लिए, देखें डेवलपर इंटिग्रेशन वर्कफ़्लो का इस्तेमाल करना.

अक्सर पूछे जाने वाले सवाल

इनके बारे में जानने के लिए, जुड़ाव वाले SDK टूल के बारे में अक्सर पूछे जाने वाले सवाल देखें अक्सर पूछे जाने वाले सवाल.

संपर्क

संपर्क जानकारी engagement-developers@google.com पर, अगर वहां इंटिग्रेशन के दौरान पूछे गए किसी भी सवाल का जवाब दिया जा सकता है.

अगले चरण

इस इंटिग्रेशन को पूरा करने के बाद, आपको ये काम करने होंगे:

  • इन्हें ईमेल भेजें engagement-developers@google.com और अटैच करें आपका इंटिग्रेट किया गया APK, जिसे Google टेस्ट करने के लिए तैयार है.
  • Google, अंदरूनी तौर पर पुष्टि और समीक्षा करता है. इससे यह पक्का किया जाता है कि इंटिग्रेशन उम्मीद के मुताबिक काम करता है. ज़रूरत पड़ने पर, Google आपसे संपर्क करेगा पर ईमेल करें.
  • जांच पूरी हो जाने और किसी बदलाव की ज़रूरत न होने पर, Google आपसे संपर्क करेगा: आपको सूचित करेगा कि आप अपडेट किए गए और एकीकृत APK प्रकाशित करना शुरू कर सकते हैं Play Store पर टैप करें.
  • जब Google पुष्टि कर देगा कि आपका अपडेट किया गया APK Play Store, आपका सुझाव, चुनिंदा, और जारी रखना क्लस्टर पब्लिश किए जा सकते हैं और उपयोगकर्ताओं को दिख सकते हैं.