ข้อกําหนดในการเข้าถึง

ผู้ใช้ชอบดูหรือฟังเนื้อหาที่เข้าถึงอยู่แล้วได้ เช่น เนื้อหาการสมัครใช้บริการที่มีอยู่ หาก Google ทราบว่าผู้ใช้เข้าถึงเนื้อหาใดในแอปหรือแพลตฟอร์มของคุณได้ Google จะสร้างผลการค้นหาหรือการตอบกลับที่ดียิ่งขึ้นเพื่อนําผู้ใช้ไปยังเนื้อหานั้นได้

รูปที่ 1 ข้อกําหนดในการเข้าถึงช่วยให้ผู้สมัครใช้บริการเข้าถึงเนื้อหาในแอปหรือเว็บไซต์ของคุณได้

ระบุข้อกําหนดการเข้าถึงเนื้อหา

คุณต้องระบุข้อกําหนดในการเข้าถึงสําหรับแพ็กเกจเนื้อหาแต่ละรายการในแคตตาล็อก ดังนั้น โปรดพิจารณาคําถามต่อไปนี้

  • ผู้ใช้ต้องลงชื่อเข้าสู่ระบบแอปหรือแพลตฟอร์มเพื่อเข้าถึงเนื้อหาหรือไม่
  • ผู้ใช้จําเป็นต้องสมัครใช้บริการไหม

    การดําเนินการเพื่อรับชมเท่านั้น:

    • ผู้ใช้จําเป็นต้องสมัครใช้บริการจากผู้ให้บริการภายนอกไหม
    • คุณมีการสมัครใช้บริการแบบมีหลายระดับ หลายแพ็กเกจ หรือส่วนเสริมหรือไม่
  • การดําเนินการเพื่อการรับชมเท่านั้น: ผู้ใช้จําเป็นต้องเช่าหรือซื้อเนื้อหาหรือไม่

  • ข้อกําหนดในการเข้าถึงมีการเปลี่ยนแปลงเมื่อเวลาผ่านไปไหม

  • ข้อกําหนดในการเข้าถึงขึ้นอยู่กับตําแหน่งของอุปกรณ์ไหม

ประเภทข้อจํากัดการเข้าถึง

การจํากัดการเข้าถึงมี 2 ประเภทดังนี้

ประเภทเพย์วอลล์

คุณจะจํากัดสิทธิ์เข้าถึงเนื้อหาตามประเภทเพย์วอลล์ได้ ตารางต่อไปนี้แสดงรายละเอียดเกี่ยวกับเพย์วอลล์ประเภทต่างๆ

ประเภทเพย์วอลล์ ตัวอย่าง หมวดหมู่
ไม่จําเป็นต้องซื้อหรือเข้าสู่ระบบ เปรี๊ยะๆ nologinrequired
ผู้ใช้ต้องลงชื่อเข้าสู่ระบบ แต่ไม่จําเป็นต้องสมัครใช้บริการแบบชําระเงิน วูดู (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"
    }
  },
  ...
}

พื้นที่ทางภูมิศาสตร์

คุณต้องระบุพื้นที่ทางภูมิศาสตร์ที่เนื้อหาพร้อมให้บริการ ใช้พร็อพเพอร์ตี้รายการใดรายการหนึ่งหรือทั้ง 2 รายการต่อไปนี้

ผู้ใช้จะเข้าถึงเนื้อหาได้ หากตําแหน่งอุปกรณ์อยู่ในภูมิภาคที่ระบุเป็น eligibleRegion และไม่อยู่ในภูมิภาคที่ระบุใน ineligibleRegion

พร็อพเพอร์ตี้ eligibleRegion และ ineligibleRegion อนุญาตค่าต่อไปนี้

หากเนื้อหาพร้อมใช้งานทั่วโลก ให้ใช้ค่าพิเศษต่อไปนี้สําหรับ eligibleRegion

"eligibleRegion": "EARTH",

กรณีการใช้งานในภูมิภาคที่มีสิทธิ์

