המשתמשים מעדיפים לצפות בתוכן שכבר יש להם גישה אליו או להאזין לו, כמו את תוכן המינויים הקיימים שלהם. אם Google יודעת איזה תוכן המשתמש יכול גישה לאפליקציה או לפלטפורמה שלכם, ואז Google תוכל ליצור תוצאת חיפוש טובה יותר או תגובה שיפנו את המשתמש לתוכן זה.
להכיר את הדרישות לגישה לתוכן
עליך לזהות את דרישת הגישה לכל חבילת תוכן ב בקטלוג. בזמן ההעברה כדאי להביא בחשבון את השאלות הבאות:
- האם המשתמשים צריכים להתחבר לאפליקציה או לפלטפורמה שלכם כדי לגשת לתוכן?
האם משתמשים צריכים מינוי?
פעולות בשעון בלבד:
- האם משתמשים צריכים מינוי של ספק שירות חיצוני?
- האם אתם מציעים מינוי לשכבות, לכמה חבילות או להוספה?
פעולות צפייה בלבד: האם משתמשים צריכים לשכור או לרכוש את התוכן?
האם דרישת הגישה משתנה עם הזמן?
האם דרישת הגישה תלויה במיקום המכשיר?
סוגים של הגבלות גישה
קיימים שני סוגים של הגבלות גישה:
סוג חומת תשלום
ניתן להגביל את הגישה לתוכן באמצעות סוג חומת התשלום. הטבלה הבאה מפרטת את הסוגים השונים של חומת התשלום:
סוג חומת תשלום | דוגמה | קטגוריה |
---|---|---|
לא נדרשת רכישה או התחברות. | רשרוש | 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",
תרחישים לדוגמה לשימוש באזור כשיר
דוגמאות לתרחישים לדוגמה של הנכס eligibleRegion
:
- דוגמה 1:
eligibleRegion
עם רשימה של מדינות. - דוגמה 2:
eligibleRegion
עם אובייקטGeoShape
מכיל רשימה של מיקודים. - דוגמה 3:
eligibleRegion
עם אובייקטGeoShape
מכיל רשימה של קודי FSA (Forward Sortation Area). - דוגמה 4:
eligibleRegion
עם אובייקטGeoShape
מכיל מזהה של חוק ה-Digital Markets Act. - דוגמה 5:
eligibleRegion
עם רשימה שלGeoShape
אובייקטים. כל אחד מהם מכיל מזהה של חוק ה-Digital Markets Act. - דוגמה 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 (Forward Sortation Area):
"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
ש
מכיל מזהה של חוק ה-Digital Markets Act:
"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
אובייקטים.
כל אחד מהם מכיל מזהה של חוק ה-Digital Markets Act:
"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 נקודת הקצה של הרשאות לקבלת גישה מזהי הרשאות.
- אנחנו מחפשים את מזהי ההרשאות הנדרשים לתוכן במדיה פיד פעולות.
- אנחנו מתאימים את
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 ... }, ... } }, ... }
תרחישים לדוגמה של גישה
תרחישי גישה נפוצים:
- בחינם (לא נדרשת התחברות): התוכן זמין ללא התחברות, הרשמה או רכישה.
- בחינם (נדרשת התחברות): תוכן שמחייב את המשתמשים להיות מחוברים לחשבון, אבל לא נדרש מינוי.
- מינוי ברמה אחת: נדרש מינוי לתוכן. כל המנויים יכולים לגשת תוכן, בין אם מדובר בסרטים או בפרקים, ללא קשר למינוי חבילה.
- מינוי רב-שכבתי: נדרש מינוי. מנויים יכולים לגשת לתוכן שונה, בין סרטים או פרקים, בהתאם לרמת המינוי שלהם. לדוגמה, כסף לעומת זהב.
- מינוי לתוסף: התוכן נדרש מינוי. המנויים יכולים להוסיף תוכן פרימיום מעל במינוי רגיל.
- רכישה חד-פעמית: התוכן יכול שנרכשו, ולאחר מכן המשתמש יכול לגשת אליהם ללא הגבלת זמן.
- טלוויזיה בשידור חי: המינוי כולל גישה אל מקומי, ארצי וערוצי פרימיום.
- מינוי לצד שלישי: התוכן מחייב את המשתמש להתחבר באמצעות ספק הכבלים שלו.
חינם (אין צורך בהתחברות)
לא נדרשת התחברות
התוכן זמין ללא התחברות או מינוי.
{ "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 הן בדרך כלל שמשויך לדף הבית של המשתמש המיקום. המשתמשים יכולים לצפות בתוכן ב-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 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 } ],
חבילות עם תוכן חוצה
במודל תוכן שבו חבילות מכילות תוכן שחוצה, שירות ספק מוכר חבילות שכוללות תוכן מסוים מחבילות אחרות. בתמונה הבאה מוצגת דוגמה למבנה החבילה.
בדוגמת הקוד הבאה, הספק מציע שלוש חבילות שבהן חלק התוכן מצטלב בכל החבילות. במקרה הזה, חבילה רביעית שמייצג את השכבה המשותפת. היא חייבת לכלול את כל התוכן. זמינים בכל שלוש החבילות.
"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 } ],
נקודת הקצה של הרשאות
המידע בקטע הזה ישמש לאירוח נקודת קצה (endpoint) מסוג HTTPS הרשאות שמשויכות למשתמש.
דרישות מוקדמות
לפני שמתחילים, צריך לוודא שהשירות תומך תהליך OAuth 2.0 עם Google.
בקשה
כדי לקבל הרשאות משתמש, Google שולחת בקשה המכילה אסימון OAuth של המשתמש. נקודת הקצה (endpoint) צריכה לזהות את המשתמש על סמך פרוטוקול OAuth ב-Assistant. מקרה לדוגמה:
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 מפיצה את השאילתות בנקודת הקצה שלכם באופן שווה לאורך זמן. לכן אפשר להעריך את הממוצע הצפוי QPS של נקודת הקצה עם הנוסחה הבאה:
QPS ממוצע צפוי = <total number of users> / 21,600 שניות (6 שעות x 60 דקות x 60 שניות)
אם יש תמיכה במספר גדול של משתמשים, Google יכולה לשנות את מרווח הזמן של 6 שעות. במקרה הצורך, יש ליצור קשר עם Google כדי לדון בהגדרה.
צור קשר עם Google
כשנקודת הקצה מוכנה, צריך לפנות ל-Google כדי לעדכן את כתובת ה-URL של נקודת הקצה.
מאפייני מפרט הגישה לפעולה
לצפייה הקטע מאפייני מפרט גישה לפעולה לעיון מידע.