ऐक्सेस की ज़रूरी शर्तें

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

पहली इमेज. ऐक्सेस से जुड़ी ज़रूरी शर्तों की मदद से, आपके सदस्य आपके ऐप्लिकेशन या प्लैटफ़ॉर्म पर मौजूद कॉन्टेंट को ऐक्सेस कर पाते हैं.

कॉन्टेंट ऐक्सेस करने से जुड़ी ज़रूरी शर्तों की पहचान करना

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

  • क्या लोगों को कॉन्टेंट ऐक्सेस करने के लिए, आपके ऐप्लिकेशन या प्लैटफ़ॉर्म में लॉग इन करना पड़ता है?
  • क्या उपयोगकर्ताओं को सदस्यता लेनी होगी?

    सिर्फ़ Watch Actions:

    • क्या उपयोगकर्ताओं को किसी बाहरी सेवा देने वाली कंपनी की सदस्यता की ज़रूरत है?
    • क्या आपके पास अलग-अलग टियर, एक से ज़्यादा पैकेज या ऐड-ऑन वाली सदस्यता का विकल्प है?
  • सिर्फ़ वीडियो देखने से जुड़ी कार्रवाइयां: क्या उपयोगकर्ताओं को कॉन्टेंट किराये पर लेना या खरीदना होगा?

  • क्या समय के साथ ऐक्सेस करने की ज़रूरी शर्तों में बदलाव होता है?

  • क्या ऐक्सेस करने की ज़रूरत, डिवाइस की जगह की जानकारी पर निर्भर करती है?

ऐक्सेस से जुड़ी पाबंदियों के टाइप

ऐक्सेस से जुड़ी पाबंदियां दो तरह की होती हैं:

पेवॉल का टाइप

पेवॉल के टाइप के हिसाब से, कॉन्टेंट का ऐक्सेस सीमित किया जा सकता है. यहां दी गई टेबल में, अलग-अलग तरह के पेवॉल के बारे में जानकारी दी गई है:

पेवॉल का टाइप उदाहरण कैटगरी
इसके लिए, खरीदारी करने या लॉग इन करने की ज़रूरत नहीं है. Crackle nologinrequired
उपयोगकर्ता को लॉग इन करना होगा. हालांकि, उसके पास पैसे चुकाकर ली गई सदस्यता होना ज़रूरी नहीं है. Vudu (AVOD) free
उपयोगकर्ता की सदस्यता चालू होनी चाहिए. ऐक्सेस, सदस्यता के टियर से अलग होता है. Netflix

subscription

उपयोगकर्ता की सदस्यता चालू होनी चाहिए. ऐक्सेस, सदस्यता के टियर पर निर्भर करता है. Hulu (ऐड-ऑन)

subscription

खरीदारी के बाद कॉन्टेंट को सीमित समय के लिए ऐक्सेस किया जा सकता है. Vudu rental
खरीदारी के बाद, कॉन्टेंट को हमेशा के लिए ऐक्सेस किया जा सकता है. Vudu purchase
यह कॉन्टेंट, केबल सदस्यता के साथ उपलब्ध है. HBO Go externalSubscription

वीडियो देखने से जुड़ी कार्रवाइयों के लिए पेवॉल का टाइप

वीडियो देखने से जुड़ी कार्रवाइयों के लिए, कॉन्टेंट पेवॉल का टाइप तय करने के लिए, कार्रवाई के ऐक्सेस की खास जानकारी में मौजूद category प्रॉपर्टी का इस्तेमाल करें:

"potentialAction": {
  "@type":"WatchAction",
  "target": {  },
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "subscription",
    "availabilityStarts": "2018-06-01T10:35:29Z",
    "availabilityEnds": "2019-05-31T10:35:29Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  },
  ...
}

सुनने की कार्रवाइयों के लिए पेवॉल का टाइप

सुनने से जुड़ी कार्रवाइयों के लिए, कॉन्टेंट पेवॉल का टाइप तय करने के लिए, ऑफ़र ऑब्जेक्ट में category प्रॉपर्टी का इस्तेमाल करें:

"potentialAction": {
  "@type":"ListenAction",
  "target": {  },
  "expectsAcceptanceOf":{
    "@type":"Offer",
    "category":"subscription",
    "availabilityStarts": "2018-06-01T10:35:29Z",
    "availabilityEnds": "2019-05-31T10:35:29Z",
    "eligibleRegion": {
      "@type":"Country",
      "name":"US"
    }
  },
  ...
}

भौगोलिक जगह

आपको उन भौगोलिक क्षेत्रों की जानकारी देनी होगी जहां कॉन्टेंट उपलब्ध है. इनमें से किसी एक या दोनों प्रॉपर्टी का इस्तेमाल करें:

कोई उपयोगकर्ता कॉन्टेंट तब ऐक्सेस कर सकता है, जब उसके डिवाइस की जगह की जानकारी, eligibleRegion में बताए गए किसी भी क्षेत्र में हो और ineligibleRegion में बताए गए किसी भी क्षेत्र में न हो.

eligibleRegion और ineligibleRegion प्रॉपर्टी के लिए, ये वैल्यू इस्तेमाल की जा सकती हैं:

  • Country, City, और State की सूची.
  • एक GeoShape ऑब्जेक्ट. ज़रूरी शर्तों के बारे में ज़्यादा जानने के लिए, GeoShape प्रॉपर्टी सेक्शन देखें.
  • GeoShape ऑब्जेक्ट की सूची.

