Requisitos de acceso

Los usuarios prefieren mirar o escuchar contenido al que ya pueden acceder, como el contenido de su suscripción existente. Si Google sabe qué contenido puede en tu app o plataforma, Google podrá crear un mejor resultado de la búsqueda para dirigir al usuario a ese contenido.

Figura 1: Los requisitos de acceso ayudan a tus suscriptores a acceder el contenido de tu app o plataforma.

Identifica los requisitos de acceso al contenido

Debes identificar el requisito de acceso para cada paquete de contenido en tu en tu catálogo de productos. Cuando lo hagas, ten en cuenta las siguientes preguntas:

  • ¿Los usuarios deben acceder a tu app o plataforma para ver el contenido?
  • ¿Los usuarios necesitan una suscripción?

    Solo para Acciones de reproducción:

    • ¿Los usuarios necesitan una suscripción de un proveedor de servicios externo?
    • ¿Ofreces una suscripción por niveles, de varios paquetes o con complementos?
  • Solo Acciones de reproducción: ¿Los usuarios deben alquilar o comprar el contenido?

  • ¿Los requisitos de acceso cambian con el tiempo?

  • ¿El requisito de acceso depende de la ubicación del dispositivo?

Tipos de restricción de acceso

Existen dos tipos de restricciones de acceso:

Tipo de muro de pago

Puedes restringir el acceso al contenido según el tipo de muro de pago. La siguiente tabla se detallan los diferentes tipos de muros de pago:

Tipo de muro de pago Ejemplo Categoría
No se requiere ninguna compra ni acceso. Crackle nologinrequired
El usuario debe acceder, pero no necesita una suscripción pagada. Vudu (AVOD) free
El usuario debe tener una suscripción activa. El acceso es independiente de el nivel de suscripción. Netflix

subscription

El usuario debe tener una suscripción activa. El acceso depende del nivel de suscripción. Hulu (complementos)

subscription

El contenido está disponible por un tiempo limitado después de la compra. Vudu rental
El contenido está disponible por un período indefinido después de la compra. Vudu purchase
El contenido está disponible mediante una suscripción de cable. HBO Go externalSubscription

Tipo de muro de pago para las acciones de reproducción

Para especificar el tipo de muro de pago de contenido para las Acciones de reproducción, usa la category propiedad en la Especificación de acceso a acciones:

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

Tipo de muro de pago para las acciones de escucha

Si quieres especificar el tipo de muro de pago de contenido para las acciones de escucha, usa la category propiedad en la objeto de oferta:

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

Área geográfica

Debes especificar las áreas geográficas donde el contenido está disponible. Usa uno o de las siguientes propiedades:

Un usuario puede acceder al contenido si la ubicación del dispositivo está en cualquier región que especificado en eligibleRegion y no se encuentra en ninguna región que se especifica en ineligibleRegion

Las propiedades eligibleRegion y ineligibleRegion permiten lo siguiente: valores:

Si el contenido está disponible a nivel mundial, usa el siguiente valor especial para eligibleRegion

"eligibleRegion": "EARTH",

Casos de uso de eligibleRegion

Los siguientes son ejemplos de casos de uso de la propiedad eligibleRegion:

  • Ejemplo 1: eligibleRegion con una lista de países.
  • Ejemplo 2: eligibleRegion con un objeto GeoShape que contiene una lista de códigos postales.
  • Ejemplo 3: eligibleRegion con un objeto GeoShape que contiene una lista de códigos del Área de clasificación directa (FSA).
  • Ejemplo 4: eligibleRegion con un objeto GeoShape que contiene un ID de DMA.
  • Ejemplo 5: eligibleRegion con una lista de objetos GeoShape. Cada uno contiene un ID de DMA.
  • Ejemplo 6: ineligibleRegion con códigos postales bloqueados.

Ejemplo 1

eligibleRegion con una lista de países:


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

Ejemplo 2

eligibleRegion con un objeto GeoShape que contiene una lista de códigos postales:


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

Ejemplo 3

eligibleRegion con un objeto GeoShape que contiene una lista de códigos del Área de clasificación directa (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"
    ]
  }
}