ตัวอย่างการใช้พร็อพเพอร์ตี้ eligibleRegion มีดังนี้

  • ตัวอย่างที่ 1: eligibleRegion พร้อมรายชื่อประเทศ
  • ตัวอย่างที่ 2: eligibleRegion มีออบเจ็กต์ GeoShape ที่มีรายการรหัสไปรษณีย์
  • ตัวอย่างที่ 3: eligibleRegion พร้อมด้วยออบเจ็กต์ GeoShape ที่มีรายการโค้ด Forwardการจัดเรียง FSA (รหัส FSA)
  • ตัวอย่างที่ 4: eligibleRegion ที่มีออบเจ็กต์ GeoShape ที่มีรหัส DMA
  • ตัวอย่างที่ 5: eligibleRegion พร้อมรายการออบเจ็กต์ GeoShape แต่ละโดเมนจะมีรหัส DMA
  • ตัวอย่างที่ 6: 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

eligibleRegion ที่มีออบเจ็กต์ GeoShape ซึ่งประกอบด้วยรายการโค้ดของ Forwardการจัดเรียงation Area (FSA)


"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/area2",
    "addressCountry": "CA",
    "postalCode": [
      "1A1",
      "K1A"
    ]
  }
}

ตัวอย่าง 4

eligibleRegion ที่มีออบเจ็กต์ GeoShape ที่มีรหัส DMA:


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

ตัวอย่างที่ 5

eligibleRegion ที่มีรายการออบเจ็กต์ GeoShape รายการ แต่ละโดเมนจะมีรหัส DMA ดังนี้


"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"
         }
      }
   ]
}

ตัวอย่างที่ 6

ineligibleRegion ที่มีรหัสไปรษณีย์ที่ถูกบล็อก:


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

ตัวระบุการให้สิทธิ์

ตัวระบุการให้สิทธิ์ entitlementId คือสตริงที่แสดงถึงการเข้าถึงกลุ่มเนื้อหาในแคตตาล็อกสื่อ Google จะทําตามขั้นตอนต่อไปนี้เพื่อพิจารณาว่าผู้ใช้เข้าถึงเนื้อหาของคุณหรือไม่

  1. เราทําการเรียก API ไปยังปลายทางการให้สิทธิ์เพื่อรับตัวระบุการให้สิทธิ์ของผู้ใช้
  2. เราจะค้นหาตัวระบุการให้สิทธิ์ของเนื้อหาซึ่งจําเป็นจากฟีดสื่อ
  3. เราจับคู่ entitlementId ของผู้ใช้กับพร็อพเพอร์ตี้ identifier ของออบเจ็กต์การสมัครใช้บริการสื่อในฟีดของคุณ หากมี entitlementId ที่ตรงกันอย่างน้อย 1 รายการ เราจะถือว่าผู้ใช้เข้าถึงเนื้อหาได้
รูปที่ 2 หนึ่งในตัวระบุการให้สิทธิ์ของผู้ใช้ตรงกับตัวระบุการให้สิทธิ์ที่จําเป็นของเนื้อหา

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
        ...
      },
      ...
    }
  },
  ...
}

กรณีการใช้งานการเข้าถึงทั่วไป