अगर कॉन्टेंट दुनिया भर में उपलब्ध है, तो eligibleRegion के लिए इस खास वैल्यू का इस्तेमाल करें:

"eligibleRegion": "EARTH",

eligibleRegion के इस्तेमाल के उदाहरण

eligibleRegion प्रॉपर्टी के इस्तेमाल के उदाहरण यहां दिए गए हैं:

  • पहला उदाहरण: eligibleRegion में देशों की सूची दी गई है.
  • दूसरा उदाहरण: GeoShape ऑब्जेक्ट के साथ eligibleRegion, जिसमें ज़िप कोड की सूची शामिल है.
  • तीसरा उदाहरण: eligibleRegion में एक GeoShape ऑब्जेक्ट है. इसमें फ़ॉरवर्ड सोरटेशन एरिया (एफ़एसए) कोड की सूची शामिल है.
  • चौथा उदाहरण: GeoShape ऑब्जेक्ट के साथ eligibleRegion, जिसमें डीएमए आईडी शामिल है.
  • पांचवां उदाहरण: GeoShape ऑब्जेक्ट की सूची के साथ eligibleRegion. इनमें से हर एक में डीएमए आईडी होता है.
  • छठा उदाहरण: ineligibleRegion में ज़िप कोड को ब्लॉक किया गया है.

उदाहरण 1

eligibleRegion में देशों की सूची शामिल है:


"actionAccessibilityRequirement": {
  "@type": "ActionAccessSpecification",
  "category": "subscription",
  "requiresSubscription": {
    "@type": "MediaSubscription",
    "@id": "http://www.example.com/north_america_network/subscription",
    "name": "Example Subscription",
    "commonTier": true
  },
  "eligibleRegion": [
    {
      "@type": "Country",
      "name": "US"
    },
    {
      "@type": "Country",
      "name": "CA"
    }
  ]
}

उदाहरण 2

eligibleRegion में GeoShape ऑब्जेक्ट है, जिसमें पिन कोड की सूची शामिल है:


"actionAccessibilityRequirement": {
  "@type": "ActionAccessSpecification",
  "category": "subscription",
  "requiresSubscription": {
    "@type": "MediaSubscription",
    "@id": "http://www.example.com/local_tv_network/subscription",
    "name": "Example Subscription",
    "commonTier": true
  },
  "eligibleRegion": {
    "@type": "GeoShape",
    "@id": "http://example.com/area1",
    "addressCountry": "US",
    "postalCode": [
      "94118",
      "94119"
    ]
  }
}

उदाहरण 3

GeoShape ऑब्जेक्ट के साथ eligibleRegion, जिसमें फ़ॉरवर्ड सोरटेशन एरिया (एफ़एसए) कोड की सूची शामिल है:


"actionAccessibilityRequirement": {
  "@type": "ActionAccessSpecification",
  "category": "subscription",
  "requiresSubscription": {
    "@type": "MediaSubscription",
    "@id": "http://www.example.com/local_tv_network/subscription",
    "name": "Example Subscription",
    "commonTier": true
  },
  "additionalProperty": {
      "@type": "PropertyValue",
      "name": "DisplaySubscriptionIdentifier",
      "value": "http://www.example.com/local_tv_network/subscription"
  },
  "eligibleRegion":{
    "@type": "GeoShape",
    "@id": "http://example.com/area2",
    "addressCountry": "CA",
    "postalCode": [
      "1A1",
      "K1A"
    ]
  }
}

चौथा उदाहरण

eligibleRegion में GeoShape ऑब्जेक्ट है, जिसमें डीएमए आईडी शामिल है:


"actionAccessibilityRequirement": {
  "@type": "ActionAccessSpecification",
  "category": "subscription",
  "requiresSubscription": {
    "@type": "MediaSubscription",
    "@id": "http://www.example.com/abcd/subscription",
    "name": "Example Subscription",
    "commonTier": true
  },
  "additionalProperty": {
      "@type": "PropertyValue",
      "name": "DisplaySubscriptionIdentifier",
      "value": "http://www.example.com/abcd/subscription"
  },
  "eligibleRegion":{
    "@type": "GeoShape",
    "@id": "http://example.com/area3",
    "addressCountry": "US",
    "identifier": [
      {
        "@type": "PropertyValue",
        "propertyID": "DMA_ID",
        "value": "501"
      }
    ]
  }
}

उदाहरण 5

GeoShape ऑब्जेक्ट की सूची वाला eligibleRegion. इनमें से हर एक में डीएमए आईडी होता है:


"actionAccessibilityRequirement" : {
   "@type" : "ActionAccessSpecification",
   "eligibleRegion" : [
      {
         "@id" : "http://example.com/dma/601",
         "@type" : "GeoShape",
         "addressCountry" : "US",
         "identifier" : {
            "@type" : "PropertyValue",
            "propertyID" : "DMA_ID",
            "value" : "601"
         }
      },
      {
         "@id" : "http://example.com/dma/602",
         "@type" : "GeoShape",
         "addressCountry" : "US",
         "identifier" : {
            "@type" : "PropertyValue",
            "propertyID" : "DMA_ID",
            "value" : "602"
         }
      }
   ]
}