Ejemplo 4

eligibleRegion con un objeto GeoShape que contiene un ID de 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"
      }
    ]
  }
}

Ejemplo 5

eligibleRegion con una lista de objetos GeoShape. Cada uno contiene un ID de 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"
         }
      }
   ]
}

Ejemplo 6

ineligibleRegion con códigos postales bloqueados:


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

Identificador de derechos

El identificador de derechos, entitlementId, hace referencia a una cadena que representa acceso a un grupo de contenido de tu catálogo de medios. Para determinar si un usuario tiene acceso a tu contenido, Google sigue estos pasos:

  1. Hacemos una llamada a la API a tu Extremo de derechos para recibir las direcciones identificadores de derechos.
  2. Buscamos los identificadores de derechos necesarios para el contenido en tu contenido multimedia. Feed de acciones.
  3. Hacemos coincidir el entitlementId de un usuario con identifier propiedad del objeto de suscripción a medios de tu feed. Si al menos una entitlementId, determinamos que el usuario puede acceder a la contenido.
Figura 2: Uno de los identificadores de derechos del usuario coincide el identificador de derechos requerido del contenido.

Google recomienda que uses la siguiente sintaxis para entitlementId:

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

Ejemplos de sintaxis:

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

Ejemplo de identificador de derechos

El feed de MediaExampleCompany especifica que Movie XYZ requiere la example.com:basic entitlementId, como se muestra a continuación:

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

Casos de uso de acceso comunes

Los siguientes son casos de uso de acceso comunes:

  • Gratis (no se requiere acceso): Se trata de contenido está disponible sin acceso, suscripción ni compra.
  • Gratuito (se requiere acceso): El contenido requiere que los usuarios accedan, pero no requiere una suscripción.
  • Suscripción de un solo nivel: El contenido requiere una suscripción. Todos los suscriptores pueden acceder al mismo contenido, ya sean películas o episodios, independientemente de su suscripción .
  • Suscripción de varios niveles: El contenido requiere una suscripción. Los suscriptores pueden acceder a distintos contenidos, ya sean películas o episodios, según su nivel de suscripción. Por ejemplo: Plata contra oro.
  • Suscripción complementaria: El contenido requiere una suscripción. Los suscriptores pueden agregar contenido premium a su suscripción normal.
  • Compra única: El contenido puede que se compre, después de lo cual el usuario podrá acceder a él de forma indefinida.
  • TV en vivo: La suscripción incluye acceso a canales locales, nacionales y premium.
  • Suscripción de terceros: El contenido requiere que el usuario acceda con su proveedor de cable.

Gratis (no se requiere acceso)

No se requiere acceso

El contenido está disponible sin acceso ni suscripción.


{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "nologinrequired",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  }
}
  • Establece category en nologinrequired.
  • No incluyas expectAcceptanceOf.

Gratuito (es necesario acceder a la cuenta)

Se requiere acceder

El contenido requiere que los usuarios accedan, pero no requiere suscripción.


{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "free",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  }
}
  • Establece category en free.
  • No incluyas expectAcceptanceOf.

Suscripción de un solo nivel

En un modelo de suscripción de un solo nivel, un proveedor de servicios tiene uno nivel de suscripción. Todos los suscriptores pueden acceder al mismo contenido, ya sea películas o episodios, independientemente del paquete de suscripción.


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

Suscripción de varios niveles

En un modelo de suscripción por niveles, un proveedor de servicios tiene varios niveles de suscripción, como Oro, Plata y Bronce. Los usuarios que tengan la suscripción de nivel superior pueden acceder a todas el contenido de nivel inferior. Sin embargo, los usuarios con el nivel inferior suscripción no puede acceder al contenido de nivel superior.

Figura 3: Un modelo de suscripción por niveles y su representación de derechos.

Considera la siguiente situación:

  • Jane se suscribe al nivel Oro. Tus derechos El extremo muestra los siguientes identificadores entitlementId:
    • example.com:bronze
    • example.com:silver
    • example.com:gold
  • Juan está suscrito al nivel Bronce. Tus derechos El extremo muestra el siguiente entitlementId:
    • example.com:bronze
  • En tu feed de Acciones multimedia, se describen los siguientes requisitos:
    • La película A requiere example.com:bronze.
    • La película B requiere example.com:silver.