กรณีการใช้งานทั่วไปที่มีการเข้าถึงมีดังต่อไปนี้

  • ฟรี (ไม่จําเป็นต้องเข้าสู่ระบบ): เนื้อหาพร้อมใช้งานโดยไม่ต้องเข้าสู่ระบบ สมัครใช้บริการ หรือซื้อ
  • ฟรี (ต้องเข้าสู่ระบบ): ผู้ใช้ต้องลงชื่อเข้าสู่ระบบ แต่ไม่จําเป็นต้องสมัครใช้บริการ
  • การสมัครใช้บริการระดับเดียว: เนื้อหาต้องมีการสมัครใช้บริการ สมาชิกทุกคนจะเข้าถึงเนื้อหาเดียวกันได้ ไม่ว่าจะเป็นภาพยนตร์หรือตอน ไม่ว่าแพ็กเกจการสมัครใช้บริการจะเป็นอย่างไรก็ตาม
  • การสมัครใช้บริการแบบหลายชั้น: เนื้อหาต้องมีการสมัครใช้บริการ สมาชิกจะเข้าถึงเนื้อหาที่แตกต่างกันได้ ไม่ว่าจะเป็นภาพยนตร์หรือตอน โดยอิงตามระดับการสมัครใช้บริการ เช่น Silver กับ Gold
  • การสมัครใช้บริการเสริม: เนื้อหาต้องมีการสมัครใช้บริการ ผู้ติดตามจะเพิ่มเนื้อหาพรีเมียมนอกเหนือจากการสมัครใช้บริการปกติได้
  • การซื้อครั้งเดียว: ซื้อเนื้อหาได้หลังจากผู้ใช้เข้าถึงเนื้อหาได้โดยไม่มีกําหนด
  • รายการทีวีสด: การสมัครใช้บริการจะรวมสิทธิ์เข้าถึงช่องระดับท้องถิ่น ระดับประเทศ และระดับพรีเมียม
  • การสมัครใช้บริการของบุคคลที่สาม: เนื้อหากําหนดให้ผู้ใช้ต้องเข้าสู่ระบบกับผู้ให้บริการเคเบิลทีวี

ฟรี (ไม่ต้องเข้าสู่ระบบ)

ไม่ต้องเข้าสู่ระบบ

รับชมเนื้อหาได้โดยไม่ต้องเข้าสู่ระบบหรือสมัครใช้บริการ


{
  "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

การสมัครใช้บริการระดับเดียว

ในรูปแบบการสมัครใช้บริการระดับเดียว ผู้ให้บริการจะมี ระดับการสมัครใช้บริการ 1 ระดับ สมาชิกทุกคนจะเข้าถึงเนื้อหาเดียวกันได้ ไม่ว่าจะเป็นภาพยนตร์หรือตอน ไม่ว่าแพ็กเกจการสมัครใช้บริการจะเป็นอย่างไรก็ตาม


{
  "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"
    },
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  }
}

การสมัครใช้บริการแบบหลายชั้น

ในรูปแบบการสมัครใช้บริการที่แบ่งตามลําดับ ผู้ให้บริการจะมีระดับการสมัครใช้บริการหลายระดับ เช่น Gold, Silver และ Bronze ผู้ใช้ที่มีการสมัครใช้บริการระดับที่สูงกว่าจะเข้าถึงเนื้อหาระดับที่ต่ํากว่าทั้งหมดได้ แต่ผู้ใช้ที่สมัครใช้บริการระดับที่ต่ํากว่าจะเข้าถึงเนื้อหาระดับบนไม่ได้

รูปที่ 3 โมเดลการสมัครใช้บริการที่แบ่งตามลําดับและแสดงถึงการให้สิทธิ์

ลองพิจารณาสถานการณ์ต่อไปนี้

  • Jane สมัครใช้บริการระดับ Gold ปลายทางการให้สิทธิ์จะแสดงตัวระบุ entitlementId ต่อไปนี้
    • example.com:bronze
    • example.com:silver
    • example.com:gold
  • สมชายสมัครใช้บริการระดับบรอนซ์ ปลายทางการให้สิทธิ์แสดง entitlementId ต่อไปนี้
    • example.com:bronze
  • ฟีดการดําเนินการสื่ออธิบายข้อกําหนดต่อไปนี้
    • ภาพยนตร์ ก ต้องใช้ example.com:bronze
    • ภาพยนตร์ B ต้องใช้ example.com:silver

ในสถานการณ์นี้ Google จะกําหนดระดับการเข้าถึงต่อไปนี้สําหรับ Jane และ John

  • ทั้ง Jane และ John มีสิทธิ์เข้าถึงภาพยนตร์ A
  • Jane เข้าถึงภาพยนตร์ B ได้ แต่ John เข้าถึงไม่ได้
{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "subscription",
    "requiresSubscription": {
      "@type": "MediaSubscription",
      "@id": "http://www.example.com/basic_subscription",
      "name": "Bronze",
      "commonTier": true
      ...
    },
    ...
  }
}

การสมัครใช้บริการส่วนเสริม