छठा उदाहरण

ineligibleRegion में ब्लॉक किए गए ज़िप कोड:


"actionAccessibilityRequirement": {
  "@type": "ActionAccessSpecification",
  "category": "subscription",
  "requiresSubscription": {
    "@type": "MediaSubscription",
    "@id": "http://www.example.com/local_tv_network/subscription",
    "name": "Example Subscription",
    "commonTier": true
  },
  "additionalProperty": {
      "@type": "PropertyValue",
      "name": "DisplaySubscriptionIdentifier",
      "value": "http://www.example.com/local_tv_network/subscription"
  },
 "eligibleRegion":   {
      "@type": "Country",
      "name": "US"
    },
  "ineligibleRegion": {
    "@type": "GeoShape",
    "@id": "http://example.com/area1",
    "addressCountry": "US",
    "postalCode": [
      "94118",
      "94119"
    ]
  }
}

एनटाइटलमेंट आइडेंटिफ़ायर

एनटाइटलमेंट आइडेंटिफ़ायर entitlementId, एक ऐसी स्ट्रिंग होती है जो आपके मीडिया कैटलॉग में मौजूद कॉन्टेंट के ग्रुप को ऐक्सेस करने का अधिकार दिखाती है. यह तय करने के लिए कि किसी उपयोगकर्ता के पास आपके कॉन्टेंट का ऐक्सेस है या नहीं, Google यह तरीका अपनाता है:

  1. हम आपके Entitlements एंडपॉइंट पर एपीआई कॉल करते हैं, ताकि हमें उपयोगकर्ता के एनटाइटलमेंट आइडेंटिफ़ायर मिल सकें.
  2. हम आपके मीडिया ऐक्शन फ़ीड से, कॉन्टेंट के ज़रूरी एनटाइटलमेंट आइडेंटिफ़ायर ढूंढते हैं.
  3. हम किसी उपयोगकर्ता के entitlementId का मिलान, आपके फ़ीड में मौजूद मीडिया सदस्यता ऑब्जेक्ट की identifier प्रॉपर्टी से करते हैं. अगर कम से कम एक entitlementId मैच करता है, तो हम यह तय करते हैं कि उपयोगकर्ता कॉन्टेंट को ऐक्सेस कर सकता है.
दूसरी इमेज. उपयोगकर्ता के एनटाइटलमेंट आइडेंटिफ़ायर में से कोई एक, कॉन्टेंट के लिए ज़रूरी एनटाइटलमेंट आइडेंटिफ़ायर से मेल खाता हो.

Google का सुझाव है कि entitlementId के लिए, इस सिंटैक्स का इस्तेमाल करें:

<domain name> + colon (:) + <access level to content>

सिंटैक्स के उदाहरण:

  • example.com:basic
  • example.com:premium
  • example.com:sports

एनटाइटलमेंट आइडेंटिफ़ायर का उदाहरण

MediaExampleCompany के फ़ीड में बताया गया है कि Movie XYZ के लिए example.com:basic entitlementId की ज़रूरत होती है. इसे यहां दिखाया गया है:

{
  "@context": ["http://schema.org", {"@language": "en"}],
  "@type": "Movie",
  "@id": "www.example.com/movie_xyz",
  "url": "www.example.com/movie_xyz",
  "name": "Movie XYZ",
  "potentialAction": {
    "@type": "WatchAction",
    "target": [  ],
    "actionAccessibilityRequirement": {
      "@type": "ActionAccessSpecification",
      "category": "subscription",
      "requiresSubscription": {
        "@type": "MediaSubscription",
        "@id": "http://www.example.com/basic_subscription",
        "name": "Basic subscription",
        "commonTier": true
        ...
      },
      "additionalProperty": {
        "@type": "PropertyValue",
        "name": "DisplaySubscriptionIdentifier",
        "value": "http://www.example.com/basic_subscription"
      },
      ...
    }
  },
  ...
}

ऐक्सेस करने के सामान्य उदाहरण

यहां ऐक्सेस करने के कुछ सामान्य उदाहरण दिए गए हैं:

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

मुफ़्त (लॉगिन करने की ज़रूरत नहीं है)

लॉगिन करने की ज़रूरत नहीं है

कॉन्टेंट को बिना लॉग इन किए या सदस्यता लिए ऐक्सेस किया जा सकता है.


{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "nologinrequired",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  }
}
  • category को nologinrequired पर सेट करें.
  • expectAcceptanceOf को शामिल न करें.

मुफ़्त (लॉगिन करना ज़रूरी है)

लॉगिन करना ज़रूरी है

कॉन्टेंट को ऐक्सेस करने के लिए, उपयोगकर्ताओं को लॉग इन करना होगा. हालांकि, इसके लिए सदस्यता की ज़रूरत नहीं है.


{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "free",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  }
}
  • category को free पर सेट करें.
  • expectAcceptanceOf को शामिल न करें.

एक टियर वाली सदस्यता

एक टियर वाले सदस्यता मॉडल में, सेवा देने वाली कंपनी के पास एक सदस्यता टियर होता है. सभी सदस्य एक ही कॉन्टेंट को ऐक्सेस कर सकते हैं. जैसे, फ़िल्में या एपिसोड. इससे कोई फ़र्क़ नहीं पड़ता कि उन्होंने सदस्यता का कौन-सा पैकेज लिया है.


