דרישות לקבלת גישה

המשתמשים מעדיפים לצפות בתוכן שכבר יש להם גישה אליו או להאזין לו, כמו את תוכן המינויים הקיימים שלהם. אם Google יודעת איזה תוכן המשתמש יכול גישה לאפליקציה או לפלטפורמה שלכם, ואז Google תוכל ליצור תוצאת חיפוש טובה יותר או תגובה שיפנו את המשתמש לתוכן זה.

איור 1. דרישות הגישה עוזרות למנויים שלך לקבל גישה את התוכן באפליקציה או בפלטפורמה שלכם.

להכיר את הדרישות לגישה לתוכן

עליך לזהות את דרישת הגישה לכל חבילת תוכן ב בקטלוג. בזמן ההעברה כדאי להביא בחשבון את השאלות הבאות:

  • האם המשתמשים צריכים להתחבר לאפליקציה או לפלטפורמה שלכם כדי לגשת לתוכן?
  • האם משתמשים צריכים מינוי?

    פעולות בשעון בלבד:

    • האם משתמשים צריכים מינוי של ספק שירות חיצוני?
    • האם אתם מציעים מינוי לשכבות, לכמה חבילות או להוספה?
  • פעולות צפייה בלבד: האם משתמשים צריכים לשכור או לרכוש את התוכן?

  • האם דרישת הגישה משתנה עם הזמן?

  • האם דרישת הגישה תלויה במיקום המכשיר?

סוגים של הגבלות גישה

קיימים שני סוגים של הגבלות גישה:

סוג חומת תשלום

ניתן להגביל את הגישה לתוכן באמצעות סוג חומת התשלום. הטבלה הבאה מפרטת את הסוגים השונים של חומת התשלום:

סוג חומת תשלום דוגמה קטגוריה
לא נדרשת רכישה או התחברות. רשרוש nologinrequired
המשתמש חייב להיות מחובר, אבל הוא לא צריך מינוי בתשלום. Vudu (AVOD) free
למשתמש חייב להיות מינוי פעיל. הגישה לא תלויה ב- וברמת המינוי. Netflix

subscription

למשתמש חייב להיות מינוי פעיל. הגישה תלויה ברמת המינוי. Hulu (תוספים)

subscription

התוכן יהיה זמין לפרק זמן מוגבל לאחר רכישה. 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 מאפשרים את הדברים הבאים ערכים:

  • רשימה של 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 נוקטת את השלבים הבאים:

  1. נבצע קריאה ל-API נקודת הקצה של הרשאות לקבלת גישה מזהי הרשאות.
  2. אנחנו מחפשים את מזהי ההרשאות הנדרשים לתוכן במדיה פיד פעולות.
  3. אנחנו מתאימים את entitlementId של משתמש אל identifier של התכונה אובייקט של מינוי למדיה בפיד. אם לפחות התאמה אחת של entitlementId, אנחנו קובעים שהמשתמש יכול לגשת תוכן.
איור 2. אחד ממזהי ההרשאה של המשתמש תואם מזהה ההרשאה הנדרש של התוכן.

Google ממליצה להשתמש בתחביר הבא בשביל entitlementId:

<domain name> + colon (:) + <access level to content>

דוגמאות לתחביר:

  • example.com:basic
  • example.com:premium
  • example.com:sports

דוגמה למזהה הרשאה

בפיד של MediaExampleCompany מציינים שהפרמטר Movie XYZ דורש example.com:basic entitlementId, כפי שמוצג:

{
  "@context": ["http://schema.org", {"@language": "en"}],
  "@type": "Movie",
  "@id": "www.example.com/movie_xyz",
  "url": "www.example.com/movie_xyz",
  "name": "Movie XYZ",
  "potentialAction": {
    "@type": "WatchAction",
    "target": [ … ],
    "actionAccessibilityRequirement": {
      "@type": "ActionAccessSpecification",
      "category": "subscription",
      "requiresSubscription": {
        "@type": "MediaSubscription",
        "@id": "http://www.example.com/basic_subscription",
        "name": "Basic subscription",
        "commonTier": true
        ...
      },
      ...
    }
  },
  ...
}

תרחישים לדוגמה של גישה