ในรูปแบบการสมัครใช้บริการส่วนเสริม ผู้ให้บริการจะอนุญาตให้ผู้ใช้ขยายการให้สิทธิ์และเพิ่มช่องไปยังการสมัครใช้บริการพื้นฐาน ผู้ใช้จะเพิ่มช่องได้มากเท่าที่ต้องการ

รูปที่ 4 รูปแบบการสมัครใช้บริการส่วนเสริมและการนําเสนอการให้สิทธิ์

ลองพิจารณาสถานการณ์ต่อไปนี้

  • Jane มี PRO และ Sportz เพิ่มเติมจากการสมัครใช้บริการพื้นฐาน ปลายทางการให้สิทธิ์จะแสดงตัวระบุ entitlementId ต่อไปนี้
    • example.com:basic
    • example.com:pro
    • example.com:sportz
  • วิชัยสมัครใช้บริการแบบพื้นฐานเท่านั้น ปลายทางการให้สิทธิ์แสดง entitlementId ต่อไปนี้
    • example.com:basic
  • ฟีดการดําเนินการสื่ออธิบายข้อกําหนดต่อไปนี้
    • ภาพยนตร์ ก ต้องใช้ example.com:basic
    • ภาพยนตร์ B ต้องใช้ example.com:pro

ในสถานการณ์นี้ Google จะกําหนดระดับการเข้าถึงต่อไปนี้สําหรับ Jane และ John

  • ทั้ง Jane และ John มีสิทธิ์เข้าถึงภาพยนตร์ A
  • Jane เข้าถึงภาพยนตร์ B ได้ แต่ John เข้าถึงไม่ได้
{
  "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
        }
    }
  }
}

การซื้อครั้งเดียว

การซื้อ

เนื้อหาจะใช้ได้ไม่จํากัดระยะเวลาหลังจากการซื้อ


{
  "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
  • ใส่ expectAcceptanceOf ใน actionAccessibilityRequirement เพื่อระบุราคาเช่า

รายการทีวีสด

ในฟีดการดําเนินการสื่อ คุณจํากัดการเข้าถึงช่องหรือเหตุการณ์ของรายการทีวีสดโดยอิงตามเงื่อนไขผู้ใช้ 2 ข้อดังต่อไปนี้ได้

  • ตําแหน่งอุปกรณ์ของผู้ใช้

    หากต้องการจํากัดสิทธิ์เข้าถึงช่องทีวี ให้ระบุพื้นที่ที่ผู้ใช้มีสิทธิ์เข้าถึง โดยปกติ เงื่อนไขนี้จะมีผลกับช่องทีวีที่ออกอากาศในพื้นที่

  • สถานะบัญชีของผู้ใช้

    หากการเข้าถึงช่องทีวีขึ้นอยู่กับการตั้งค่าระดับบัญชีของผู้ใช้ ให้ใช้ตัวระบุการให้สิทธิ์เพื่อแสดงข้อจํากัด

    โดยปกติ เงื่อนไขนี้จะมีผลกับกรณีการใช้งานต่อไปนี้

    • แพ็กเกจ: ช่องระดับประเทศมักจะรวมอยู่ในแพ็กเกจ และผู้ใช้เลือกแพ็กเกจที่ต้องการสมัครใช้บริการ
    • ส่วนเสริม: ช่องพรีเมียมบางช่องกําหนดให้ผู้ใช้เลือกเพิ่มช่องเพิ่มเติมในการสมัครใช้บริการได้
    • เครือข่ายกีฬาระดับภูมิภาค (RSN): โดยปกติแล้ว ระบบจะตอบกลับ RSN กับตําแหน่ง "บ้าน" ของผู้ใช้ ผู้ใช้จะดูเนื้อหาบน 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"
      }
    },
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  }
}
  • เพิ่ม authenticator เพื่อระบุว่าบริการอื่นตรวจสอบสิทธิ์ของผู้ติดตาม เช่น HBO GO ต้องมีการสมัครใช้บริการจากผู้ให้บริการเคเบิล

แพ็กเกจระดับที่พบบ่อย

