Zugriffsanforderungen

Nutzer bevorzugen es, sich Inhalte anzusehen oder anzuhören, auf die sie bereits zugreifen können, z. B. ihre bestehenden Aboinhalte. Wenn Google weiß, welche Inhalte ein Nutzer Zugriff auf Ihre App oder Plattform gewährt, kann Google ein besseres Suchergebnis oder eine Reaktion darauf, Nutzer zu diesen Inhalten zu leiten.

Abbildung 1. Mit den Zugriffsanforderungen können Ihre Abonnenten in Ihrer App oder auf Ihrer Plattform.

Anforderungen für den Zugriff auf Inhalte ermitteln

Sie müssen die Zugriffsanforderung für jedes Inhaltspaket in Ihrem Katalog. Berücksichtigen Sie dabei die folgenden Fragen:

  • Müssen sich Nutzer in Ihrer App oder auf Ihrer Plattform anmelden, um auf die Inhalte zugreifen zu können?
  • Benötigen Nutzer ein Abo?

    Nur Smartwatch-Aktionen:

    • Benötigen Nutzer ein Abo bei einem externen Dienstanbieter?
    • Bieten Sie ein mehrstufiges Abo, ein Abo mit mehreren Paketen oder ein Add-on-Abo an?
  • Nur Smartwatch-Aktionen:Müssen Nutzer die Inhalte ausleihen oder kaufen?

  • Ändert sich die Zugriffsanforderung im Laufe der Zeit?

  • Hängt die Zugriffsanforderung vom Gerätestandort ab?

Arten von Zugriffsbeschränkungen

Es gibt zwei Arten von Zugriffsbeschränkungen:

Paywall-Typ

Du kannst den Zugriff auf Inhalte anhand des Paywall-Typs einschränken. In der folgenden Tabelle werden die verschiedenen Paywall-Typen erläutert:

Paywall-Typ Beispiel Kategorie
Es ist kein Kauf und keine Anmeldung erforderlich. Crackle nologinrequired
Der Nutzer muss angemeldet sein, benötigt aber kein kostenpflichtiges Abo. Vudu (AVOD) free
Der Nutzer muss ein aktives Abo haben. Der Zugriff ist unabhängig von der Abo-Stufe. Netflix

subscription

Der Nutzer muss ein aktives Abo haben. Der Zugriff ist abhängig vom Abo-Stufe. Hulu (Add-ons)

subscription

<ph type="x-smartling-placeholder">
Die Inhalte sind nach dem kaufen. Vudu rental
Die Inhalte sind nach dem kaufen. Vudu purchase
Die Inhalte sind per Kabel-TV erhältlich. HBO GO externalSubscription

Paywall-Typ für Wiedergabeaktionen

Um den Paywall-Typ der Inhalte für Wiedergabeaktionen anzugeben, verwende die category im Aktionszugriffsspezifikation:

"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"
    }
  },
  ...
}

Paywall-Typ für Anhör-Aktionen

Um den Paywall-Typ der Inhalte für Anhör-Aktionen festzulegen, verwende die category im Angebotsobjekt:

"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"
    }
  },
  ...
}

Region

Sie müssen die geografischen Regionen angeben, in denen die Inhalte verfügbar sind. Verwenden Sie eine oder der beiden folgenden Attribute:

Ein Nutzer kann auf Inhalte zugreifen, wenn sich der Gerätestandort in einer Region befindet, angegeben in eligibleRegion und befindet sich nicht in einer Region, die in ineligibleRegion.

Mit den Attributen eligibleRegion und ineligibleRegion ist Folgendes möglich: Werte:

Wenn der Inhalt weltweit verfügbar ist, verwenden Sie den folgenden speziellen Wert für eligibleRegion:

"eligibleRegion": "EARTH",

zulässige Anwendungsfälle

Hier einige Anwendungsbeispiele für das Attribut eligibleRegion:

  • Beispiel 1: eligibleRegion mit einer Liste von Ländern.
  • Beispiel 2: eligibleRegion mit einem GeoShape-Objekt, das eine Liste mit Postleitzahlen enthält.
  • Beispiel 3: eligibleRegion mit einem GeoShape-Objekt, das enthält eine Liste mit FSA-Codes (Forward Sortation Area).
  • Beispiel 4: eligibleRegion mit einem GeoShape-Objekt, das enthält eine DMA-ID.
  • Beispiel 5:eligibleRegion mit einer Liste von GeoShape-Objekten. Jede enthält eine DMA-ID.
  • Beispiel 6: ineligibleRegion mit ausgeblendeten Postleitzahlen.

