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

ระบุข้อกำหนดในการเข้าถึงเนื้อหา
คุณต้องระบุข้อกำหนดการเข้าถึงสำหรับแพ็กเกจเนื้อหาแต่ละรายการในแคตตาล็อก เมื่อดำเนินการดังกล่าว ให้พิจารณาคำถามต่อไปนี้
- ผู้ใช้ต้องเข้าสู่ระบบแอปหรือแพลตฟอร์มเพื่อเข้าถึงเนื้อหาหรือไม่
ผู้ใช้ต้องสมัครใช้บริการหรือไม่
การดำเนินการเพื่อรับชมเท่านั้น:
- ผู้ใช้ต้องสมัครใช้บริการจากผู้ให้บริการภายนอกหรือไม่
- คุณเสนอการสมัครใช้บริการแบบเป็นลำดับขั้น แบบแพ็กเกจหลายรายการ หรือแบบเสริมไหม
การดำเนินการที่ดูเท่านั้น: ผู้ใช้ต้องเช่าหรือซื้อเนื้อหาไหม
ข้อกำหนดในการเข้าถึงเปลี่ยนแปลงไปตามเวลาไหม
ข้อกำหนดการเข้าถึงขึ้นอยู่กับตำแหน่งของอุปกรณ์ไหม
ประเภทการจํากัดการเข้าถึง
การจํากัดการเข้าถึงมี 2 ประเภท ได้แก่
ประเภทของเพย์วอลล์
คุณสามารถจำกัดการเข้าถึงเนื้อหาตามประเภทของ paywall ได้ ตารางต่อไปนี้แสดงรายละเอียดของประเภทต่างๆ ของ paywall
ประเภทของเพย์วอลล์ | ตัวอย่าง | หมวดหมู่ |
---|---|---|
โดยไม่จำเป็นต้องซื้อหรือเข้าสู่ระบบ | Crackle | nologinrequired |
ผู้ใช้ต้องเข้าสู่ระบบ แต่ไม่จำเป็นต้องสมัครใช้บริการแบบชำระเงิน | Vudu (AVOD) | free |
ผู้ใช้ต้องมีการสมัครใช้บริการที่ใช้งานอยู่ การเข้าถึงจะไม่ขึ้นอยู่กับระดับการสมัครใช้บริการ | Netflix |
|
ผู้ใช้ต้องมีการสมัครใช้บริการที่ใช้งานอยู่ สิทธิ์เข้าถึงจะขึ้นอยู่กับระดับการสมัครใช้บริการ | Hulu (ส่วนเสริม) |
|
เนื้อหาจะพร้อมให้รับชมเป็นระยะเวลาหนึ่งหลังจากที่ซื้อ | Vudu | rental |
เนื้อหาจะพร้อมให้รับชมได้โดยไม่มีกำหนดสิ้นสุดหลังจากซื้อ | Vudu | purchase |
เนื้อหาพร้อมให้รับชมผ่านการสมัครใช้บริการเคเบิล | HBO Go | externalSubscription |
ประเภท paywall สําหรับการดําเนินการเพื่อรับชม
หากต้องการระบุประเภท paywall ของเนื้อหาสําหรับการดําเนินการของวิดีโอ ให้ใช้พร็อพเพอร์ตี้ 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"
}
},
...
}
ประเภท paywall สำหรับการดำเนินการเพื่อฟัง
หากต้องการระบุประเภทของ paywall เนื้อหาสําหรับการดําเนินการฟัง ให้ใช้พร็อพเพอร์ตี้ 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"
}
},
...
}
พื้นที่ทางภูมิศาสตร์
คุณต้องระบุพื้นที่ทางภูมิศาสตร์ที่เนื้อหาพร้อมให้บริการ ใช้พร็อพเพอร์ตี้ต่อไปนี้อย่างน้อย 1 รายการ
- พร็อพเพอร์ตี้
eligibleRegion
ของออบเจ็กต์ข้อกำหนดเฉพาะการเข้าถึงการดำเนินการ ต้องระบุพร็อพเพอร์ตี้นี้ - พร็อพเพอร์ตี้
ineligibleRegion
ของออบเจ็กต์ข้อกำหนดเฉพาะการเข้าถึงการดำเนินการ
ผู้ใช้จะเข้าถึงเนื้อหาได้หากตำแหน่งอุปกรณ์อยู่ภายในภูมิภาคที่ระบุใน eligibleRegion
และไม่ได้อยู่ภายในภูมิภาคที่ระบุใน ineligibleRegion
พร็อพเพอร์ตี้ eligibleRegion
และ ineligibleRegion
ยอมรับค่าต่อไปนี้
- รายการ
Country
,City
และState
- ออบเจ็กต์
GeoShape
ดูข้อกำหนดโดยละเอียดได้ในส่วนพร็อพเพอร์ตี้GeoShape
- รายการออบเจ็กต์
GeoShape
รายการ
หากเนื้อหาพร้อมให้บริการทั่วโลก ให้ใช้ค่าพิเศษต่อไปนี้สำหรับ eligibleRegion
"eligibleRegion": "EARTH",
กรณีการใช้งาน eligibleRegion
ต่อไปนี้คือตัวอย่าง Use Case ของพร็อพเพอร์ตี้ eligibleRegion
- ตัวอย่างที่ 1:
eligibleRegion
ที่มีรายชื่อประเทศ - ตัวอย่างที่ 2:
eligibleRegion
ที่มีออบเจ็กต์GeoShape
ซึ่งมีรายการรหัสไปรษณีย์ - ตัวอย่างที่ 3:
eligibleRegion
ที่มีออบเจ็กต์GeoShape
ซึ่งมีรายการรหัส Forward Sortation Area (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 Sortation 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 จะดำเนินการตามขั้นตอนต่อไปนี้เพื่อพิจารณาว่าผู้ใช้มีสิทธิ์เข้าถึงเนื้อหาของคุณหรือไม่
- เราจะเรียก API ไปยังปลายทางการให้สิทธิ์ของคุณเพื่อรับตัวระบุการให้สิทธิ์ของผู้ใช้
- เราจะค้นหาตัวระบุการให้สิทธิ์ที่จำเป็นของเนื้อหาจากฟีด MediaAction
- เราจะจับคู่
entitlementId
ของผู้ใช้กับพร็อพเพอร์ตี้identifier
ของออบเจ็กต์การสมัครใช้บริการสื่อในฟีด หากมีentitlementId
อย่างน้อย 1 รายการตรงกัน เราจะถือว่าผู้ใช้มีสิทธิ์เข้าถึงเนื้อหา

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 ... }, ... } }, ... }
กรณีการใช้งานการเข้าถึงทั่วไป
ต่อไปนี้คือ Use Case การเข้าถึงทั่วไป
- ฟรี (ไม่ต้องเข้าสู่ระบบ): เนื้อหาพร้อมให้รับชมโดยไม่ต้องเข้าสู่ระบบ สมัครใช้บริการ หรือซื้อ
- ฟรี (ต้องเข้าสู่ระบบ): เนื้อหากำหนดให้ผู้ใช้ต้องเข้าสู่ระบบ แต่ไม่ต้องสมัครใช้บริการ
- การสมัครใช้บริการระดับเดียว: เนื้อหาต้องมีการสมัครใช้บริการ สมาชิกทุกคนจะเข้าถึงเนื้อหาเดียวกันได้ ไม่ว่าจะเป็นภาพยนตร์หรือตอนต่างๆ ไม่ว่าจะสมัครใช้บริการแพ็กเกจใดก็ตาม
- การสมัครใช้บริการแบบหลายระดับ: เนื้อหาต้องมีการสมัครใช้บริการ โดยผู้สมัครใช้บริการจะเข้าถึงเนื้อหาต่างๆ ได้ ไม่ว่าจะเป็นภาพยนตร์หรือตอนต่างๆ โดยขึ้นอยู่กับระดับการสมัครใช้บริการ เช่น 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
การสมัครใช้บริการระดับเดียว
ในรูปแบบการสมัครใช้บริการแบบชั้นเดียว ผู้ให้บริการจะมีระดับการสมัครใช้บริการเพียงระดับเดียว สมาชิกทุกคนจะเข้าถึงเนื้อหาเดียวกันได้ ไม่ว่าจะเป็นภาพยนตร์หรือตอนต่างๆ โดยไม่คำนึงถึงแพ็กเกจการสมัครใช้บริการ
{ "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" } } }
การสมัครใช้บริการแบบหลายระดับ
ในรูปแบบการสมัครใช้บริการแบบเป็นขั้น ผู้ให้บริการจะมีระดับการสมัครใช้บริการหลายระดับ เช่น โกลด์ ซิลเวอร์ และบรอนซ์ ผู้ใช้ที่สมัครใช้บริการระดับสูงขึ้นจะเข้าถึงเนื้อหาระดับล่างทั้งหมดได้ อย่างไรก็ตาม ผู้ใช้ที่สมัครใช้บริการระดับล่างจะไม่สามารถเข้าถึงเนื้อหาระดับบนได้