เนื้อหาทั่วไปของระดับจะพร้อมให้บริการแก่ผู้ติดตามทุกรายไม่ว่าแพ็กเกจการสมัครใช้บริการจะเป็นอย่างไรก็ตาม ระดับร่วมจะมีผลกับเนื้อหาทั้งหมดที่มีค่า category จาก subscription ดูข้อมูลเพิ่มเติมเกี่ยวกับพร็อพเพอร์ตี้ category ได้ที่ส่วนประเภทเพย์วอลล์

ทําไมจึงต้องใช้แพ็กเกจ Tier ทั่วไป

ผลิตภัณฑ์ Google หลายอย่างจะให้คําแนะนําเกี่ยวกับทีวีและภาพยนตร์แก่ผู้ใช้ ซึ่งรวมถึง Google Search, Android TV และ Google Assistant Google ต้องทราบว่าผู้ใช้จะเข้าถึงเนื้อหาใดได้บ้างผ่านการใช้ระดับร่วม เพื่อระบุความคาดหวังของผู้ใช้เกี่ยวกับต้นทุน และ Google ต้องเข้าใจด้วยว่า ผู้ชมดูเนื้อหาแบบไหนได้

Google ขอแนะนําให้ใช้ระดับที่มีให้ใช้งานทั่วไป เว้นแต่คุณจะรองรับ entitleation API API ช่วยให้ Google ทราบถึงชื่อระดับที่ไม่ใช่แบบปกติซึ่งผู้ใช้แต่ละคนเข้าถึงได้

ฉันควรสร้างแพ็กเกจระดับปกติเมื่อใด

จําเป็นต้องใช้แพ็กเกจ Tier ทั่วไปเมื่อบริการของคุณมีเนื้อหาที่พร้อมให้บริการสําหรับสมาชิกทุกคน ซึ่งรวมถึงบริการที่มีแพ็กเกจเดียว และบริการที่เสนอแพ็กเกจหรือส่วนเสริมหลายรายการ

ผู้ให้บริการที่ไม่มีเนื้อหาที่พร้อมให้บริการสําหรับสมาชิกทุกรายไม่จําเป็นต้องสร้างแพ็กเกจระดับทั่วไป เช่น ผู้ให้บริการที่เสนอเนื้อหาพิเศษเฉพาะ ให้รวมอยู่ในแพ็กเกจทั้งหมดของตน

ตัวอย่างระดับทั่วไปของ

ตัวอย่างของระดับทั่วไปมีดังนี้

การสมัครใช้บริการแบบเป็นขั้น

ในรูปแบบการสมัครใช้บริการที่แบ่งเป็นระดับ ผู้ให้บริการจะมีระดับการสมัครใช้บริการหลายระดับ เช่น ระดับ Gold, Silver และ Bronze ผู้ใช้ที่สมัครใช้บริการในระดับที่สูงกว่าจะมีสิทธิ์เข้าถึงเนื้อหาทั้งหมดในระดับที่ต่ํากว่าได้ ผู้ใช้ที่สมัครใช้บริการระดับที่ต่ํากว่าจะไม่มีสิทธิ์เข้าถึงเนื้อหาในระดับที่สูงกว่า รูปภาพต่อไปนี้คือตัวอย่างของโครงสร้างแพ็กเกจ

ระดับ Gold จะมีเนื้อหาทั้งหมดของระดับซิลเวอร์ ซึ่งทั้งหมดเป็นของระดับ Bronze
รูปที่ 5 โครงสร้างแพ็กเกจการสมัครใช้บริการแบบเป็นขั้น

ในตัวอย่างรหัสต่อไปนี้ แพ็กเกจ Bronze จะเป็นระดับทั่วไปเนื่องจากผู้ใช้ทั้งหมดมีสิทธิ์เข้าถึงเนื้อหาทั้งหมดในระดับนั้น

"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 ผสมผสานกันอย่างไร
รูปที่ 6 โครงสร้างแพ็กเกจการสมัครใช้บริการส่วนเสริม

หากมีช่องสําหรับผู้ใช้ทุกคนและไม่มีค่าบริการสําหรับช่อง คุณสามารถรวมแพ็กเกจเข้ากับแพ็กเกจ Tier ทั่วไปได้