תרחישי גישה נפוצים:

  • בחינם (לא נדרשת התחברות): התוכן זמין ללא התחברות, הרשמה או רכישה.
  • בחינם (נדרשת התחברות): תוכן שמחייב את המשתמשים להיות מחוברים לחשבון, אבל לא נדרש מינוי.
  • מינוי ברמה אחת: נדרש מינוי לתוכן. כל המנויים יכולים לגשת תוכן, בין אם מדובר בסרטים או בפרקים, ללא קשר למינוי חבילה.
  • מינוי רב-שכבתי: נדרש מינוי. מנויים יכולים לגשת לתוכן שונה, בין סרטים או פרקים, בהתאם לרמת המינוי שלהם. לדוגמה, כסף לעומת זהב.
  • מינוי לתוסף: התוכן נדרש מינוי. המנויים יכולים להוסיף תוכן פרימיום מעל במינוי רגיל.
  • רכישה חד-פעמית: התוכן יכול שנרכשו, ולאחר מכן המשתמש יכול לגשת אליהם ללא הגבלת זמן.
  • טלוויזיה בשידור חי: המינוי כולל גישה אל מקומי, ארצי וערוצי פרימיום.
  • מינוי לצד שלישי: התוכן מחייב את המשתמש להתחבר באמצעות ספק הכבלים שלו.

חינם (אין צורך בהתחברות)

לא נדרשת התחברות

התוכן זמין ללא התחברות או מינוי.


{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "nologinrequired",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  }
}
  • מגדירים את category להיות nologinrequired.
  • אין לכלול expectAcceptanceOf.

בחינם (נדרשת התחברות)

נדרשת התחברות

התוכן מחייב משתמשים להיות מחוברים, אבל הוא לא מחייב במינוי.


{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "free",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  }
}
  • מגדירים את category להיות free.
  • אין לכלול expectAcceptanceOf.

מינוי ברמה אחת

במודל מינויים עם רמה אחת, לספק שירות יש ברמת המינוי. כל המנויים יכולים לגשת לאותו תוכן, סרטים או פרקים, ללא קשר לחבילת המינוי שלהם.


{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "subscription",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "requiresSubscription": {
        "@type": "MediaSubscription",
        "name": "Example Package",
        "commonTier": true,
        "@id": "http://www.example.com/example_package"
    },
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  }
}

מינוי רב-שכבתי

במודל מינויים מדורג, לספק שירות יש רמות מינויים, כמו זהב, כסף, ו ארד. משתמשים עם מינוי ברמה העליונה יכולים לגשת לכל את התוכן ברמה הנמוכה יותר. עם זאת, משתמשים ברמה הנמוכה יותר למינוי אין גישה לתוכן שברמה העליונה.

איור 3. מודל מינויים רב-שכבתי .

למשל, נבחן את התרחיש הבא:

  • דנה רשומה לרמת זהב. ההרשאות שלך נקודת הקצה מחזירה את מזהי 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
      ...
    },
    ...
  }
}

מינוי לתוסף

במודל מינויים לתוספים, ספק שירות מאפשר למשתמשים להרחיב את ההרשאות ולהוסיף ערוצים למינוי בסיסי. משתמשים להוסיף כמה ערוצים שהם רוצים.

איור 4. מודל מינוי לתוספים .

למשל, נבחן את התרחיש הבא:

  • לג'יין יש את 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 להבין את הכותרות שאינן נפוצות, כל אחת מהן למשתמש תהיה גישה.

מתי צריך ליצור חבילת רמה משותפת?

נדרשת חבילת רמה משותפת כשהשירות שלכם מציע תוכן זמינים לכל המנויים. זה כולל שירותים שמציעים חבילה אחת בלבד ושירותים שמציעים מספר חבילות או תוספים.

ספקים שאין להם תוכן שזמין לכל המנויים לא צריכים ליצור חבילת רמה משותפת. לדוגמה: ספקי שירות שמספקים קישור בלעדי תוכן בכל החבילות שלהם.

דוגמאות לרמה נפוצה

הדוגמאות הבאות הן של הרמה המשותפת.

מינוי מדורגת

במודל מינויים מדורג, לספק שירות יש כמה מינויים רמות, כמו זהב, כסף וארד. משתמשים עם תוסף למינויים ברמה העליונה יש גישה לכל התוכן ברמות הנמוכות יותר. משתמשים במינוי ברמה הנמוכה יותר אין גישה לתוכן שמוצג למעלה. בשכבת זרימת הנתונים. התמונה הבאה היא דוגמה למבנה החבילה.

דרגת הזהב מכילה את כל התוכן של רמת &#39;כסף&#39;,
            עצמו מכיל את כל דרגת הארד.
איור 5. מבנה חבילות של מינויים מדורגת.

בדוגמת הקוד הבאה, חבילת הברונזה היא השכבה המשותפת מכיוון שכל למשתמשים יש גישה לכל התוכן באותה רמה.