พิจารณาสถานการณ์ต่อไปนี้
- Jane สมัครใช้บริการระดับ Gold ปลายทางการให้สิทธิ์จะแสดงตัวระบุ
entitlementId
ต่อไปนี้example.com:bronze
example.com:silver
example.com:gold
- John สมัครใช้บริการระดับ Bronze ปลายทางการให้สิทธิ์ของคุณแสดงผล
entitlementId
ดังต่อไปนี้example.com:bronze
- ฟีดการดําเนินการกับสื่อจะอธิบายข้อกําหนดต่อไปนี้
- ภาพยนตร์ กต้องใช้
example.com:bronze
- ภาพยนตร์ ขต้องใช้
example.com:silver
- ภาพยนตร์ กต้องใช้
ในกรณีนี้ Google จะกำหนดระดับการเข้าถึงต่อไปนี้ให้กับ Jane และ John
- ทั้งเจนและจิรพงศ์มีสิทธิ์เข้าถึงภาพยนตร์ ก
- Jane มีสิทธิ์เข้าถึง Movie B แต่ John ไม่มีสิทธิ์เข้าถึง
{ "actionAccessibilityRequirement": { "@type": "ActionAccessSpecification", "category": "subscription", "requiresSubscription": { "@type": "MediaSubscription", "@id": "http://www.example.com/basic_subscription", "name": "Bronze", "commonTier": true ... }, ... } }
การสมัครใช้บริการเสริม
ในรูปแบบการสมัครใช้บริการส่วนเสริม ผู้ให้บริการอนุญาตให้ผู้ใช้ขยายสิทธิ์และเพิ่มช่องในการสมัครใช้บริการพื้นฐาน ผู้ใช้จะเพิ่มแชแนลได้มากเท่าที่ต้องการ