Beispiel 1

eligibleRegion durch eine Liste der Länder:


"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"
    }
  ]
}

Beispiel 2

eligibleRegion durch ein GeoShape-Objekt, das enthält eine Liste mit Postleitzahlen:


"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"
    ]
  }
}

Beispiel 3

eligibleRegion durch ein GeoShape-Objekt, das enthält eine Liste der FSA-Codes (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"
    ]
  }
}

Beispiel 4

eligibleRegion durch ein GeoShape-Objekt, das enthält eine DMA-ID:


"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"
      }
    ]
  }
}

Beispiel 5

eligibleRegion durch eine Liste von GeoShape-Objekten. Jede enthält eine DMA-ID:


"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"
         }
      }
   ]
}

Beispiel 6

ineligibleRegion mit blockierten Postleitzahlen:


"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"
    ]
  }
}

Berechtigungs-ID

Die Berechtigungs-ID entitlementId verweist auf einen String, der für Zugriff auf eine Gruppe von Inhalten in Ihrem Medienkatalog. Um zu ermitteln, ob ein Nutzer auf Ihre Inhalte zugreifen kann, unternimmt Google die folgenden Schritte:

  1. Wir starten einen API-Aufruf an Ihre Berechtigungsendpunkt zum Empfangen der Berechtigungskennungen.
  2. Wir ermitteln die erforderlichen Berechtigungs-IDs der Inhalte in Ihren Medien Aktionsfeed.
  3. Wir gleichen die entitlementId eines Nutzers mit dem identifier der Eigenschaft des Medienaboobjekt in Ihrem Feed. Wenn mindestens 1 entitlementId stimmt, wird festgelegt, dass der Nutzer auf die Inhalte.
<ph type="x-smartling-placeholder">
</ph>
Abbildung 2: Eine der Berechtigungskennungen des Nutzers stimmt überein. die erforderliche Berechtigungs-ID des Inhalts.

Google empfiehlt die folgende Syntax für entitlementId:

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

Syntaxbeispiele:

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

Beispiel für eine Berechtigungs-ID

Der Feed von MediaExampleCompany gibt an, dass Movie XYZ die example.com:basic entitlementId, wie gezeigt:

{
  "@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
        ...
      },
      ...
    }
  },
  ...
}

Häufige Anwendungsfälle für den Zugriff

Im Folgenden sind häufige Anwendungsfälle für den Zugriff aufgeführt:

  • Kostenlos (keine Anmeldung erforderlich): Das Inhalte sind ohne Anmeldung, Abo oder Kauf verfügbar.
  • Kostenlos (Anmeldung erforderlich): Nutzer müssen angemeldet sein, es ist jedoch kein Abo erforderlich.
  • Einstufiges Abo: Für die Inhalte ist ein Abo erforderlich. Alle Abonnenten können auf dasselbe egal ob Filme oder Folgen, unabhängig von Abo Paket.
  • Mehrstufiges Abo: Der Inhalte erfordern ein Abo. Abonnenten können auf verschiedene Inhalte zugreifen, egal ob Filme oder Folgen, je nach Abostufe. Beispiel: Silber im Vergleich zu Gold
  • Add-on-Abo:Der Inhalt erfordert ein Abo. Abonnenten können Premium-Inhalte auf ihren reguläres Abo.
  • Einmaliger Kauf:Die Inhalte können gekauft werden können. Danach kann der Nutzer unbegrenzt darauf zugreifen.
  • Live-TV:Mit einem Abo haben Sie Zugriff auf lokale, nationale und Premiumkanäle.
  • Drittanbieterabo: Dazu muss sich der Nutzer bei seinem Kabelanbieter anmelden.

Kostenlos (keine Anmeldung erforderlich)

Keine Anmeldung erforderlich

Die Inhalte sind ohne Anmeldung oder Abo verfügbar.


{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "nologinrequired",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  }
}
  • Setzen Sie category auf nologinrequired.
  • Geben Sie nicht expectAcceptanceOf an.