{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "subscription",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "requiresSubscription": {
        "@type": "MediaSubscription",
        "name": "Example Package",
        "commonTier": true,
        "@id": "http://www.example.com/example_package"
    },
    "additionalProperty": {
      "@type": "PropertyValue",
      "name": "DisplaySubscriptionIdentifier",
      "value": "http://www.example.com/example_package"
    },
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  }
}

एक से ज़्यादा टियर वाली सदस्यता

टियर वाली सदस्यता के मॉडल में, सेवा देने वाली कंपनी के पास सदस्यता के कई टियर होते हैं. जैसे, गोल्ड, सिल्वर, और ब्रॉन्ज़. ऊपरी लेवल की सदस्यता लेने वाले लोग, निचले लेवल की सदस्यता वाला सारा कॉन्टेंट ऐक्सेस कर सकते हैं. हालांकि, निचले टियर की सदस्यता वाले उपयोगकर्ता, ऊपरी टियर का कॉन्टेंट ऐक्सेस नहीं कर सकते.

तीसरी इमेज. टियर वाली सदस्यता का मॉडल और उसके एनटाइटलमेंट का प्रतिनिधित्व.

यह उदाहरण देखें:

  • जेन ने गोल्ड टियर की सदस्यता ली है. आपके एनटाइटलमेंट एंडपॉइंट, ये entitlementId आइडेंटिफ़ायर दिखाता है:
    • example.com:bronze
    • example.com:silver
    • example.com:gold
  • जॉन ने ब्रॉन्ज़ टियर की सदस्यता ली है. एनटाइटलमेंट एंडपॉइंट, यहां दिए गए entitlementId दिखाता है:
    • example.com:bronze
  • Media Actions फ़ीड में, इन ज़रूरी शर्तों के बारे में बताया गया है:
    • फ़िल्म A के लिए example.com:bronze ज़रूरी है.
    • मूवी B के लिए example.com:silver ज़रूरी है.

इस स्थिति में, Google, Jane और John के लिए ऐक्सेस लेवल तय करता है:

  • जेन और जॉन, दोनों के पास फ़िल्म A का ऐक्सेस है.
  • जेन के पास Movie B का ऐक्सेस है, लेकिन जॉन के पास नहीं है.
{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "subscription",
    "requiresSubscription": {
      "@type": "MediaSubscription",
      "@id": "http://www.example.com/basic_subscription",
      "name": "Bronze",
      "commonTier": true
      ...
    },
    "additionalProperty": {
      "@type": "PropertyValue",
      "name": "DisplaySubscriptionIdentifier",
      "value": "http://www.example.com/basic_subscription"
    },
    ...
  }
}

ऐड-ऑन सदस्यता

ऐड-ऑन सदस्यता मॉडल में, सेवा देने वाली कंपनी उपयोगकर्ताओं को उनकी सुविधाओं का दायरा बढ़ाने और बुनियादी सदस्यता में चैनल जोड़ने की अनुमति देती है. उपयोगकर्ता जितने चाहें उतने चैनल जोड़ सकते हैं.

चौथी इमेज. ऐड-ऑन के सदस्यता मॉडल और एनटाइटलमेंट के उसके रिप्रेज़ेंटेशन की इमेज.

यह उदाहरण देखें:

  • जेन के पास Basic सदस्यता के अलावा, PRO और Sportz सदस्यता भी है. एनटाइटलमेंट एंडपॉइंट, ये entitlementId आइडेंटिफ़ायर दिखाता है:
    • example.com:basic
    • example.com:pro
    • example.com:sportz
  • जॉन के पास सिर्फ़ Basic सदस्यता है. एनटाइटलमेंट एंडपॉइंट, यहां दिए गए entitlementId दिखाता है:
    • example.com:basic
  • Media Actions फ़ीड में, इन ज़रूरी शर्तों के बारे में बताया गया है:
    • फ़िल्म A के लिए example.com:basic ज़रूरी है.
    • मूवी B के लिए example.com:pro ज़रूरी है.

इस स्थिति में, Google, Jane और John के लिए ऐक्सेस लेवल तय करता है:

  • जेन और जॉन, दोनों के पास फ़िल्म A का ऐक्सेस है.
  • जेन के पास Movie B का ऐक्सेस है, लेकिन जॉन के पास नहीं है.
{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "subscription",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
    "requiresSubscription": [
      {
          "@type": "MediaSubscription",
          "@id": "https://www.example.com/package/basic",
          "name": "Basic",
          "sameAs": "https://www.example.com/package/basic",
          "commonTier": true
        },
        {
          "@type": "MediaSubscription",
          "@id": "https://www.example.com/packages/basic/pro",
          "name": "PRO",
          "sameAs": "https://www.example.com/package/pro",
          "identifier": "example.com:pro",
          "commonTier": false
        },
        {
          "@type": "MediaSubscription",
          "@id": "https://www.example.com/package/sportz",
          "name": "Sportz",
          "sameAs": "https://www.example.com/package/sports",
          "identifier": "example.com:sportz",
          "commonTier": false
        }
    ],
      "additionalProperty": {
        "@type": "PropertyValue",
        "name": "DisplaySubscriptionIdentifier",
        "value": "http://www.example.com/package/basic"
      },
    }
  }
}