พิจารณาสถานการณ์ต่อไปนี้
- เจนมีการสมัครใช้บริการ PRO และ Sportz นอกเหนือจากการสมัครใช้บริการ Basic ปลายทางการให้สิทธิ์จะแสดงตัวระบุ
entitlementId
ต่อไปนี้example.com:basic
example.com:pro
example.com:sportz
- John มีการสมัครใช้บริการพื้นฐานเท่านั้น ปลายทางการให้สิทธิ์ของคุณแสดง
entitlementId
ต่อไปนี้example.com:basic
- ฟีดการดําเนินการกับสื่อจะอธิบายข้อกําหนดต่อไปนี้
- ภาพยนตร์ กต้องใช้
example.com:basic
- ภาพยนตร์ ขต้องใช้
example.com:pro
- ภาพยนตร์ กต้องใช้
ในกรณีนี้ Google จะกำหนดระดับการเข้าถึงต่อไปนี้ให้กับ Jane และ John
- ทั้งเจนและจิรพงศ์มีสิทธิ์เข้าถึงภาพยนตร์ ก
- Jane มีสิทธิ์เข้าถึง Movie 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
ได้ที่ส่วนประเภท paywall
เหตุใดจึงต้องใช้แพ็กเกจระดับทั่วไป
ผลิตภัณฑ์หลายอย่างของ Google แสดงรายการทีวีและภาพยนตร์แนะนำแก่ผู้ใช้ ซึ่งรวมถึง Google Search, Android TV และ Google Assistant Google ต้องเข้าใจว่าเนื้อหาใดบ้างที่พร้อมให้บริการแก่สมาชิกทุกคนผ่านการใช้ระดับทั่วไป เพื่อกำหนดความคาดหวังของผู้ใช้เกี่ยวกับค่าใช้จ่าย นอกจากนี้ Google ยังต้องเข้าใจว่าเนื้อหาใดบ้างที่พร้อมให้บริการแก่ผู้สมัครใช้บริการที่มีแพ็กเกจการสมัครใช้บริการที่เฉพาะเจาะจง
Google ขอแนะนำให้ใช้ภาพยนตร์/รายการทีวีที่มีให้บริการในแพ็กเกจระดับทั่วไป เว้นแต่คุณจะรองรับ entitlement API 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 } ],
ส่วนเสริม
ในรูปแบบการสมัครใช้บริการส่วนเสริม ผู้ให้บริการอนุญาตให้ผู้ใช้ขยายสิทธิ์และเพิ่มช่องในการสมัครใช้บริการพื้นฐาน ผู้ใช้จะเพิ่มแชแนลได้มากเท่าที่ต้องการ รูปภาพต่อไปนี้เป็นตัวอย่างโครงสร้างแพ็กเกจ

