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

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

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

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

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

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

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

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

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

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

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

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

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

คุณสามารถจำกัดการเข้าถึงเนื้อหาตามประเภทของ paywall ได้ ตารางต่อไปนี้แสดงรายละเอียดของประเภทต่างๆ ของ paywall

ประเภทของเพย์วอลล์ ตัวอย่าง หมวดหมู่
โดยไม่จำเป็นต้องซื้อหรือเข้าสู่ระบบ Crackle nologinrequired
ผู้ใช้ต้องเข้าสู่ระบบ แต่ไม่จำเป็นต้องสมัครใช้บริการแบบชำระเงิน Vudu (AVOD) free
ผู้ใช้ต้องมีการสมัครใช้บริการที่ใช้งานอยู่ การเข้าถึงจะไม่ขึ้นอยู่กับระดับการสมัครใช้บริการ Netflix

subscription

ผู้ใช้ต้องมีการสมัครใช้บริการที่ใช้งานอยู่ สิทธิ์เข้าถึงจะขึ้นอยู่กับระดับการสมัครใช้บริการ Hulu (ส่วนเสริม)

subscription

เนื้อหาจะพร้อมให้รับชมเป็นระยะเวลาหนึ่งหลังจากที่ซื้อ 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

"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 จะดำเนินการตามขั้นตอนต่อไปนี้เพื่อพิจารณาว่าผู้ใช้มีสิทธิ์เข้าถึงเนื้อหาของคุณหรือไม่

  1. เราจะเรียก API ไปยังปลายทางการให้สิทธิ์ของคุณเพื่อรับตัวระบุการให้สิทธิ์ของผู้ใช้
  2. เราจะค้นหาตัวระบุการให้สิทธิ์ที่จำเป็นของเนื้อหาจากฟีด MediaAction
  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
        ...
      },
      ...
    }
  },
  ...
}

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

ต่อไปนี้คือ 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"
    }
  }
}

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

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

รูปที่ 3 รูปแบบการสมัครใช้บริการแบบเป็นชั้นและการแสดงสิทธิ์

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

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

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

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

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

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

  • เจนมีการสมัครใช้บริการ 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 เข้าใจภาพยนตร์/รายการทีวีระดับที่ไม่ใช่ระดับทั่วไปที่ผู้ใช้แต่ละรายเข้าถึงได้

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

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

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

ตัวอย่างระดับที่พบบ่อย

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

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

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

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

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

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

ส่วนเสริม

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

ผู้ใช้ทุกคนจะเริ่มด้วยช่องพื้นฐาน และเลือกเพิ่มช่อง PRO, Sportz และ Moviemax ร่วมกันได้
รูปที่ 6 โครงสร้างแพ็กเกจการสมัครใช้บริการของส่วนเสริม

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

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

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

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

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

ติดต่อ Google

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

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

ดูข้อมูลอ้างอิงได้ในส่วนพร็อพเพอร์ตี้ข้อกำหนดการเข้าถึงการดำเนินการ