REST API का इस्तेमाल करके, 'देखना जारी रखें' सुविधा को इंटिग्रेट करना

Engage SDK, REST API उपलब्ध कराता है. इसकी मदद से, iOS और Roku TV जैसे Android के अलावा अन्य प्लैटफ़ॉर्म पर, 'देखना जारी रखें' की सुविधा का एक जैसा अनुभव दिया जा सकता है. इस एपीआई की मदद से, डेवलपर Android के अलावा अन्य प्लैटफ़ॉर्म से, ऑप्ट-इन करने वाले उपयोगकर्ताओं के लिए "देखना जारी रखें" की स्थिति को अपडेट कर सकते हैं.

ज़रूरी शर्तें

  • आपको सबसे पहले, डिवाइस पर Engage SDK पर आधारित इंटिग्रेशन पूरा करना होगा. इस ज़रूरी चरण से, Google के उपयोगकर्ता आईडी और आपके ऐप्लिकेशन के AccountProfile के बीच ज़रूरी कनेक्शन बनता है.
  • एपीआई का ऐक्सेस और पुष्टि: अपने Google Cloud प्रोजेक्ट में एपीआई देखने और उसे चालू करने के लिए, आपको अनुमति वाली सूची में शामिल होना होगा. एपीआई के सभी अनुरोधों के लिए पुष्टि ज़रूरी है.

ऐक्सेस पाएं

Google Cloud Console में एपीआई देखने और उसे चालू करने के लिए, आपके खाते को एनरॉल करना होगा.

  1. Google Workspace का ग्राहक आईडी उपलब्ध होना चाहिए. अगर यह उपलब्ध नहीं है, तो आपको Google Workspace के साथ-साथ, उन सभी Google खातों को सेट अप करना पड़ सकता है जिनका इस्तेमाल करके आपको एपीआई को कॉल करना है.
  2. Google Workspace से जुड़े किसी ईमेल का इस्तेमाल करके, Google Cloud Console के साथ खाता सेट अप करें.
  3. कोई नया प्रोजेक्ट बनाएं.
  4. एपीआई की पुष्टि के लिए, सेवा खाता बनाएं. सेवा खाता बनाने के बाद, आपके पास ये दो चीज़ें होंगी:
    • एक सेवा खाता आईडी.
    • आपके सेवा खाते की कुंजी वाली एक JSON फ़ाइल. इस फ़ाइल को सुरक्षित रखें. बाद में, आपको अपने क्लाइंट की पुष्टि करने के लिए इसकी ज़रूरत पड़ेगी.
  5. Workspace और उससे जुड़े Google खाते अब REST API का इस्तेमाल कर सकते हैं. बदलाव लागू होने के बाद, आपको सूचना दी जाएगी कि आपके सेवा खाते, एपीआई को कॉल कर सकते हैं या नहीं.
  6. डेलिगेट किए गए एपीआई कॉल करने की तैयारी के लिए, यह तरीका अपनाएं.

'देखना जारी रखें' वाले क्लस्टर को पब्लिश करना

Engage का डेटा पब्लिश करने के लिए, यहां दिए गए सिंटैक्स का इस्तेमाल करके, publishContinuationCluster एपीआई को POST अनुरोध भेजें.

https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/profiles/{profile_id}/publishContinuationCluster

यहां:

  • package_name: मीडिया उपलब्ध कराने वाले का पैकेज नेम
  • accountId: आपके सिस्टम में, उपयोगकर्ता के खाते का यूनीक आईडी. यह उपयोगकर्ता के डिवाइस पर इस्तेमाल किए गए accountId से मेल खाना चाहिए.
  • profileId: आपके सिस्टम में, खाते के अंदर उपयोगकर्ता के प्रोफ़ाइल का यूनीक आईडी. यह उपयोगकर्ता के डिवाइस पर मौजूद पाथ में इस्तेमाल किए गए profileId से मेल खाना चाहिए.

प्रोफ़ाइल के बिना खाते का यूआरएल यह है:

https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/publishContinuationCluster

अनुरोध का पेलोड, entities फ़ील्ड में दिखता है. entities, कॉन्टेंट की इकाइयों की सूची दिखाता है. इसमें इनमें से एक या उससे ज़्यादा इकाइयां शामिल हो सकती हैं: MovieEntity, TVEpisodeEntity, LiveStreamingVideoEntity या VideoClipEntity. इस फ़ील्ड को भरना ज़रूरी है.

अनुरोध का मुख्य भाग