सिर्फ़ एक बार पैसे चुकाकर की जाने वाली खरीदारी

खरीदारी

खरीदारी के बाद, कॉन्टेंट हमेशा के लिए उपलब्ध होता है.


{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "purchase",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    },
    "expectsAcceptanceOf": {
      "@type": "Offer",
      "price": 7.99,
      "priceCurrency": "USD",
      "seller": {
        "@type": "Organization",
        "name": "Example",
        "sameAs": "http://www.example.com/"
      }
    }
  }
}
  • category को purchase पर सेट करें.
  • खरीदारी की कीमत दिखाने के लिए, expectAcceptanceOf में actionAccessibilityRequirement शामिल करें.

किराया

खरीदारी के बाद कॉन्टेंट को सीमित समय के लिए ऐक्सेस किया जा सकता है.


{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "rental",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    },
    "expectsAcceptanceOf": {
      "@type": "Offer",
      "price": 7.99,
      "priceCurrency": "USD",
      "seller": {
        "@type": "Organization",
        "name": "Example",
        "sameAs": "http://www.example.com/"
      }
    }
  }
}
  • category को rental पर सेट करें.
  • किराये की जानकारी देने के लिए, actionAccessibilityRequirement में expectAcceptanceOf शामिल करें.

लाइव टीवी

मीडिया ऐक्शन फ़ीड में, लाइव टीवी चैनल या इवेंट के ऐक्सेस को इन दो शर्तों के आधार पर सीमित किया जा सकता है:

  • उपयोगकर्ता के डिवाइस की जगह की जानकारी

    टीवी चैनल का ऐक्सेस सीमित करने के लिए, वह इलाका चुनें जहां उपयोगकर्ताओं के पास इसका ऐक्सेस है. यह शर्त आम तौर पर, स्थानीय ब्रॉडकास्ट टीवी चैनलों पर लागू होती है.

  • उपयोगकर्ता के खाते की स्थिति

    अगर किसी टीवी चैनल का ऐक्सेस, उपयोगकर्ता के खाते की सेटिंग पर निर्भर करता है, तो पाबंदी दिखाने के लिए एनटाइटलमेंट आइडेंटिफ़ायर का इस्तेमाल करें.

    यह शर्त आम तौर पर, इस्तेमाल के इन उदाहरणों पर लागू होती है:

    • बंडल: राष्ट्रीय चैनलों को अक्सर बंडलों में शामिल किया जाता है. उपयोगकर्ता यह चुनते हैं कि उन्हें किस बंडल की सदस्यता लेनी है.
    • ऐड-ऑन: कुछ प्रीमियम चैनलों के लिए, उपयोगकर्ताओं को अपनी सदस्यता में चुनिंदा अतिरिक्त चैनल जोड़ने होते हैं.
    • रीजनल स्पोर्ट्स नेटवर्क (आरएसएन): आरएसएन आम तौर पर, उपयोगकर्ता की "घर" की लोकेशन से जुड़े होते हैं. उपयोगकर्ता, RSN पर कॉन्टेंट देख सकते हैं. भले ही, वे "घर" की लोकेशन से बाहर हों.

तीसरे पक्ष की सदस्यता

तीसरे पक्ष की सदस्यता

यह कॉन्टेंट, सदस्यों के लिए किसी दूसरी सेवा पर उपलब्ध है.


{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "externalsubscription"
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "requiresSubscription":{
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/faq",
      "name": "Example",
      "sameAs": "https://www.example.com/faq",
      "authenticator": {
        "@type": "Organization",
        "name": "TVE"
      }
    },
    "additionalProperty": {
      "@type": "PropertyValue",
      "name": "DisplaySubscriptionIdentifier",
      "value": "http://www.example.com/faq"
     },
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  }
}
  • authenticator जोड़ें, ताकि यह पता चले कि सदस्यों की पुष्टि किसी दूसरी सेवा से की जाती है. उदाहरण के लिए, HBO GO के लिए केबल टीवी सेवा देने वाली कंपनी की सदस्यता ज़रूरी है.

सामान्य टियर वाले पैकेज

कॉमन टियर का कॉन्टेंट, सभी सदस्यों के लिए उपलब्ध होता है. इससे कोई फ़र्क़ नहीं पड़ता कि उन्होंने सदस्यता का कौन-सा पैकेज लिया है. सामान्य टियर, category की subscription रेटिंग वाले सभी कॉन्टेंट पर लागू होता है. category प्रॉपर्टी के बारे में ज़्यादा जानने के लिए, पेवॉल टाइप सेक्शन देखें.

कॉमन टियर पैकेज क्यों ज़रूरी है?

Google के कई प्रॉडक्ट, लोगों को टीवी शो और फ़िल्मों के सुझाव देते हैं. इनमें Google Search, Android TV, और Google Assistant शामिल हैं. उपयोगकर्ताओं को कीमत के बारे में सही जानकारी देने के लिए, Google को यह पता होना चाहिए कि सामान्य टियर का इस्तेमाल करके, सभी सदस्यों के लिए कौनसा कॉन्टेंट उपलब्ध है. Google को यह भी पता होना चाहिए कि सदस्यता के खास पैकेज लेने वाले सदस्यों के लिए कौनसा कॉन्टेंट उपलब्ध है.