En esta situación, Google determina los siguientes niveles de acceso para Jane. y John:

  • Tanto Juana como Juan tienen acceso a la Película A.
  • Julia tiene acceso a la Película B, pero Juan no.
{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "subscription",
    "requiresSubscription": {
      "@type": "MediaSubscription",
      "@id": "http://www.example.com/basic_subscription",
      "name": "Bronze",
      "commonTier": true
      ...
    },
    ...
  }
}

Suscripción complementaria

En un modelo de suscripción de complementos, un proveedor de servicios permite a los usuarios expandir sus derechos y agregar canales a una suscripción básica. Usuarios agregar todos los canales que desee.

Figura 4: Un modelo de suscripción a complementos y su representación de derechos.

Considera la siguiente situación:

  • Jane tiene PRO y Sportz, además de Basic. Tu extremo de derechos devuelve el los siguientes identificadores entitlementId:
    • example.com:basic
    • example.com:pro
    • example.com:sportz
  • Juan solo tiene la suscripción Basic. Tus derechos El extremo muestra el siguiente entitlementId:
    • example.com:basic
  • En tu feed de Acciones multimedia, se describen los siguientes requisitos:
    • La película A requiere example.com:basic.
    • La película B requiere example.com:pro.

En esta situación, Google determina los siguientes niveles de acceso para Jane. y John:

  • Tanto Juana como Juan tienen acceso a la Película A.
  • Julia tiene acceso a la Película B, pero Juan no.
{
  "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
        }
    }
  }
}

Compra única

Compra

El contenido está disponible por un período indefinido después de la compra.


{
  "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/"
      }
    }
  }
}
  • Establece category en purchase.
  • Incluir expectAcceptanceOf en actionAccessibilityRequirement para indicar el precio del compra.

Alquiler

El contenido está disponible por un tiempo limitado después de la compra.


{
  "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/"
      }
    }
  }
}
  • Establece category en rental.
  • Incluir expectAcceptanceOf en actionAccessibilityRequirement para indicar el precio del alquiler.

TV en vivo

En un feed de Acciones multimedia, puedes restringir el acceso a una TV en vivo channel o evento basado en el siguientes dos condiciones de usuario:

  • La ubicación del dispositivo del usuario

    Para restringir el acceso al canal de TV, especifica el área donde los usuarios tengan acceso a ellos. Esta condición, por lo general, se aplica a transmisiones locales canales de TV.

  • El estado de la cuenta del usuario

    Si el acceso a un canal de TV depende de la configuración de la cuenta del usuario, usar identificadores de derechos representan la restricción.

    Por lo general, esta condición se aplica a los siguientes casos de uso:

    • Paquete: A menudo, los canales nacionales se incluyen en y los usuarios eligen a qué paquete quieren suscribirse.
    • Complemento: Algunos canales premium requieren que los usuarios agregar de manera selectiva canales adicionales a su suscripción.
    • Red deportiva regional (RSN): Por lo general, las RSN son asociados con la "casa" de un usuario ubicación. Los usuarios pueden mirar contenido en la RSN, incluso cuando viajan fuera de su "casa" ubicación.

Suscripción de terceros

Suscripción de terceros

El contenido está disponible para los suscriptores desde otro servicio.


{
  "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"
    }
  }
}
  • Agrega authenticator para indicar que se trata de un servicio diferente. autentica a los suscriptores. Por ejemplo, HBO GO requiere una suscripción del proveedor de cable.

Paquetes de nivel común

El contenido de nivel común está disponible para todos los suscriptores, independientemente de su de suscripción. El nivel común se aplica a todo el contenido con el category. de subscription. Para obtener más información sobre la propiedad category, consulta la Sección Tipo de muro de pago.

¿Por qué se requiere un paquete de nivel común?

Varios productos de Google ofrecen servicios de recomendaciones de películas a los usuarios; este incluye la Búsqueda de Google, Android TV y Asistente de Google. Cómo configurar el usuario más expectativas sobre el costo, Google debe comprender qué contenido está disponible para todos suscriptores a través del nivel común. Google también debe entender qué el contenido está disponible para suscriptores con paquetes de suscripción específicos.