หากมีช่องที่พร้อมให้บริการแก่ผู้ใช้ทุกคนและไม่มีค่าใช้จ่ายสำหรับช่องนั้น คุณสามารถผสานแพ็กเกจเข้ากับแพ็กเกจระดับทั่วไปได้
ในตัวอย่างโค้ดต่อไปนี้ แพ็กเกจพื้นฐานคือระดับทั่วไปเนื่องจากผู้ใช้ทุกคนมีสิทธิ์เข้าถึงเนื้อหาทั้งหมดในแพ็กเกจนี้
"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 } ],
แพ็กเกจที่มีเนื้อหาทับซ้อนกัน
ในโมเดลเนื้อหาที่แพ็กเกจมีเนื้อหาที่ทับซ้อนกัน ผู้ให้บริการจะขายแพ็กเกจที่มีเนื้อหาบางส่วนจากแพ็กเกจอื่นๆ รูปภาพต่อไปนี้เป็นตัวอย่างโครงสร้างแพ็กเกจ

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

ในตัวอย่างต่อไปนี้ ผู้ให้บริการเสนอแพ็กเกจ 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 |
จำเป็น พร็อพเพอร์ตี้นี้อาจมีค่าดังต่อไปนี้
|
subscription.expiration_date |
ไม่บังคับ วันที่หมดอายุของการให้สิทธิ์นี้ในรูปแบบISO 8601 ซึ่งระบุเขตเวลาด้วย โปรดดูรายละเอียดเพิ่มเติมที่หัวข้อวันที่หมดอายุ |
entitlements |
ไม่บังคับ พร็อพเพอร์ตี้รูทนี้มีค่า |
entitlements.entitlement |
ต้องระบุหากการเข้าถึงแคตตาล็อกสตรีมมิงแตกต่างกันไปตามประเภทการสมัครใช้บริการ พร็อพเพอร์ตี้นี้มี |
entitlements.expiration_date |
ไม่บังคับ วันที่หมดอายุของการสมัครใช้บริการนี้ในรูปแบบISO 8601 ซึ่งระบุเขตเวลาด้วย โปรดดูรายละเอียดเพิ่มเติมที่หัวข้อวันที่หมดอายุ |
วันที่หมดอายุ
คำตอบของปลายทางมีพร็อพเพอร์ตี้ 2 รายการที่เกี่ยวข้องกับวันที่หมดอายุ ได้แก่ subscription.expiration_date
และ entitlements.expiration_date
คุณจะใส่ข้อมูลอย่างใดอย่างหนึ่งหรือไม่ใส่เลยก็ได้ แต่จะใส่ทั้ง 2 อย่างไม่ได้ คุณจะเลือกใช้รูปแบบใดก็ได้ ทั้งนี้ขึ้นอยู่กับรูปแบบการสมัครใช้บริการ
รูปแบบการสมัครใช้บริการ | |
---|---|
สิทธิ์เข้าถึงแคตตาล็อกสตรีมมิงของคุณจะเหมือนกันสำหรับผู้ติดตามทุกคน | เนื่องจากคุณไม่จำเป็นต้องระบุพร็อพเพอร์ตี้ entitlements ให้ระบุ subscription.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 ชั่วโมง Google จะกระจายคําค้นหาไปยังปลายทางของคุณอย่างสม่ำเสมอเมื่อเวลาผ่านไป เพื่อทำให้จำนวนคำค้นหาสูงสุดต่อวินาที (QPS) ราบรื่น คุณจึงประมาณ QPS เฉลี่ยที่คาดไว้สําหรับอุปกรณ์ปลายทางได้ด้วยสูตรต่อไปนี้
QPS เฉลี่ยที่คาดไว้ = <จํานวนผู้ใช้ทั้งหมด> / 21,600 วินาที (6 ชั่วโมง x 60 นาที x 60 วินาที)
หากคุณรองรับผู้ใช้จํานวนมาก Google สามารถปรับช่วงเวลา 6 ชั่วโมงได้ หากจำเป็น โปรดติดต่อ Google เพื่อพูดคุยเกี่ยวกับการกำหนดค่า
ติดต่อ Google
เมื่อปลายทางพร้อมแล้ว ให้ติดต่อ Google เพื่อแจ้ง URL ของปลายทาง
พร็อพเพอร์ตี้ข้อกําหนดเฉพาะการเข้าถึงการดําเนินการ
ดูข้อมูลอ้างอิงได้ในส่วนพร็อพเพอร์ตี้ข้อกำหนดการเข้าถึงการดำเนินการ