Google, सामान्य टियर में उपलब्ध टाइटल का सुझाव देता है. हालांकि, ऐसा तब तक होता है, जब तक entitlement API का इस्तेमाल नहीं किया जाता. इस एपीआई की मदद से, Google को यह समझने में मदद मिलती है कि हर उपयोगकर्ता, नॉन-कॉमन-टियर वाले किन टाइटल को ऐक्सेस कर सकता है.

मुझे सामान्य टियर वाला पैकेज कब बनाना चाहिए?

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

जिन प्रोवाइडर के पास सभी सदस्यों के लिए कोई कॉन्टेंट उपलब्ध नहीं है उन्हें कॉमन टियर पैकेज बनाने की ज़रूरत नहीं है. उदाहरण के लिए, सेवा देने वाली ऐसी कंपनियां जो अपने सभी पैकेज में अलग-अलग कॉन्टेंट उपलब्ध कराती हैं.

सामान्य टियर के उदाहरण

यहां सामान्य टियर के उदाहरण दिए गए हैं.

अलग-अलग फ़ायदे वाली सदस्यता

टियर वाली सदस्यता के मॉडल में, सेवा देने वाली कंपनी के पास सदस्यता के कई टियर होते हैं. जैसे, गोल्ड, सिल्वर, और ब्रॉन्ज़ टियर. ऊपरी टियर की सदस्यता लेने वाले लोगों के पास, निचले टियर का पूरा कॉन्टेंट ऐक्सेस करने की सुविधा होती है. जिन लोगों ने निचले टियर की सदस्यता ली है उनके पास ऊपरी टियर के कॉन्टेंट का ऐक्सेस नहीं होता. नीचे दी गई इमेज, पैकेज के स्ट्रक्चर का एक उदाहरण है.

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

नीचे दिए गए कोड के उदाहरण में, ब्रॉन्ज़ पैकेज एक सामान्य टियर है, क्योंकि सभी उपयोगकर्ताओं के पास उस टियर के सभी कॉन्टेंट का ऐक्सेस होता है.

"requiresSubscription": [
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/bronze",
      "name": "Bronze",
      "sameAs": "https://www.example.com/package/bronze",
      "commonTier": true
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/silver",
      "name": "Silver",
      "sameAs": "https://www.example.com/package/silver",
      "identifier": "example.com:silver",
      "commonTier": false
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/gold",
      "name": "Gold",
      "sameAs": "https://www.example.com/package/gold",
      "identifier": "example.com:gold",
      "commonTier": false
    }
  ],

ऐड-ऑन

ऐड-ऑन की सदस्यता वाले मॉडल में, सेवा देने वाली कंपनी उपयोगकर्ताओं को उनकी बुनियादी सदस्यता में चैनल जोड़ने और उनके एनटाइटलमेंट बढ़ाने की अनुमति देती है. उपयोगकर्ता जितने चाहें उतने चैनल जोड़ सकते हैं. नीचे दी गई इमेज, पैकेज के स्ट्रक्चर का एक उदाहरण है.

हर उपयोगकर्ता को Basic चैनल मिलता है. इसके अलावा, वे PRO, Sportz, और Moviemax चैनलों के किसी भी कॉम्बिनेशन को जोड़ सकते हैं.
छठी इमेज. ऐड-ऑन के सदस्यता पैकेज का स्ट्रक्चर.

अगर आपके पास ऐसा चैनल है जो सभी उपयोगकर्ताओं के लिए उपलब्ध है और इसके लिए कोई शुल्क नहीं लिया जाता, तो पैकेज को सामान्य टियर वाले पैकेज के साथ मर्ज किया जा सकता है.

कोड के इस उदाहरण में, बुनियादी पैकेज एक सामान्य टियर है, क्योंकि सभी उपयोगकर्ताओं के पास इस पैकेज में मौजूद सभी कॉन्टेंट का ऐक्सेस होता है.

"requiresSubscription": [
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/basic",
      "name": "Basic",
      "sameAs": "https://www.example.com/package/basic",
      "commonTier": true
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/packages/basic/pro",
      "name": "PRO",
      "sameAs": "https://www.example.com/package/pro",
      "identifier": "example.com:pro",
      "commonTier": false
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/sportz",
      "name": "Sportz",
      "sameAs": "https://www.example.com/package/sports",
      "identifier": "example.com:sportz",
      "commonTier": false
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/moviemax",
      "name": "Moviemax",
      "sameAs": "https://www.example.com/package/moviemax",
      "identifier": "example.com:moviemax",
      "commonTier": false
    }
  ],

ऐसे पैकेज जिनमें एक जैसा कॉन्टेंट शामिल हो

कॉन्टेंट मॉडल में, पैकेज में ऐसा कॉन्टेंट होता है जो एक-दूसरे से मिलता-जुलता होता है. इसमें सेवा देने वाली कंपनी, ऐसे पैकेज बेचती है जिनमें अन्य पैकेज का कुछ कॉन्टेंट शामिल होता है. नीचे दी गई इमेज, पैकेज के स्ट्रक्चर का एक उदाहरण है.

एक वेन डायग्राम, जिसमें पैकेज 1, 2, और 3 के बीच ओवरलैप को &#39;कॉमन टियर&#39; के तौर पर लेबल किया गया है.
सातवीं इमेज. इंटरसेक्टिंग कॉन्टेंट के साथ पैकेज स्ट्रक्चर.

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

