המשתמשים מעדיפים לצפות בתוכן או להאזין לתוכן שכבר יש להם גישה אליו, כמו תוכן של מינוי קיים. אם 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של אובייקט Action access specification. חובה לציין את המאפיין הזה. - המאפיין
ineligibleRegionשל אובייקט Action access specification.
משתמש יכול לגשת לתוכן אם מיקום המכשיר שלו נמצא באזור כלשהו שצוין ב-eligibleRegion ולא נמצא באזור כלשהו שצוין ב-ineligibleRegion.
המאפיינים eligibleRegion ו-ineligibleRegion יכולים לקבל את הערכים הבאים:
- רשימה של
Country,Cityו-State. - אובייקט
GeoShape. בקטעGeoShapeמאפיינים מפורטות הדרישות. - רשימה של
GeoShapeאובייקטים.
אם התוכן זמין בכל העולם, צריך להשתמש בערך המיוחד הבא במאפיין eligibleRegion:
"eligibleRegion": "EARTH",
תרחישים לדוגמה לשימוש ב-eligibleRegion
הנה כמה דוגמאות לתרחישי שימוש במאפיין eligibleRegion:
- דוגמה 1:
eligibleRegionעם רשימת מדינות. - דוגמה 2:
eligibleRegionעם אובייקטGeoShapeשמכיל רשימה של מיקודים. - דוגמה 3:
eligibleRegionעם אובייקטGeoShapeשמכיל רשימה של קודי FSA (Forward Sortation Area). - דוגמה 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 (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 }, "additionalProperty": { "@type": "PropertyValue", "name": "DisplaySubscriptionIdentifier", "value": "http://www.example.com/local_tv_network/subscription" }, "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 }, "additionalProperty": { "@type": "PropertyValue", "name": "DisplaySubscriptionIdentifier", "value": "http://www.example.com/abcd/subscription" }, "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 }, "additionalProperty": { "@type": "PropertyValue", "name": "DisplaySubscriptionIdentifier", "value": "http://www.example.com/local_tv_network/subscription" }, "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:basicexample.com:premiumexample.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 ... }, "additionalProperty": { "@type": "PropertyValue", "name": "DisplaySubscriptionIdentifier", "value": "http://www.example.com/basic_subscription" }, ... } }, ... }
תרחישים נפוצים לדוגמה לגישה
אלה כמה תרחישי שימוש נפוצים לגישה:
- בחינם (לא נדרשת התחברות): התוכן זמין ללא התחברות, מינוי או רכישה.
- חינם (נדרשת התחברות): כדי לצפות בתוכן, המשתמשים צריכים להתחבר לחשבון, אבל לא נדרש מינוי.
- מינוי ברמה אחת: נדרש מינוי כדי לצפות בתוכן. כל המנויים יכולים לגשת לאותו תוכן, בין אם מדובר בסרטים או בפרקים, בלי קשר לחבילת המינוי שלהם.
- מינוי בכמה רמות: נדרש מינוי כדי לצפות בתוכן. למנויים יש גישה לתוכן שונה, בין אם מדובר בסרטים או בפרקים, בהתאם לרמת המינוי שלהם. לדוגמה, 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" }, "additionalProperty": { "@type": "PropertyValue", "name": "DisplaySubscriptionIdentifier", "value": "http://www.example.com/example_package" }, "eligibleRegion": { "@type": "Country", "name": "US" } } }
מינוי עם כמה רמות
במודל מינוי מדורג, לספק שירות יש כמה רמות מינוי, כמו Gold, Silver ו-Bronze. משתמשים שיש להם מינוי לרמה הגבוהה ביותר יכולים לגשת לכל התוכן ברמות הנמוכות יותר. עם זאת, משתמשים שיש להם מינוי לרמה הנמוכה יותר לא יכולים לגשת לתוכן של הרמה הגבוהה יותר.
לצורך המחשה, נבחן את התרחיש הבא:
- דנה נרשמת למינוי ברמה Gold. נקודת הקצה של ההרשאות מחזירה את המזהים הבאים של
entitlementId:example.com:bronzeexample.com:silverexample.com:gold
- יוסי נרשם למינוי ברמה Bronze. נקודת הקצה של ההרשאות מחזירה את הערכים הבאים
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 ... }, "additionalProperty": { "@type": "PropertyValue", "name": "DisplaySubscriptionIdentifier", "value": "http://www.example.com/basic_subscription" }, ... } }
מינוי לחבילת ערוצים
במודל מינוי לחבילות תכונות, ספק שירותים מאפשר למשתמשים להרחיב את ההרשאות שלהם ולהוסיף ערוצים למינוי בסיסי. המשתמשים יכולים להוסיף כמה ערוצים שהם רוצים.
לצורך המחשה, נבחן את התרחיש הבא:
- לדנה יש מינוי ל-PRO ול-Sportz בנוסף למינוי Basic. נקודת הקצה של ההרשאות מחזירה את המזהים הבאים של
entitlementId:example.com:basicexample.com:proexample.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 } ], "additionalProperty": { "@type": "PropertyValue", "name": "DisplaySubscriptionIdentifier", "value": "http://www.example.com/package/basic" }, } } }
רכישה חד-פעמית
רכישה
התוכן זמין ללא הגבלת זמן אחרי הרכישה.
{ "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): ערוצי ספורט אזוריים משויכים בדרך כלל למיקום הבית של המשתמש. המשתמשים יכולים לצפות בתוכן בערוץ הספורט האזורי גם כשהם נוסעים מחוץ למיקום הבית שלהם.
מינוי של צד שלישי
מינוי דרך צד שלישי
התוכן זמין למנויים משירות אחר.
{ "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" } }, "additionalProperty": { "@type": "PropertyValue", "name": "DisplaySubscriptionIdentifier", "value": "http://www.example.com/faq" }, "eligibleRegion": { "@type": "Country", "name": "US" } } }
- מוסיפים
authenticatorכדי לציין ששירות אחר מאמת את המנויים. לדוגמה, כדי לצפות ב-HBO GO צריך מינוי מספק הכבלים.
חבילות נפוצות
תוכן ברמה נפוצה זמין לכל המנויים, ללא קשר לחבילת המינוי שלהם. הסיווג הנפוץ חל על כל התוכן עם הסיווג category
של subscription. מידע נוסף על המאפיין category מופיע בקטע סוג חומת תשלום.
למה נדרשת חבילה ברמה נפוצה?
בפלטפורמות שונות של Google מוצגות למשתמשים המלצות לתוכניות טלוויזיה ולסרטים. כדי להגדיר את ציפיות המשתמשים לגבי העלות, 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 } ],
נקודת קצה של הרשאות
אפשר להשתמש במידע שבקטע הזה כדי לארח נקודת קצה מסוג HTTPS שמחזירה את ההרשאות שמשויכות למשתמש.
דרישות מוקדמות
לפני שמתחילים, צריך לוודא שהשירות תומך בהרשאה באמצעות OAuth 2.0 עם Google.
בקשה
כדי לקבל את ההרשאות של המשתמש, Google שולחת בקשה שמכילה את אסימון ה-OAuth של המשתמש. נקודת הקצה צריכה לזהות את המשתמש על סמך טוקן ה-OAuth הזה. מקרה לדוגמה:
GET /resource HTTP/1.1
Host: server.example.com
Authorization: Bearer <OAuthToken>
תשובה
נקודת הקצה (endpoint) צריכה להחזיר תגובה עם המאפיינים הבאים:
| נכס | |
|---|---|
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 שעות × 60 דקות × 60 שניות)
אם אתם תומכים במספר גדול של משתמשים, Google יכולה לשנות את המרווח של 6 השעות. במקרה הצורך, אפשר לפנות אל Google כדי לדון בהגדרות.
צור קשר עם Google
כשהנקודה מוכנה, צריך ליצור קשר עם Google כדי להודיע על כתובת ה-URL של נקודת הקצה.
מאפיינים של מפרט גישה לפעולה
מידע נוסף זמין בקטע מאפיינים של מפרט גישה לפעולה.