Kostenlos (Anmeldung erforderlich)

Anmeldung erforderlich

Für den Inhalt müssen Nutzer angemeldet sein, es ist jedoch kein Abo.


{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "free",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  }
}
  • Setzen Sie category auf free.
  • Geben Sie nicht expectAcceptanceOf an.

Einstufiges Abo

Bei einem einstufigen Abomodell hat ein Dienstanbieter eine Abo-Stufe. Alle Abonnenten können auf dieselben Inhalte zugreifen, Filme oder Folgen, unabhängig von ihrem Abopaket.


{
  "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"
    }
  }
}

Mehrstufiges Abo

Bei einem gestaffelten Abomodell hat ein Dienstanbieter mehrere Abostufen wie Gold, Silber und Bronze Nutzer mit dem Abo der höheren Stufe können auf alle die Inhalte niedrigerer Stufe. Nutzer der niedrigeren Stufe kann das Abo nicht auf Inhalte der höheren Stufe zugreifen.

Abbildung 3. Ein gestaffeltes Abomodell und seine Darstellung von Berechtigungen.

Stellen Sie sich folgendes Szenario vor:

  • Jane abonniert die Stufe Gold. Meine Berechtigungen Der Endpunkt gibt die folgenden entitlementId-IDs zurück:
    • example.com:bronze
    • example.com:silver
    • example.com:gold
  • Jonas hat die Stufe Bronze abonniert. Meine Berechtigungen Endpunkt gibt die folgende entitlementId zurück:
    • example.com:bronze
  • Für Ihren Media Actions-Feed gelten die folgenden Anforderungen: <ph type="x-smartling-placeholder">
      </ph>
    • Für Film A ist example.com:bronze erforderlich.
    • Für Film B ist example.com:silver erforderlich.

In diesem Szenario bestimmt Google die folgenden Zugriffsebenen für Erika. und John:

  • Sowohl Jane als auch John haben Zugriff auf Film A.
  • Jane hat Zugriff auf Film B, Max jedoch nicht.
{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "subscription",
    "requiresSubscription": {
      "@type": "MediaSubscription",
      "@id": "http://www.example.com/basic_subscription",
      "name": "Bronze",
      "commonTier": true
      ...
    },
    ...
  }
}

Add-on-Abo

Beim Add-on-Abomodell ermöglicht ein Dienstanbieter Nutzern, ihre Berechtigungen erweitern und Kanäle zu einem Basisabo hinzufügen. Nutzer*innen beliebig viele Kanäle hinzufügen.

<ph type="x-smartling-placeholder">
</ph>
Abbildung 4: Ein Add-on-Abomodell und seine Darstellung von Berechtigungen.

Stellen Sie sich folgendes Szenario vor:

  • Jane hat zusätzlich PRO und Sportz. Basic-Abo. Dein Berechtigungsendpunkt gibt Folgendes zurück: folgende entitlementId-Kennungen:
    • example.com:basic
    • example.com:pro
    • example.com:sportz
  • Jonas hat nur das Basic-Abo. Meine Berechtigungen Endpunkt gibt die folgende entitlementId zurück:
    • example.com:basic
  • Für Ihren Media Actions-Feed gelten die folgenden Anforderungen: <ph type="x-smartling-placeholder">
      </ph>
    • Für Film A ist example.com:basic erforderlich.
    • Für Film B ist example.com:pro erforderlich.

In diesem Szenario bestimmt Google die folgenden Zugriffsebenen für Erika. und John:

  • Sowohl Jane als auch John haben Zugriff auf Film A.
  • Jane hat Zugriff auf Film B, Max jedoch nicht.
{
  "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
        }
    }
  }
}

Einmaliger Kauf

Kauf

Die Inhalte sind nach dem kaufen.


{
  "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/"
      }
    }
  }
}
  • Setzen Sie category auf purchase.
  • expectAcceptanceOf einschließen in actionAccessibilityRequirement, um den Preis des kaufen.

Verleih

Die Inhalte sind nach dem kaufen.


{
  "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/"
      }
    }
  }
}
  • Setzen Sie category auf rental.
  • expectAcceptanceOf einschließen in actionAccessibilityRequirement, um den Preis des Verleih.