फ़ील्ड

टाइप

ज़रूरी है

ब्यौरा

entities

MediaEntity ऑब्जेक्ट की सूची

हां

कॉन्टेंट की इकाइयों की सूची. इसमें ज़्यादा से ज़्यादा पांच इकाइयां शामिल हो सकती हैं. सिर्फ़ पहले पांच को रखा जाएगा और बाकी को हटा दिया जाएगा. खाली सूची का इस्तेमाल करके यह बताया जा सकता है कि उपयोगकर्ता ने सभी इकाइयां देख ली हैं.

entities फ़ील्ड में, movieEntity, tvEpisodeEntity, liveStreamingVideoEntity, और videoClipEntity शामिल हैं.

फ़ील्ड

टाइप

ब्यौरा

movieEntity

MovieEntity

यह एक ऐसा ऑब्जेक्ट है जो ContinuationCluster में किसी फ़िल्म के बारे में बताता है.

tvEpisodeEntity

TvEpisodeEntity

यह एक ऐसा ऑब्जेक्ट है जो ContinuationCluster में किसी टीवी एपिसोड के बारे में बताता है.

liveStreamingVideoEntity

LiveStreamingVideoEntity

यह एक ऐसा ऑब्जेक्ट है जो ContinuationCluster में किसी लाइव स्ट्रीमिंग वीडियो के बारे में बताता है.

videoClipEntity

VideoClipEntity

यह एक ऐसा ऑब्जेक्ट है जो ContinuationCluster में किसी वीडियो क्लिप के बारे में बताता है.

entities कलेक्शन में मौजूद हर ऑब्जेक्ट, उपलब्ध MediaEntity टाइप में से एक होना चाहिए. जैसे, MovieEntity, TvEpisodeEntity, LiveStreamingVideoEntity या VideoClipEntity. इसके साथ ही, इसमें सामान्य और टाइप के हिसाब से फ़ील्ड भी शामिल होने चाहिए.

यहां दिए गए कोड स्निपेट में, publishContinuationCluster एपीआई के लिए, अनुरोध के मुख्य भाग का पेलोड दिखाया गया है.

{
  "entities": [
    {
      "movieEntity": {
        "watch_next_type": "WATCH_NEXT_TYPE_CONTINUE",
        "name": "Movie1",
        "platform_specific_playback_uris": [
        {
          "uri": "https://www.example.com/movie_entity_uri_for_android",
          "platforms": [
            "PLATFORM_ANDROID_TV",
            "PLATFORM_ANDROID"
          ]
        },
        {
          "uri": "https://www.example.com/movie_entity_uri_for_iOS",
          "platforms": [
            "PLATFORM_IOS"
          ]
        }
        ],
        "poster_images": [
          {
            "url": "http://www.example.com/movie1_img1.png",
            "width": 1920,
            "height": 1080,
            "accessibility_text": "Movie 1 HD poster"
          },
          {
            "url": "http://www.example.com/movie1_imag2.png",
            "width": 640,
            "height": 360,
            "accessibility_text": "Movie 1 SD poster"
          }
        ],
        "last_engagement_time_millis": 864600000,
        "duration_millis": 5400000,
        "last_play_back_position_time_millis": 3241111
      }
    },
    {
      "tvEpisodeEntity": {
        "watch_next_type": "WATCH_NEXT_TYPE_CONTINUE",
        "name": "TV SERIES EPISODE 1",
        "platform_specific_playback_uris": [
        {
          "uri": "https://www.example.com/episode_entity_uri_for_android_mobile",
          "platforms": [
            "PLATFORM_ANDROID"
          ]
        },
        {
          "uri": "https://www.example.com/episode_entity_uri_for_android_tv",
          "platforms": [
            "PLATFORM_ANDROID_TV"
          ]
        },
        {
          "uri": "https://www.example.com/episode_entity_uri_for_iOS",
          "platforms": [
            "PLATFORM_IOS"
          ]
        }
        ],
        "poster_images": [
          {
            "url": "http://www.example.com/episode1_img1.png",
            "width": 1920,
            "height": 1080,
            "accessibility_text": "Episode 1 HD poster"
          },
          {
            "url": "http://www.example.com/episode1_imag2.png",
            "width": 640,
            "height": 360,
            "accessibility_text": "Episode 1 SD poster"
          }
        ],
        "last_engagement_time_millis": 864600000,
        "duration_millis": 1800000,
        "last_play_back_position_time_millis": 2141231,
        "episode_display_number": "1",
        "season_number": "1",
        "show_title": "title"
      }
    },
    {
      "liveStreamingVideoEntity": {
        "name": "Live Sports Championship",
        "watch_next_type": "WATCH_NEXT_TYPE_CONTINUE",
        "last_engagement_time_millis": 1780978284000,
        "last_play_back_position_time_millis": 1800000,
        "duration_millis": 7200000,
        "platform_specific_playback_uris": [
          {
            "uri": "https://www.example.com/live_streaming_entity_uri_for_android_tv",
            "platforms": ["PLATFORM_ANDROID_TV"]
          }
        ],
        "poster_images": [
          {
            "url": "http://www.example.com/live_stream_image1.png",
            "width": 1920,
            "height": 1080,
            "accessibility_text": "Live Sports Championship Cover Image"
          }
        ],
        "start_time_epoch_millis": 1780976484000,
        "broadcaster": "Global Sports Network",
        "broadcaster_icon": {
          "url": "https://www.example.com/gsports.jpg",
          "width": 512,
          "height": 512,
          "accessibility_text": "Global Sports Network Logo"
        }
      }
    },
    {
      "videoClipEntity": {
        "name": "How to Brew the Perfect Espresso",
        "watch_next_type": "WATCH_NEXT_TYPE_CONTINUE",
        "last_engagement_time_millis": 1780978284000,
        "last_play_back_position_time_millis": 120000,
        "duration_millis": 600000,
        "platform_specific_playback_uris": [
          {
            "uri": "https://www.example.com/video_clip_entity_uri_for_android_tv",
            "platforms": ["PLATFORM_ANDROID_TV"]
          }
        ],
        "poster_images": [
          {
            "url": "http://www.example.com/video_clip_image1.png",
            "width": 1920,
            "height": 1080,
            "accessibility_text": "Espresso Tutorial Cover Image"
          }
        ],
        "created_time_epoch_millis": 1780900000000,
        "creator": "Coffee Enthusiast John",
        "creator_image": {
          "url": "https://www.example.com/image/thumb/creators/john_avatar.jpg",
          "width": 256,
          "height": 256,
          "accessibility_text": "John's Avatar"
        }
      }
    }
  ]
}