"requiresSubscription": [
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/bronze",
      "name": "Bronze",
      "sameAs": "https://www.example.com/package/bronze",
      "commonTier": true
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/silver",
      "name": "Silver",
      "sameAs": "https://www.example.com/package/silver",
      "identifier": "example.com:silver",
      "commonTier": false
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/gold",
      "name": "Gold",
      "sameAs": "https://www.example.com/package/gold",
      "identifier": "example.com:gold",
      "commonTier": false
    }
  ],

תוספים

במודל מינויים לתוספים, ספק שירות מאפשר למשתמשים להרחיב את ההרשאות שלהם ולהוסיף ערוצים למינוי בסיסי. המשתמשים יכולים להוסיף בתור בכל הערוצים שהם רוצים. בתמונה הבאה מוצגת דוגמה לחבילה שלנו.

כל משתמש מתחיל בערוץ &#39;בסיסי&#39;, והוא יכול לבחור להוסיף
            כל שילוב של הערוצים PRO, Sportz ו-Moviemax.
איור 6. מבנה החבילות במינוי לתוספים.

אם יש לך ערוץ שזמין לכל המשתמשים, ואין לך עלות נוספת עבור אפשר למזג את החבילה עם חבילת הרמה המשותפת.

בדוגמת הקוד הבאה, החבילה הבסיסית היא הרמה המשותפת מכיוון שכל למשתמשים יש גישה לכל התוכן בחבילה הזו.

"requiresSubscription": [
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/basic",
      "name": "Basic",
      "sameAs": "https://www.example.com/package/basic",
      "commonTier": true
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/packages/basic/pro",
      "name": "PRO",
      "sameAs": "https://www.example.com/package/pro",
      "identifier": "example.com:pro",
      "commonTier": false
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/sportz",
      "name": "Sportz",
      "sameAs": "https://www.example.com/package/sports",
      "identifier": "example.com:sportz",
      "commonTier": false
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/moviemax",
      "name": "Moviemax",
      "sameAs": "https://www.example.com/package/moviemax",
      "identifier": "example.com:moviemax",
      "commonTier": false
    }
  ],

חבילות עם תוכן חוצה

במודל תוכן שבו חבילות מכילות תוכן שחוצה, שירות ספק מוכר חבילות שכוללות תוכן מסוים מחבילות אחרות. בתמונה הבאה מוצגת דוגמה למבנה החבילה.

דיאגרמת ון שבה החפיפה בין חבילות 1, 2 ו-3 היא
            התווית &#39;רמה משותפת&#39;.
איור 7. מבנה החבילה עם תוכן מצטלב.

בדוגמת הקוד הבאה, הספק מציע שלוש חבילות שבהן חלק התוכן מצטלב בכל החבילות. במקרה הזה, חבילה רביעית שמייצג את השכבה המשותפת. היא חייבת לכלול את כל התוכן. זמינים בכל שלוש החבילות.

"requiresSubscription": [
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/1",
      "name": "Package 1",
      "sameAs": "https://www.example.com/package/1",
      "identifier": "example.com:package1",
      "commonTier": false
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/2",
      "name": "Package 2",
      "sameAs": "https://www.example.com/package/2",
      "identifier": "example.com:package2",
      "commonTier": false
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/3",
      "name": "Package 3",
      "sameAs": "https://www.example.com/package/3",
      "identifier": "example.com:package3",
      "commonTier": false
    },
    {
      "@type": "MediaSubscription",
      "@id": "https://www.example.com/package/common",
      "name": "Common Tier Package",
      "sameAs": "https://www.example.com/package/common",
      "commonTier": true
    }
  ],

חבילות ללא תוכן שחוצה את העין

במודל תוכן שבו כל חבילות התוכן לא מצטלבות, השירות ספק מוכר חבילות שלא כוללות תוכן מחבילות אחרות. בתמונה הבאה מוצגת דוגמה למבנה החבילה.

חבילות 1, 2 ו-3 נפרדות לחלוטין.
איור 8. מבנה החבילה ללא חפיפה תוכן.

בדוגמה הבאה, הספק מציע שלוש חבילות ללא תוכן מצטלבות בין כל החבילות. לא נדרשת חבילת רמה משותפת.

"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

חובה

המאפיין הזה יכול לכלול את הערכים הבאים:

  • ActiveSubscription: למשתמש יש מינוי פעיל לספק.
  • ActiveTrial: למשתמש יש תקופת ניסיון פעילה עבור ספק.
  • InactiveSubscription: למשתמש אין חשבון פעיל מינוי או תקופת ניסיון פעילה.
subscription.expiration_date

אופציונלי