Live-TV

In einem Media Actions-Feed kannst du den Zugriff auf ein Live-TV einschränken channel oder Ereignis auf Basis des folgenden zwei Nutzerbedingungen:

  • Standort des Nutzergeräts

    Um den Zugriff auf den TV-Kanal einzuschränken, geben Sie das Gebiet an, in dem die Nutzer darauf zugreifen können. Diese Bedingung gilt normalerweise für lokale Sender TV-Kanälen.

  • Kontostatus des Nutzers

    Wenn der Zugriff auf einen TV-Kanal von der Einstellung auf Kontoebene des Nutzers abhängt, nutzen Berechtigungskennungen für stellen die Einschränkung dar.

    Diese Bedingung gilt in der Regel für die folgenden Anwendungsfälle:

    • Set:Nationale Kanäle sind oft enthalten in und die Nutzer wählen aus, welches Bundle sie abonnieren möchten.
    • Add-on:Bei einigen Premiumkanälen müssen Nutzer selektiv zusätzliche Kanäle zu ihrem Abo hinzufügen.
    • Regional Sports Network (RSN): RSNs werden in der Regel die mit dem Zuhause des Nutzers Standort. Nutzer können sich Inhalte ansehen auch wenn sie nicht zu Hause sind, Standort.

Drittanbieterabo

Drittanbieterabo

Die Inhalte stehen den Abonnenten eines anderen Dienstes zur Verfügung.


{
  "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"
    }
  }
}
  • Fügen Sie authenticator hinzu, um anzugeben, dass ein anderer Dienst authentifiziert die Abonnenten. HBO GO erfordert beispielsweise eine beim Kabelanbieter abonnieren.

Gängige Stufenpakete

Inhalte der allgemeinen Stufe sind für alle Abonnenten verfügbar, unabhängig von ihren Abo-Paket. Die gemeinsame Stufe gilt für alle Inhalte mit dem category von subscription. Weitere Informationen zum Attribut category findest du in der Bereich Paywall-Typ.

Warum ist ein Paket mit einer allgemeinen Stufe erforderlich?

Mehrere Google-Produkte bieten TV- und Filmempfehlungen an Nutzer dies umfasst die Google Suche, Android TV und Google Assistant. Nutzer festlegen Erwartungen an die Kosten haben, muss Google verstehen, welche Inhalte für alle -Abonnenten über die gemeinsame Stufe. Google muss auch verstehen, Inhalte sind für Abonnenten mit bestimmten Abopaketen verfügbar.

Google empfiehlt Titel, die auf der allgemeinen Stufe verfügbar sind, es sei denn, Sie unterstützen die entitlement API zugreifen. Das API ermöglicht es Google, die nicht-gemeinsamen Titel, die jeweils auf die der Nutzer zugreifen kann.

Wann sollte ich ein Paket mit einer gemeinsamen Stufe erstellen?

Ein allgemeines Stufenpaket ist erforderlich, wenn Ihr Dienst Inhalte anbietet, die für alle Abonnenten verfügbar. Dazu gehören auch Dienste, bei denen nur ein Paket angeboten wird. und Dienste, die mehrere Pakete oder Add-ons anbieten.

Anbieter, bei denen keine Inhalte für alle Abonnenten verfügbar sind, müssen keine Inhalte erstellen, ein gängiges Paket. Ein Beispiel hierfür sind Dienstleister, in all ihren Paketen ansehen.

Beispiele für gängige Stufen

Im Folgenden finden Sie Beispiele für die allgemeine Stufe.

Gestaffeltes Abo

Bei einem gestaffelten Abomodell hat ein Dienstanbieter mehrere Abos, Gold, Silber und Bronze. Nutzer mit der Abonnenten der oberen Preisstufe Zugriff auf alle Inhalte in den niedrigeren Stufen haben. Nutzer*innen der niedrigeren Abo-Stufe keinen Zugriff auf die Inhalte der oberen Stufe. Die folgende Abbildung zeigt ein Beispiel für die Paketstruktur.

Die Stufe „Gold“ umfasst alle Inhalte der Stufe „Silber“.
            enthält alle Bronze-Stufen.
Abbildung 5. Gestaffelte Abopaketstruktur.