Engage का डेटा मिटाना

Engage का डेटा हटाने के लिए, clearClusters एपीआई का इस्तेमाल करें.

'देखना जारी रखें' वाले क्लस्टर का डेटा मिटाने के लिए, यहां दिए गए सिंटैक्स का इस्तेमाल करके, clearClusters एपीआई को POST अनुरोध भेजें.

https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/profiles/{profile_id}/clearClusters

यहां:

  • package_name: मीडिया उपलब्ध कराने वाले का पैकेज नेम.
  • accountId: आपके सिस्टम में, उपयोगकर्ता के खाते का यूनीक आईडी. यह उपयोगकर्ता के डिवाइस पर इस्तेमाल किए गए accountId से मेल खाना चाहिए.
  • profileId: आपके सिस्टम में, खाते के अंदर उपयोगकर्ता के प्रोफ़ाइल का यूनीक आईडी. यह उपयोगकर्ता के डिवाइस पर मौजूद पाथ में इस्तेमाल किए गए profileId से मेल खाना चाहिए.

clearClusters एपीआई के पेलोड में सिर्फ़ एक फ़ील्ड होता है, reason. इसमें DeleteReason शामिल होता है, जो डेटा हटाने की वजह बताता है.

{
  "reason": "DELETE_REASON_LOSS_OF_CONSENT"
}

जांच करना

डेटा को सफलतापूर्वक पोस्ट करने के बाद, उपयोगकर्ता के टेस्ट खाते का इस्तेमाल करके यह पुष्टि करें कि Google TV और Android और iOS के लिए Google TV के मोबाइल ऐप्लिकेशन जैसे टारगेट Google प्लैटफ़ॉर्म पर, 'देखना जारी रखें' वाली लाइन में, उम्मीद के मुताबिक कॉन्टेंट दिख रहा है.

जांच के दौरान, कुछ मिनटों का उचित समय दें, ताकि बदलाव लागू हो सकें. साथ ही, देखने की ज़रूरी शर्तों का पालन करें. जैसे, किसी फ़िल्म का कुछ हिस्सा देखना या किसी एपिसोड को पूरा देखना. ज़्यादा जानकारी के लिए, ऐप्लिकेशन डेवलपर के लिए 'आगे देखें' के दिशा-निर्देश देखें.