"requiresSubscription": [
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/1",
      "name": "Package 1",
      "sameAs": "https://www.example.com/package/1",
      "identifier": "example.com:package1",
      "commonTier": false
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/2",
      "name": "Package 2",
      "sameAs": "https://www.example.com/package/2",
      "identifier": "example.com:package2",
      "commonTier": false
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/3",
      "name": "Package 3",
      "sameAs": "https://www.example.com/package/3",
      "identifier": "example.com:package3",
      "commonTier": false
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/common",
      "name": "Common Tier Package",
      "sameAs": "https://www.example.com/package/common",
      "commonTier": true
    }
  ],

ऐसे पैकेज जिनमें एक-दूसरे से मिलता-जुलता कॉन्टेंट शामिल न हो

ऐसे कॉन्टेंट मॉडल में जहां सभी कॉन्टेंट पैकेज एक-दूसरे से अलग होते हैं, वहां सेवा देने वाली कंपनी ऐसे पैकेज बेचती है जिनमें दूसरे पैकेज का कॉन्टेंट शामिल नहीं होता. नीचे दी गई इमेज, पैकेज के स्ट्रक्चर का एक उदाहरण है.

पैकेज 1, 2, और 3 पूरी तरह से अलग हैं.
आठवीं इमेज. पैकेज का स्ट्रक्चर ऐसा होना चाहिए कि उसमें कोई भी कॉन्टेंट एक-दूसरे से मेल न खाता हो.

यहां दिए गए उदाहरण में, सेवा देने वाली कंपनी तीन पैकेज ऑफ़र करती है. इनमें से किसी भी पैकेज में एक जैसा कॉन्टेंट नहीं है. इसके लिए, किसी कॉमन टियर पैकेज की ज़रूरत नहीं होती.

"requiresSubscription": [
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/1",
      "name": "Package 1",
      "sameAs": "https://www.example.com/package/1",
      "identifier": "example.com:package1",
      "commonTier": false
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/2",
      "name": "Package 2",
      "sameAs": "https://www.example.com/package/2",
      "identifier": "example.com:package2",
      "commonTier": false
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/3",
      "name": "Package 3",
      "sameAs": "https://www.example.com/package/3",
      "identifier": "example.com:package3",
      "commonTier": false
    }
  ],

एनटाइटलमेंट एंडपॉइंट

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

पूर्वापेक्षा

शुरू करने से पहले, पुष्टि करें कि आपकी सेवा, Google के साथ OAuth 2.0 फ़्लो के साथ काम करती हो.

अनुरोध

किसी उपयोगकर्ता की एनटाइटलमेंट की जानकारी पाने के लिए Google, एक अनुरोध भेजता है. इसमें उपयोगकर्ता का OAuth टोकन शामिल होता है. आपके एंडपॉइंट को उस OAuth टोकन के आधार पर उपयोगकर्ता की पहचान करनी होगी. नीचे दिया गया उदाहरण देखें:

GET /resource HTTP/1.1
Host: server.example.com
Authorization: Bearer <OAuthToken>

जवाब

आपके एंडपॉइंट को इन प्रॉपर्टी के साथ रिस्पॉन्स देना होगा:

प्रॉपर्टी
subscription

ज़रूरी है

यह रूट रिस्पॉन्स के अंदर मौजूद फ़ील्ड है.

subscription.type

ज़रूरी है

इस प्रॉपर्टी की ये वैल्यू हो सकती हैं:

  • ActiveSubscription: उपयोगकर्ता के पास सेवा देने वाली कंपनी की चालू सदस्यता है.
  • ActiveTrial: उपयोगकर्ता के पास, सेवा देने वाली कंपनी की चालू सदस्यता है, जिसे वह बिना किसी शुल्क के आज़मा रहा है.
  • InactiveSubscription: उपयोगकर्ता के पास कोई चालू सदस्यता या मुफ़्त में आज़माने की सुविधा नहीं है.
subscription.expiration_date

ज़रूरी नहीं

इस एनटाइटलमेंट के खत्म होने की तारीख. यह तारीख ISO 8601 फ़ॉर्मैट में होनी चाहिए. इसमें टाइमज़ोन भी शामिल होता है. ज़्यादा जानकारी के लिए, एक्सपायर होने की तारीखें देखें.

entitlements

ज़रूरी नहीं

यह रूट प्रॉपर्टी है. इसमें वे entitlementId वैल्यू शामिल होती हैं जो उपयोगकर्ता के पास हैं.

entitlements.entitlement

अगर सदस्यता के टाइप के आधार पर, स्ट्रीमिंग कैटलॉग को ऐक्सेस करने की सुविधा अलग-अलग है, तो यह जानकारी देना ज़रूरी है.

इस प्रॉपर्टी में entitlementId शामिल है. ज़्यादा जानकारी के लिए, एनटाइटलमेंट आइडेंटिफ़ायर देखें.

entitlements.expiration_date

ज़रूरी नहीं

इस सदस्यता के खत्म होने की तारीख ISO 8601 फ़ॉर्मैट में होनी चाहिए. इसमें टाइमज़ोन भी शामिल होता है. ज़्यादा जानकारी के लिए, एक्सपायर होने की तारीखें देखें.

