يفضّل المستخدمون مشاهدة أو الاستماع إلى المحتوى الذي يمكنهم الوصول إليه بالفعل، مثل المحتوى المتوفر بموجب الاشتراك الحالي إذا عرفت Google المحتوى الذي يمكن للمستخدم على تطبيقك أو منصتك، فيمكن لـ Google إنشاء نتيجة بحث أفضل أو الاستجابة لتوجيه المستخدم إلى هذا المحتوى.
تحديد متطلبات الوصول إلى المحتوى
يجب عليك تحديد متطلبات الوصول لكل حزمة محتوى في . عند القيام بذلك، ضع في اعتبارك الأسئلة التالية:
- هل يحتاج المستخدمون إلى تسجيل الدخول إلى تطبيقك أو نظامك الأساسي للوصول إلى المحتوى؟
هل يحتاج المستخدمون إلى اشتراك؟
إجراءات المشاهدة فقط:
- هل يحتاج المستخدمون إلى اشتراك من مقدم خدمة خارجي؟
- هل لديك اشتراك متعدّد المستويات أو حِزم متعدّدة أو إضافات؟
إجراءات المشاهدة فقط: هل يحتاج المستخدمون إلى استئجار المحتوى أو شراؤه؟
هل تتغير متطلبات الوصول بمرور الوقت؟
هل تعتمد متطلبات الوصول على الموقع الجغرافي للجهاز؟
أنواع قيود الوصول
هناك نوعان من قيود الوصول:
نوع جدار الدفع
يمكنك حظر الوصول إلى المحتوى حسب نوع جدار الدفع. يعرض الجدول التالي تفاصيل الأنواع المختلفة لنظام حظر الاشتراك غير المدفوع:
نوع جدار الدفع | مثال | الفئة |
---|---|---|
لست بحاجة إلى الشراء أو تسجيل الدخول. | Crackle | nologinrequired |
ويجب أن يسجّل المستخدم دخوله، ولكنه لا يحتاج إلى اشتراك مدفوع. | Vudu (AVOD) | free |
يجب أن يكون لدى المستخدم اشتراك نشط. يكون الوصول مستقلاً عن فئة الاشتراك | Netflix |
|
يجب أن يكون لدى المستخدم اشتراك نشط. يعتمد الوصول على فئة الاشتراك | Hulu (إضافات) |
|
ويكون المحتوى متاحًا لفترة محدودة بعد عملية الشراء. | 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
تتيح السمتان eligibleRegion
وineligibleRegion
ما يلي:
القيم التالية:
- قائمة بـ
Country
،City
وState
- حاسمة
GeoShape
الخاص بك. يمكنك الاطّلاع على موقعان (GeoShape
) للاطلاع على المتطلبات التفصيلية. - قائمة تضم
GeoShape
عناصر
إذا كان المحتوى متاحًا على مستوى العالم، استخدِم القيمة الخاصة التالية
eligibleRegion
:
"eligibleRegion": "EARTH",
حالات الاستخدام المؤهَّلة Region
في ما يلي أمثلة على حالات استخدام السمة eligibleRegion
:
- المثال 1:
eligibleRegion
مع قائمة بالبلدان. - المثال 2:
eligibleRegion
مع كائنGeoShape
الذي يحتوي على قائمة بالرموز البريدية. - المثال 3:
eligibleRegion
مع كائنGeoShape
الذي يحتوي على قائمة برموز منطقة الفرز لإعادة التوجيه (FSA). - المثال 4:
eligibleRegion
مع كائنGeoShape
الذي يحتوي على معرّف منطقة السوق المحددة. - المثال 5:
eligibleRegion
مع قائمة منGeoShape
عناصر. يحتوي كل منها على رقم تعريف منطقة السوق المحددة. - المثال 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
يحتوي على قائمة برموز منطقة الفرز لإعادة التوجيه (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
يحتوي على رقم تعريف منطقة السوق المحددة:
"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" } ] } }
المثال الخامس
eligibleRegion
التي تحتوي على قائمة تضم GeoShape
عناصر.
يحتوي كل نوع على رقم تعريف منطقة السوق المحددة:
"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 الوصول إلى المحتوى الخاص بك، تتخذ الخطوات التالية:
- نجري طلب بيانات من واجهة برمجة التطبيقات على نقطة نهاية الاستحقاقات لتلقّي أذونات المستخدِم معرّفات المستخدمين المؤهلة.
- نبحث عن معرّفات الاستحقاق المطلوبة للمحتوى من الوسائط خلاصة الإجراءات.
- نطابق
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 ... }, ... } }, ... }
حالات الاستخدام الشائعة للوصول إلى البيانات
في ما يلي حالات الاستخدام الشائعة للوصول إلى البيانات:
- مجانية (لا يلزم تسجيل الدخول): المحتوى متاح بدون تسجيل الدخول أو اشتراك أو شراء.
- Free (تسجيل الدخول مطلوب): يتطلب المحتوى تسجيل دخول المستخدمين ولكنه لا يتطلب اشتراكًا.
- اشتراك الفئة الواحدة: يتطلب المحتوى اشتراكًا. يمكن لجميع المشتركين الوصول إلى للمحتوى، سواء كان أفلامًا أو حلقات، بغض النظر عن نوع الاشتراك طرد.
- الاشتراك المتعدّد الفئات: المحتوى يتطلب اشتراكًا. يمكن للمشتركين الوصول إلى محتوى مختلف سواء كانت أفلامًا أو حلقات حسب درجة الاشتراك على سبيل المثال: المستوى الفضّي مقابل المستوى الذهبي.
- الاشتراك في إضافة: المحتوى تتطلب اشتراكًا. يمكن للمشتركين إضافة محتوى مدفوع إلى الاشتراك العادي.
- عملية شراء لمرة واحدة: يمكن للمحتوى أن الشراء، وبعد ذلك يمكن للمستخدم الوصول إليها إلى أجل غير مسمى.
- البث التلفزيوني المباشر: يشمل الاشتراك إمكانية الوصول إلى القنوات المحلية والوطنية والقنوات المدفوعة
- اشتراك تابع لجهة خارجية: يتطلّب المحتوى من المستخدم تسجيل الدخول باستخدام مزوّد خدمة الكابل.
مجاني (لا يلزم تسجيل الدخول)
تسجيل الدخول غير مطلوب
المحتوى متاح بدون تسجيل دخول أو اشتراك.
{ "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" } } }
اشتراك بمستويات متعدّدة
في نموذج اشتراك متعدّد المستويات، يحصل مزود الخدمة على عدة مستويات فئات الاشتراك، مثل المستوى الذهبي والمستوى الفضّي المستوى البرونزي. يمكن للمستخدمين الذين لديهم اشتراك من المستوى الأعلى الوصول إلى الكل من المحتوى ذي المستوى الأدنى. في المقابل، إنّ المستخدمين الذين لديهم مستوى أقل لا يمكن لاشتراكك الوصول إلى محتوى المستوى الأعلى.
إليك السيناريو التالي:
- اشتركت "سلوى" في الفئة الذهبية. الأذونات الممنوحة لك
تعرض نقطة النهاية معرّفات
entitlementId
التالية:example.com:bronze
example.com:silver
example.com:gold
- اشترك سامي في الفئة البرونزية. الأذونات الممنوحة لك
تعرض نقطة النهاية
entitlementId
التالية:example.com:bronze
- توضِّح خلاصة "إجراءات الوسائط" المتطلبات التالية:
- يتطلب الفيلم أ
example.com:bronze
. - يتطلب الفيلم ب
example.com:silver
.
- يتطلب الفيلم أ
في هذا السيناريو، تحدِّد Google مستويات الوصول التالية لجيهان وجون:
- لدى جاسر وسامر إمكانية الوصول إلى فيلم أ.
- يمكن لسارة الوصول إلى فيلم ب، على عكس جون لا يمكنه الوصول إليه.
{ "actionAccessibilityRequirement": { "@type": "ActionAccessSpecification", "category": "subscription", "requiresSubscription": { "@type": "MediaSubscription", "@id": "http://www.example.com/basic_subscription", "name": "Bronze", "commonTier": true ... }, ... } }
الاشتراك في الإضافة
في نموذج الاشتراك في الإضافات، يسمح مقدّم الخدمة للمستخدمين وتوسيع استحقاقاتهم وإضافة قنوات إلى اشتراك أساسي. المستخدمون يمكنهم إضافة العدد الذي يريدونه من القنوات
إليك السيناريو التالي:
- تمتلك "جين" كلاً من PRO وSportz بالإضافة إلى
أساسي. تعرض نقطة نهاية الاستحقاقات
معرّفات
entitlementId
التالية:example.com:basic
example.com:pro
example.com:sportz
- لدى طارق اشتراك أساسي فقط. الأذونات الممنوحة لك
تعرض نقطة النهاية
entitlementId
التالية:example.com:basic
- توضِّح خلاصة "إجراءات الوسائط" المتطلبات التالية:
- يتطلب الفيلم أ
example.com:basic
. - يتطلب الفيلم ب
example.com:pro
.
- يتطلب الفيلم أ
في هذا السيناريو، تحدِّد Google مستويات الوصول التالية لجيهان وجون:
- لدى جاسر وسامر إمكانية الوصول إلى فيلم أ.
- يمكن لسارة الوصول إلى فيلم ب، على عكس جون لا يمكنه الوصول إليه.
{ "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
للإشارة إلى سعر الإيجار.
البث التلفزيوني المباشر
في خلاصة "إجراءات الوسائط"، يمكنك حظر الوصول إلى بث تلفزيوني مباشر. channel أو الحدث استنادًا إلى الشرطين التاليين للمستخدم:
-
الموقع الجغرافي لجهاز المستخدم
لحظر الوصول إلى القناة التلفزيونية، حدِّد المنطقة التي يريد فيها المستخدمون حق الوصول إليها. ينطبق هذا الشرط عادةً على البث المحلي. القنوات التلفزيونية.
-
حالة حساب المستخدم
إذا كان الوصول إلى قناة تلفزيونية يعتمد على الإعدادات على مستوى حساب المستخدم، استخدام معرفات الوصول إلى تمثل القيد.
ينطبق هذا الشرط عادةً على حالات الاستخدام التالية:
- حزمة: غالبًا ما يتم تضمين القنوات الوطنية في والحِزم، ويختار المستخدمون الحزمة التي يريدون الاشتراك فيها.
- إضافة: تتطلّب بعض القنوات المميّزة من المستخدمين يضيفون بشكل انتقائي المزيد من القنوات إلى اشتراكاتهم.
- الشبكة الإقليمية الرياضية (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
، يمكنك الاطّلاع على
قسم نوع جدار الدفع.
لماذا يجب توفُّر حزمة ذات مستوى مشترك؟
تتوفر في منتجات متعددة من Google أجهزة التلفزيون توصيات الأفلام للمستخدمين هذا يشمل ذلك "بحث Google" وAndroid TV و"مساعد Google". لضبط حساب المستخدم التوقعات بشأن التكلفة، يجب أن تفهم 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 } ],
الإضافات
في نموذج الاشتراك في الإضافات، يسمح مقدّم الخدمة للمستخدمين بتوسيع نطاق أذوناتهم وإضافة قنوات إلى اشتراك أساسي. يمكن للمستخدمين الإضافة كـ والعديد من القنوات. الصورة التالية هي مثال على الحزمة البنية.
إذا كانت لديك قناة متاحة لجميع المستخدمين ولا توجد تكلفة يمكنك دمج الحزمة مع حزمة الفئة العامة.
في مثال التعليمة البرمجية التالي، الحزمة الأساسية هي الفئة الشائعة لأن جميع يمكن للمستخدمين الوصول إلى كل المحتوى في هذه الحزمة.
"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 } ],
حزم تتضمن محتوى يتقاطع
في نموذج المحتوى حيث تحتوي الحزم على محتوى يتقاطع، الحزم التي تتضمن بعض المحتوى من الحزم الأخرى. تشير رسالة الأشكال البيانية هي الصورة التالية مثالاً على هيكل الحزمة.
في مثال التعليمة البرمجية التالي، يقدم الموفر ثلاث حزم حيث تكون بعض يتقاطع المحتوى عبر جميع الحزم. في هذه الحالة، هناك حزمة رابعة الذي يمثل الفئة المشتركة المطلوبة. يجب أن تتضمّن كل المحتوى متاحة عبر جميع الحزم الثلاث.
"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 } ],
حزم بدون محتوى يتقاطع
ففي نموذج المحتوى الذي لا تتقاطع فيه جميع حزم المحتوى، تسمح يبيع مقدم الخدمة الحزم التي لا تتضمن أي محتوى من الحزم الأخرى. تشير رسالة الأشكال البيانية هي الصورة التالية مثالاً على هيكل الحزمة.
في المثال التالي، يعرض موفّر الخدمة ثلاث حزم بدون محتوى ويتقاطع عبر جميع الحزم. ليس من المطلوب أيّ حزمة ذات مستوى مشترَك.
"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 بما في ذلك المنطقة الزمنية لمزيد من التفاصيل، يُرجى مراجعة تواريخ انتهاء الصلاحية: |
تواريخ انتهاء الصلاحية
هناك خاصيتان في استجابة نقطة النهاية تتعامل مع تاريخ انتهاء الصلاحية.
التاريخان: subscription.expiration_date
وentitlements.expiration_date
. إِنْتَ
يمكن أن تتضمن أحدهما أو لا، ولكن لا تتضمن كليهما. يعتمد الخيار الذي تستخدمه على
نموذج الاشتراك الخاص بك.
نموذج الاشتراك | |
---|---|
يمكن لجميع المشتركين الوصول إلى مجموعة البث الخاصة بك بالطريقة نفسها. | لأنّك لست بحاجة إلى تحديد 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 على إعادة تحميل معلومات استحقاقات المستخدم كل ست ساعات كحد أقصى. إلى وتبسيط الحد الأقصى لطلبات البحث في الثانية (QPS)، وتوزع Google طلبات البحث إلى نقطة النهاية لديك بالتساوي مع مرور الوقت. ومن ثم، يمكنك تقدير المتوسط المتوقع عدد الطلبات في الثانية لنقطة النهاية بالصيغة التالية:
متوسط عدد الطلبات في الثانية = <إجمالي عدد المستخدمين> / 21,600 ثانية (6 ساعات × 60 دقيقة × 60 ثانية)
في حال توفير عدد كبير من المستخدمين، يمكن لـ Google تعديل الفاصل الزمني البالغ 6 ساعات. وإذا لزم الأمر، يمكنك التواصل مع Google لمناقشة الإعدادات.
الاتصال بـ Google
عندما تكون نقطة النهاية جاهزة، يُرجى التواصل مع Google لإبلاغ عنوان URL لنقطة النهاية.
خصائص مواصفات الوصول إلى الإجراءات
يمكنك الاطّلاع على قسم مواصفات الوصول إلى الإجراءات كمرجع المعلومات.