Im folgenden Codebeispiel ist das Bronze-Paket die allgemeine Stufe, da alle -Nutzer haben Zugriff auf alle Inhalte in dieser Stufe.

"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
    }
  ],

Add-ons

Beim Add-on-Abomodell ermöglicht ein Dienstanbieter den Nutzern, und füge Kanäle zu einem Basisabo hinzu. Nutzer können hinzufügen als wie viele Kanäle erwünscht. In der folgenden Abbildung sehen Sie ein Beispiel für das Paket. Struktur.

Jeder Nutzer beginnt mit dem einfachen Kanal und kann auf Wunsch
            der Kanäle PRO, Sportz und Moviemax.
Abbildung 6: Struktur von Add-ons-Abopaketen

Wenn ein Kanal allen Nutzern zur Verfügung steht und für den Channel channel, können Sie das Paket mit dem Paket der allgemeinen Stufe zusammenführen.

Im folgenden Codebeispiel ist das Basispaket die allgemeine Stufe, da alle -Nutzer haben Zugriff auf alle Inhalte in diesem Paket.

"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
    }
  ],

Pakete mit Inhalten, die sich überschneiden

In einem Inhaltsmodell, in dem Pakete Inhalte haben, die sich überschneiden, wird ein Dienst Anbieter verkauft Pakete, die Inhalte aus anderen Paketen enthalten. Die Die folgende Abbildung zeigt ein Beispiel für die Paketstruktur.

Ein Venn-Diagramm, in dem die Überschneidung zwischen den Paketen 1, 2 und 3
            mit der Bezeichnung „Common Tier“.
Abbildung 7. Paketstruktur mit sich überschneidenden Inhalten

Im folgenden Codebeispiel bietet der Anbieter drei Pakete an, in denen einige Inhalte in allen Paketen. In diesem Fall wird ein viertes Paket die die gemeinsame Stufe darstellt, ist erforderlich. Alle Inhalte müssen enthalten sein. in allen drei Paketen verfügbar.

"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
    }
  ],

Pakete ohne sich überschneidende Inhalte

In einem Inhaltsmodell, bei dem sich alle Inhaltspakete nicht überschneiden, Anbieter verkauft Pakete, die keine Inhalte aus anderen Paketen enthalten. Die Die folgende Abbildung zeigt ein Beispiel für die Paketstruktur.

Die Pakete 1, 2 und 3 sind völlig unabhängig voneinander.
Abbildung 8. Paketstruktur ohne sich überschneidende Elemente Inhalte.

Im folgenden Beispiel bietet der Anbieter drei Pakete ohne Inhalt an. die sich mit allen Paketen überschneiden. Es ist kein allgemeines Stufenpaket erforderlich.

"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
    }
  ],

Berechtigungsendpunkt

Verwenden Sie die Informationen aus diesem Abschnitt, um einen HTTPS-Endpunkt zu hosten, der den Berechtigungen, die einem Nutzer zugeordnet sind.

Vorbereitung

Prüfen Sie zuerst, ob Ihr Dienst die OAuth 2.0-Vorgang mit Google senden.

Anfrage

Um die Berechtigungen eines Nutzers zu erhalten, sendet Google eine Anfrage mit den OAuth-Token des Nutzers. Der Endpunkt muss den Nutzer anhand dieses OAuth identifizieren. Token. Sehen Sie sich folgendes Beispiel an:

GET /resource HTTP/1.1
Host: server.example.com
Authorization: Bearer <OAuthToken>

Antwort

Der Endpunkt muss eine Antwort mit den folgenden Attributen zurückgeben:

Attribut
subscription

Erforderlich

Dies ist ein Feld innerhalb der Stammantwort.

subscription.type

Erforderlich

Diese Eigenschaft kann die folgenden Werte haben:

  • ActiveSubscription: Der Nutzer hat ein aktives Abo. an den Anbieter gesendet werden.
  • ActiveTrial: Der Nutzer hat einen aktiven Testzeitraum für die Dienstanbieter.
  • InactiveSubscription: Der Nutzer hat keine aktive oder ein aktives Probeabo.
subscription.expiration_date

Optional

Das Ablaufdatum dieser Berechtigung in ISO 8601-Format einschließlich der Zeitzone. Weitere Informationen finden Sie unter Ablaufdaten.

