המשתמשים מעדיפים לצפות בתוכן שהם כבר יכולים לגשת אליו או להאזין לו, למשל, התוכן הקיים של המינוי שלהם. אם 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). - דוגמה 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
שמכיל רשימה של קודי אזור למיון קדימה (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 לנקודת הקצה של הרשאות כדי לקבל את מזהי ההרשאות של המשתמש.
- אנחנו מחפשים את מזהי ההרשאה הנדרשים של התוכן מהפיד של פעולות המדיה.
- אנחנו מתאימים את ה-
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 ... }, ... } }, ... }
תרחישים נפוצים לדוגמה של גישה
דוגמאות לשימושים נפוצים בגישה:
- בחינם (אין צורך בהתחברות): התוכן זמין ללא התחברות, מינוי או רכישה.
- בחינם (נדרשת התחברות): התוכן מחייב התחברות למשתמשים, אבל לא מחייב מינוי.
- מינוי לרמה אחת: התוכן מחייב מינוי. כל המנויים יכולים לגשת לאותו תוכן, בין אם הם סרטים או פרקים, ללא קשר לחבילת המינוי שלהם.
- מינוי רב-שכבתי: התוכן דורש מינוי. מנויים יכולים לגשת לתוכן שונה, לפרקים או לפרקים, בהתאם לרמת המינוי שלהם. לדוגמה, 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" } } }
מינוי רב-שכבתי
במודל מינויים רב-שכבתי, ספק שירות כולל כמה רמות מינויים, כגון זהב, כסף וארד. משתמשים עם המינוי ברמה העליונה יכולים לגשת לכל התוכן ברמה התחתונה. עם זאת, למשתמשים שיש להם את המינוי ברמה הנמוכה ביותר אין גישה לתוכן ברמה העליונה.

תרחיש לדוגמה:
- ג'יין נרשמת לרמת זהב. נקודת הקצה של ההרשאות
מחזירה את המזהים הבאים של
entitlementId
:example.com:bronze
example.com:silver
example.com:gold
- יוסי נרשם לרמת ארד. נקודת הקצה של ההרשאות
מחזירה את התאריך
entitlementId
הבא:example.com:bronze
- פיד פעולות המדיה מתאר את הדרישות הבאות:
- הסרט A דורש
example.com:bronze
. - הסרט B מחייב
example.com:silver
.
- הסרט A דורש
בתרחיש הזה, 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
- פיד פעולות המדיה מתאר את הדרישות הבאות:
- הסרט A דורש
example.com:basic
. - הסרט B מחייב
example.com:pro
.
- הסרט A דורש
בתרחיש הזה, 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
כדי לציין את מחיר ההשאלה.
טלוויזיה בשידור חי
בפיד של פעולות מדיה, אפשר להגביל את הגישה לערוץ או לאירוע בשידור חי, בהתאם לשני תנאי המשתמש הבאים:
-
מיקום המכשיר של המשתמש
כדי להגביל את הגישה לערוץ הטלוויזיה, יש לציין את האזור שבו למשתמשים יש גישה אליו. התנאי הזה חל בדרך כלל על ערוצי טלוויזיה מקומיים בשידור.
-
סטטוס החשבון של המשתמש
אם הגישה לערוץ טלוויזיה תלויה בהגדרה של משתמש ברמת החשבון, יש להשתמש במזהי הרשאות כדי לייצג את ההגבלה.
התנאי הזה חל בדרך כלל על תרחישים לדוגמה:
- חבילה: ערוצים לאומיים מצורפים לעיתים קרובות בחבילות, והמשתמשים יכולים לבחור לאיזו חבילה הם יירשמו.
- תוסף: בחלק מערוצי הפרימיום, המשתמשים צריכים להוסיף באופן סלקטיבי מינויים נוספים למינוי.
- רשת ספורט אזורית (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 ממליצה על כותרים שזמינים במסלולים המשותפים, אלא אם אתם תומכים ב-Authorized 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 } ],
נקודת קצה של הרשאות
תוכלו להשתמש במידע מהקטע הזה כדי לארח נקודת קצה ל-HTTPS שמחזירה את ההרשאות המשויכות למשתמש.
דרישה מוקדמת
לפני שמתחילים, חשוב לוודא שהשירות תומך בתהליך OAuth 2.0 של Google.
שליחת בקשה
כדי לקבל הרשאות משתמש, Google שולחת בקשה שמכילה את אסימון OAuth של המשתמש. נקודת הקצה צריכה לזהות את המשתמש על סמך אסימון ה-OAuth. דוגמה:
GET /resource HTTP/1.1
Host: server.example.com
Authorization: Bearer <OAuthToken>
תשובה
נקודת הקצה צריכה להחזיר תגובה עם המאפיינים הבאים:
מאפיין (property) | |
---|---|
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 הממוצע הממוצע של נקודת הקצה שלכם באמצעות הנוסחה הבאה:
ההכנסה הממוצעת הצפויה למשתמש = <מספר כולל של משתמשים> / 21,600 שניות (6 שעות x 60 דקות x 60 שניות)
אם אתם תומכים במספר גדול של משתמשים, Google יכולה להתאים את מרווח השעות של 6 שעות. במקרה הצורך, יש ליצור קשר עם Google כדי לדון בתצורה.
יצירת קשר עם Google
כשנקודת הקצה מוכנה, צריך לפנות ל-Google כדי לעדכן את כתובת ה-URL של נקודת הקצה.
מאפייני מפרט של גישה לפעולה
למידע נוסף, עיינו בקטע מאפיינים של מפרט הגישה לפעולה.