Google recomienda títulos disponibles en el nivel común, a menos que admitas la API de derechos. La API le permite a Google comprender los títulos de nivel poco común que cada uno de ellos el usuario puede acceder.

¿Cuándo debo crear un paquete de nivel común?

Se requiere un paquete de nivel común cuando tu servicio ofrece contenido que se que está disponible para todos los suscriptores. Esto incluye los servicios que ofrecen un solo paquete y servicios que ofrecen múltiples paquetes o complementos.

Los proveedores que no tienen contenido disponible para todos los suscriptores no necesitan crear un paquete de nivel común. Por ejemplo, los proveedores de servicios que brindan servicios contenido en todos sus paquetes.

Ejemplos de nivel común

Los siguientes son ejemplos del nivel común.

Suscripción por niveles

En un modelo de suscripción por niveles, un proveedor de servicios tiene varias suscripciones como Oro, Plata y Bronce. Usuarios con el las suscripciones de nivel superior tienen acceso a todo el contenido de los niveles inferiores. Usuarios con la suscripción del nivel inferior no tienen acceso al contenido del nivel superior. del nivel de servicio. La siguiente imagen es un ejemplo de la estructura del paquete.

El nivel Oro contiene todo el contenido del nivel Plata, que
            contiene todo el nivel Bronce.
Figura 5: Estructura de paquetes de suscripción por niveles

En el siguiente ejemplo de código, el paquete Bronze es el nivel común porque todos los usuarios tengan acceso a todo el contenido de ese nivel.

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

Complementos

En un modelo de suscripción de complementos, un proveedor de servicios permite a los usuarios expandir sus derechos y agregar canales a una suscripción básica. Los usuarios pueden agregar como muchos canales como quieran. La siguiente imagen es un ejemplo del paquete en la nube.

Todos los usuarios comienzan con el canal Básico y pueden optar por agregar
            cualquier combinación de los canales PRO, Sportz y Moviemax.
Figura 6: Estructura del paquete de suscripción de complementos

Si tienes un canal disponible para todos los usuarios y no hay costo para el puedes combinar el paquete con el paquete de nivel común.

En el siguiente ejemplo de código, el paquete básico es el nivel común porque todos los usuarios tienen acceso a todo el contenido de este paquete.

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

Paquetes con contenido que se superpone

En un modelo de contenido en el que los paquetes tienen contenido que se cruza, un servicio proveedor vende paquetes que incluyen cierto contenido de otros paquetes. El la siguiente imagen es un ejemplo de la estructura del paquete.

Un diagrama de Venn en el que la superposición entre los paquetes 1, 2 y 3 es
            con la etiqueta &quot;Nivel común&quot;.
Figura 7: Estructura de paquetes con contenido con intersección

En el siguiente ejemplo de código, el proveedor ofrece tres paquetes en los que se el contenido se cruza en todos los paquetes. En este caso, un cuarto paquete que representa el nivel común es obligatorio. Debe incluir todo el contenido disponibles en los tres paquetes.

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

Paquetes sin contenido intersecto

En un modelo de contenido en el que los paquetes de contenido no se cruzan, un servicio proveedor vende paquetes que no incluyen contenido de otros paquetes. El la siguiente imagen es un ejemplo de la estructura del paquete.

Los paquetes 1, 2 y 3 son completamente independientes.
Figura 8: Estructura de paquetes sin intersección contenido.

En el siguiente ejemplo, el proveedor ofrece tres paquetes sin contenido que se cruzan en todos los paquetes. No se requiere un paquete de nivel común.

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

Extremo de derechos

Usa la información de esta sección para alojar un extremo HTTPS que devuelva derechos asociados con un usuario.

Requisitos

Antes de comenzar, verifica que tu servicio admita Flujo de OAuth 2.0 con Google

Solicitud

Para recibir los derechos de un usuario, Google envía una solicitud que contiene el elemento token de OAuth del usuario. Tu extremo debe identificar al usuario en función de ese OAuth token. Consulta el siguiente ejemplo:

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