खत्म होने की तारीखें

एंडपॉइंट रिस्पॉन्स में दो प्रॉपर्टी होती हैं, जो समयसीमा खत्म होने की तारीखों से जुड़ी होती हैं: subscription.expiration_date और entitlements.expiration_date. इनमें से किसी एक को शामिल किया जा सकता है या किसी को भी शामिल नहीं किया जा सकता. हालांकि, दोनों को शामिल नहीं किया जा सकता. इनमें से कौनसा तरीका इस्तेमाल करना है, यह आपके सदस्यता मॉडल पर निर्भर करता है.

सदस्यता का मॉडल
स्ट्रीमिंग कैटलॉग का ऐक्सेस, सभी सदस्यों के लिए एक जैसा होता है. entitlements प्रॉपर्टी की जानकारी देना ज़रूरी नहीं है. इसलिए, subscription.expiration_date प्रॉपर्टी की जानकारी दें.

स्ट्रीमिंग कैटलॉग का ऐक्सेस, उपयोगकर्ता की सदस्यता की जानकारी के आधार पर अलग-अलग होता है.

अगर आपके सदस्यता मॉडल में कई टियर या ऐड-ऑन हैं जो समय के साथ खत्म हो जाते हैं, तो इनमें से कोई एक काम करें:

  • अगर सभी entitlements.entitlement वैल्यू एक ही समय पर खत्म होती हैं, तो subscription.expiration_date एट्रिब्यूट की वैल्यू दें.
  • अगर कुछ entitlements.entitlement वैल्यू अलग-अलग समय पर खत्म होती हैं, तो entitlements.expiration_date एट्रिब्यूट की वैल्यू दें.

जवाब के उदाहरण

सदस्यता की अलग-अलग स्थितियों के उदाहरण यहां दिए गए हैं:

  • सक्रिय सदस्यता
  • सदस्यता चालू हो और उसके खत्म होने की तारीख मौजूद हो
  • सदस्यता नहीं है
  • एक से ज़्यादा टियर या ऐड-ऑन की चालू सदस्यताएं

सक्रिय सदस्यता

चालू सदस्यता

किसी उपयोगकर्ता के पास example.com की चालू सदस्यता है. इस मामले में, सभी सदस्यों के पास आपके पूरे स्ट्रीमिंग कैटलॉग का ऐक्सेस होता है. भले ही, उनकी सदस्यता का टाइप कुछ भी हो.


{
  "subscription" : {
    "type": "ActiveSubscription",
  }
}

सदस्यता चालू हो और उसके खत्म होने की तारीख मौजूद हो

चालू सदस्यता, जिसके खत्म होने की तारीख दी गई हो

किसी उपयोगकर्ता के पास example.com की चालू सदस्यता है और उसकी सदस्यता की समयसीमा खत्म होने की तारीख तय है. इस मामले में, सभी सदस्यों के पास आपके पूरे स्ट्रीमिंग कैटलॉग का ऐक्सेस होता है. इससे कोई फ़र्क़ नहीं पड़ता कि उनकी सदस्यता किस तरह की है.


{
  "subscription" : {
    "type": "ActiveSubscription",
    "expiration_date": "2019-11-10T10:00:00Z"
  }
}

सदस्यता नहीं है

सदस्यता नहीं चाहिए

किसी उपयोगकर्ता के पास example.com की सदस्यता नहीं है.


{
  "subscription" : {
    "type": "InactiveSubscription"
  }
}

एक से ज़्यादा टियर या ऐड-ऑन की चालू सदस्यताएं

एक से ज़्यादा टियर या ऐड-ऑन की चालू सदस्यताएं

किसी उपयोगकर्ता के पास example.com:premium की सदस्यता किसी तारीख तक है.


{
  "subscription" : {
    "type": "ActiveSubscription",
  }
  "entitlements": [
    {
      "entitlement": "example.com:premium",
      "expiration": "2019-11-10T10:00:00Z"
    }
  ]
}

अनुरोध संख्या सीमित करना

Google, किसी उपयोगकर्ता के एनटाइटलमेंट की जानकारी को हर छह घंटे में अपडेट करता है. क्वेरी प्रति सेकंड (क्यूपीएस) की ज़्यादा से ज़्यादा संख्या को कम करने के लिए, Google समय के साथ-साथ आपके एंडपॉइंट पर क्वेरी को बराबर बांट देता है. इसलिए, अपने एंडपॉइंट के लिए अनुमानित औसत QPS का पता लगाने के लिए, इस फ़ॉर्मूले का इस्तेमाल करें:

अनुमानित औसत QPS = <उपयोगकर्ताओं की कुल संख्या> / 21,600 सेकंड (6 घंटे x 60 मिनट x 60 सेकंड)

अगर आपके पास कई उपयोगकर्ता हैं, तो Google छह घंटे के इस अंतराल में बदलाव कर सकता है. ज़रूरत पड़ने पर, कॉन्फ़िगरेशन के बारे में चर्चा करने के लिए Google से संपर्क करें.

Google से संपर्क करें

एंडपॉइंट तैयार हो जाने पर, Google से संपर्क करके एंडपॉइंट के यूआरएल के बारे में बताएं.

कार्रवाई के ऐक्सेस की जानकारी देने वाली प्रॉपर्टी

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