ในตัวอย่างโค้ดต่อไปนี้ แพ็กเกจพื้นฐานเป็นระดับทั่วไปเนื่องจากผู้ใช้ทั้งหมดมีสิทธิ์เข้าถึงเนื้อหาทั้งหมดในแพ็กเกจนี้

"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 ติดป้ายกํากับ &quot;Common Tier&quot;
รูปที่ 7 โครงสร้างแพ็กเกจที่มีเนื้อหาที่ตัดกัน

ในตัวอย่างโค้ดต่อไปนี้ ผู้ให้บริการจะมีแพ็กเกจ 3 แพ็กเกจที่เนื้อหาบางส่วนซ้อนทับกันในแพ็กเกจทั้งหมด ในกรณีนี้ จําเป็นต้องใช้แพ็กเกจที่ 4 ซึ่งแสดงถึงระดับทั่วไป โดยต้องมีเนื้อหาทั้งหมด ในทั้ง 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
    },
    {
      "@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 จะแยกจากกันโดยสิ้นเชิง
รูปที่ 8 โครงสร้างแพ็กเกจที่ไม่มีเนื้อหาที่ซ้อนทับกัน

ในตัวอย่างต่อไปนี้ ผู้ให้บริการมีแพ็กเกจ 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
    }
  ],

ปลายทางการให้สิทธิ์

ใช้ข้อมูลจากส่วนนี้เพื่อโฮสต์ปลายทาง HTTPS ที่แสดงการให้สิทธิ์ที่เชื่อมโยงกับผู้ใช้

วิชาบังคับก่อน

ก่อนเริ่มดําเนินการ โปรดยืนยันว่าบริการของคุณรองรับขั้นตอน OAuth 2.0 กับ Google

ส่งคำขอ

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 ซึ่งรวมถึงเขตเวลา ดูรายละเอียดเพิ่มเติมได้ที่วันที่หมดอายุ

วันที่หมดอายุ

มี 2 พร็อพเพอร์ตี้ในการตอบกลับปลายทางที่ดําเนินการกับวันที่หมดอายุ ได้แก่ subscription.expiration_date และ entitlements.expiration_date โดยจะเลือกป้อนเพียงอย่างใดอย่างหนึ่งก็ได้ แต่ไม่ใช่ทั้ง 2 อย่าง ขึ้นอยู่กับรุ่นที่คุณสมัครใช้บริการ

รูปแบบการสมัครใช้บริการ
สมาชิกทุกคนมีสิทธิ์เข้าถึงแคตตาล็อกสตรีมมิงของคุณ เนื่องจากไม่จําเป็นต้องระบุพร็อพเพอร์ตี้ 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 จะรีเฟรชข้อมูลการให้สิทธิ์ของผู้ใช้ทุกๆ 6 ชั่วโมง เพื่อให้การสืบค้นสูงสุดต่อวินาที (QPS) ราบรื่นยิ่งขึ้น Google จะกระจายคําค้นหาไปยังปลายทางของคุณอย่างสม่ําเสมอตลอดระยะเวลา ดังนั้นคุณจะประมาณ QPS เฉลี่ยที่คาดหวังสําหรับปลายทางได้ด้วยสูตรต่อไปนี้

QPS เฉลี่ยที่คาดหวัง = <จํานวนผู้ใช้ทั้งหมด> / 21,600 วินาที (6 ชั่วโมง x 60 นาที x 60 วินาที)

หากคุณรองรับผู้ใช้จํานวนมาก Google จะปรับช่วง 6 ชั่วโมงนี้ หากจําเป็น ให้ติดต่อ Google เพื่อพูดคุยเรื่องการกําหนดค่า

ติดต่อ Google

เมื่อปลายทางพร้อมแล้ว ให้ติดต่อ Google เพื่อแจ้ง URL ของปลายทาง

พร็อพเพอร์ตี้ข้อกําหนดการเข้าถึงการดําเนินการ

ดูข้อมูลอ้างอิงได้ที่ส่วนคุณสมบัติของข้อกําหนดการเข้าถึงการดําเนินการ