entitlements

Optional

Dies ist eine Stamm-Property mit den entitlementId-Werten, die die Nutzer-Holds.

entitlements.entitlement

Erforderlich, wenn der Zugriff auf Ihren Streamingkatalog variiert je nach Art des Abos.

Diese Eigenschaft enthält die entitlementId. Weitere Informationen finden Sie unter Berechtigungs-ID:

entitlements.expiration_date

Optional

Das Ablaufdatum dieses Abos in ISO 8601-Format einschließlich der Zeitzone. Weitere Informationen finden Sie unter Ablaufdaten.

Ablaufdaten

Es gibt zwei Attribute in einer Endpunktantwort, die sich auf den Ablauf beziehen Daten: subscription.expiration_date und entitlements.expiration_date. Ich entweder eines davon oder keines von beiden enthalten. Welche Methode Sie verwenden, hängt davon ab, Ihr Abomodell.

Abomodell
Der Zugriff auf deinen Streamingkatalog ist für alle Abonnenten gleich. Weil du das entitlements-Objekt nicht angeben musst auf subscription.expiration_date.

Der Zugriff auf Ihren Streamingkatalog hängt von den Details eines das Abo des Nutzers.

Wenn Ihr Abomodell mehrere Stufen oder Add-ons hat, im Laufe der Zeit ablaufen lassen, führen Sie einen der folgenden Schritte aus:

  • Wenn alle entitlements.entitlement-Werte ablaufen am und geben Sie subscription.expiration_date an.
  • Wenn einige entitlements.entitlement-Werte ablaufen am zu unterschiedlichen Zeiten, geben Sie entitlements.expiration_date an.

Beispielantworten

Hier siehst du Beispielantworten für verschiedene Abostatus:

  • Aktives Abo
  • Aktives Abo mit Ablaufdatum
  • Kein Abo
  • Aktive Abos für mehrere Stufen oder Add-ons

Aktives Abo

Aktives Abo

Ein Nutzer hat ein aktives Abo für example.com. In dieser haben alle Abonnenten Zugriff auf deinen gesamten Streaming-Katalog. unabhängig von ihrem Abotyp.


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

Aktives Abo mit Ablaufdatum

Aktives Abo mit Ablaufdatum

Ein Nutzer hat ein aktives Abo für example.com und die Abo hat ein Ablaufdatum. In diesem Fall haben alle Abonnenten Zugriff auf Ihren gesamten Streamingkatalog unabhängig von deren Abo Typ.


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

Kein Abo

Kein Abo

Ein Nutzer hat kein Abo für example.com.


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

Aktive Abos für mehrere Stufen oder Add-ons

Aktive Abos für mehrere Stufen oder Add-ons

Ein Nutzer hat bis zu einem bestimmten Datum ein Abo von example.com:premium.


{
  "subscription" : {
    "type": "ActiveSubscription",
  }
  "entitlements": [
    {
      "entitlement": "example.com:premium",
      "expiration": "2019-11-10T10:00:00Z"
    }
  ]
}
<ph type="x-smartling-placeholder">

Ratenbegrenzung

Google aktualisiert die Berechtigungsinformationen eines Nutzers maximal alle sechs Stunden. Bis die maximale Anzahl von Abfragen pro Sekunde (Queries per Second, QPS) ausgleichen, über einen längeren Zeitraum zu Ihrem Endpunkt. Daher können Sie den erwarteten Durchschnitt Abfragen pro Sekunde für Ihren Endpunkt anhand der folgenden Formel:

Erwartete durchschnittliche Abfragen pro Sekunde = <Gesamtzahl der Nutzer> / 21.600 Sekunden (6 Stunden x 60 Minuten x 60 Sekunden)

Wenn Sie eine große Anzahl von Nutzern unterstützen, kann Google das 6-Stunden-Intervall anpassen. Wenden Sie sich bei Bedarf an Google, um die Konfiguration zu besprechen.

Google kontaktieren

Wenn der Endpunkt bereit ist, wenden Sie sich an Google und teilen Sie ihm die URL des Endpunkts mit.

Attribute der Aktionszugriffsspezifikation

Weitere Informationen finden Sie in der Der Abschnitt Eigenschaften der Aktionszugriffsspezifikation als Referenz Informationen.