Respuesta

Tu extremo debe mostrar una respuesta con las siguientes propiedades:

Propiedad
subscription

Obligatorio

Este es un campo dentro de la respuesta raíz.

subscription.type

Obligatorio

Esta propiedad puede tener los siguientes valores:

  • ActiveSubscription: El usuario tiene una suscripción activa. al proveedor.
  • ActiveTrial: El usuario tiene una prueba activa para el proveedor.
  • InactiveSubscription: El usuario no tiene un o una prueba activa.
subscription.expiration_date

Opcional

La fecha de vencimiento de este derecho, en Formato ISO 8601, que incluye la zona horaria. Para obtener más detalles, consulta Fechas de vencimiento.

entitlements

Opcional

Esta propiedad raíz contiene los valores entitlementId que conservaciones de usuarios.

entitlements.entitlement

Obligatorio si el acceso a tu catálogo de transmisión varía según el tipo de suscripción.

Esta propiedad contiene el entitlementId. Para ver más información, consulta Identificador de derechos:

entitlements.expiration_date

Opcional

La fecha de vencimiento de esta suscripción, en Formato ISO 8601, que incluye la zona horaria. Para obtener más detalles, consulta Fechas de vencimiento.

Fechas de vencimiento

Hay dos propiedades en una respuesta de extremo que se ocupan del vencimiento fechas: subscription.expiration_date y entitlements.expiration_date. Tú puede incluir una o ninguna, pero no ambas. El modelo que uses dependerá de tu modelo de suscripción.

Modelo de suscripción
El acceso a tu catálogo de transmisión es el mismo para todos los suscriptores. Porque no necesitas especificar el entitlements del grupo de anuncios, especifica subscription.expiration_date.

El acceso a tu catálogo de transmisión varía según los detalles de un suscripción del usuario.

Si tu modelo de suscripción tiene varios niveles o complementos que vencerán con el tiempo, realiza una de las siguientes acciones:

  • Si todos los valores entitlements.entitlement vencen el al mismo tiempo, especifica subscription.expiration_date.
  • Si algunos valores de entitlements.entitlement vencen el horarios diferentes, especifica entitlements.expiration_date.

Respuestas de ejemplo

Las siguientes son respuestas de ejemplo de diferentes estados de suscripción:

  • Suscripción activa
  • Suscripción activa con fecha de vencimiento
  • Sin suscripción
  • Suscripciones activas a varios niveles o complementos

Suscripción activa

Suscripción activa

Un usuario tiene una suscripción activa a example.com. En este caso, todos los suscriptores tienen acceso a todo tu catálogo de transmisiones independientemente del tipo de suscripción.


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

Suscripción activa con fecha de vencimiento

Suscripción activa con fecha de vencimiento

Un usuario tiene una suscripción activa a example.com, y suscripción tiene una fecha de vencimiento. En este caso, todos los suscriptores tienen acceso a todo tu catálogo de transmisión, sin importar la suscripción que tengan el tipo de letra.


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

Sin suscripción

Sin suscripción

Un usuario no tiene una suscripción a example.com.


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

Suscripciones activas a varios niveles o complementos

Suscripciones activas a varios niveles o complementos

Un usuario tiene una suscripción a example.com:premium hasta una fecha determinada.


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

Límite de frecuencia

Google actualiza la información sobre derechos del usuario hasta cada seis horas. Para para optimizar la cantidad máxima de consultas por segundo (QPS), Google distribuye las consultas a tu extremo de manera uniforme. Así, puedes estimar el promedio esperado QPS para tu extremo con la siguiente fórmula:

Promedio esperado de QPS = <cantidad total de usuarios> / 21,600 segundos (6 horas × 60 minutos × 60 segundos)

Si brindas asistencia a una gran cantidad de usuarios, Google puede ajustar el intervalo de 6 horas. Si es necesario, comunícate con Google para analizar la configuración.

Comunicarse con Google

Cuando tu extremo esté listo, comunícate con Google para informar su URL.

Propiedades de especificación de acceso a acciones

Consulta la sección de propiedades de acción de acceso como referencia información.