תאריך התפוגה של זכאות זו, פורמט ISO 8601, שכולל את אזור הזמן. פרטים נוספים זמינים במאמר תאריכי תפוגה.

entitlements

אופציונלי

מאפיין שורש זה מכיל את הערכים entitlementId של החזקות של נתוני משתמשים.

entitlements.entitlement

חובה אם הגישה לקטלוג הסטרימינג משתנה בהתאם לסוג המינוי.

הנכס הזה מכיל את entitlementId. לקבלת מידע נוסף מידע נוסף, ראה מזהה ההרשאה.

entitlements.expiration_date

אופציונלי

תאריך התפוגה של מינוי זה, ב פורמט ISO 8601, שכולל את אזור הזמן. פרטים נוספים זמינים במאמר תאריכי תפוגה.

תאריכי תפוגה

בתגובה של נקודת הקצה יש שני מאפיינים שעוסקים בתפוגה תאריכים: subscription.expiration_date ו-entitlements.expiration_date. שלך יכול לכלול אחד מהם או אף אחד מהם, אבל לא את שניהם. בחירת המסנן שבו תשתמשו תלויה ב- את מודל המינוי.

מודל מינוי
הגישה לקטלוג הסטרימינג שלכם זהה לכל המנויים. כי אין צורך לציין את entitlements מאפיין, מציינים subscription.expiration_date.

הגישה לקטלוג הסטרימינג תלויה בפרטים של המינוי של המשתמש.

אם למודל המינוי יש כמה רמות או תוספים עם הזמן, מבצעים אחת מהפעולות הבאות:

  • אם התוקף של כל הערכים של entitlements.entitlement יפוג בתאריך בו-זמנית, לציין subscription.expiration_date.
  • אם התוקף של ערכים מסוימים של entitlements.entitlement יפוג ב- בזמנים שונים, מציינים את entitlements.expiration_date.

תשובות לדוגמה

דוגמאות לתגובות למצבי מינוי שונים:

  • הרשמה פעילה
  • מינוי פעיל עם תאריך תפוגה
  • בלי מינוי
  • מינויים פעילים למספר רמות או תוספים

הרשמה פעילה

מינוי פעיל

למשתמש יש מינוי פעיל ל-example.com. כאן במקרה הזה, לכל המנויים יש גישה לכל קטלוג הסטרימינג שלכם ללא קשר לסוג המינוי שלהם.


{
  "subscription" : {
    "type": "ActiveSubscription",
  }
}

מינוי פעיל עם תאריך תפוגה

מינוי פעיל עם תאריך תפוגה

למשתמש יש מינוי פעיל ל-example.com, וגם למינוי יש תאריך תפוגה. במקרה הזה, כל המנויים קיבלו גישה לכל קטלוג הסטרימינג שלכם, ללא קשר למינוי שלהם מהסוג הזה.


{
  "subscription" : {
    "type": "ActiveSubscription",
    "expiration_date": "2019-11-10T10:00:00Z"
  }
}

בלי מינוי

ללא מינוי

למשתמש אין מינוי ל-example.com.


{
  "subscription" : {
    "type": "InactiveSubscription"
  }
}

מינויים פעילים למספר רמות או תוספים

מינויים פעילים לכמה רמות או לתוספים

למשתמש יש מינוי ל-example.com:premium עד לתאריך מסוים.


{
  "subscription" : {
    "type": "ActiveSubscription",
  }
  "entitlements": [
    {
      "entitlement": "example.com:premium",
      "expiration": "2019-11-10T10:00:00Z"
    }
  ]
}

מגבלת קצב

Google מרעננת את פרטי ההרשאות של המשתמש עד כל שש שעות. שפת תרגום מארגנת את מספר השאילתות המקסימלי לשנייה (QPS), ו-Google מפיצה את השאילתות בנקודת הקצה שלכם באופן שווה לאורך זמן. לכן אפשר להעריך את הממוצע הצפוי QPS של נקודת הקצה עם הנוסחה הבאה:

QPS ממוצע צפוי = <total number of users> / 21,600 שניות (6 שעות x 60 דקות x 60 שניות)

אם יש תמיכה במספר גדול של משתמשים, Google יכולה לשנות את מרווח הזמן של 6 שעות. במקרה הצורך, יש ליצור קשר עם Google כדי לדון בהגדרה.

צור קשר עם Google

כשנקודת הקצה מוכנה, צריך לפנות ל-Google כדי לעדכן את כתובת ה-URL של נקודת הקצה.

מאפייני מפרט הגישה לפעולה

לצפייה הקטע מאפייני מפרט גישה לפעולה לעיון מידע.