Información acerca de los documentos multimedia y los almacenes de datos

En esta página, se proporciona información sobre los documentos y los almacenes de datos para los medios. Si usas recomendaciones de contenido multimedia o la búsqueda de contenido multimedia, revisa los requisitos del esquema para tus documentos y almacenes de datos en esta página antes de subir tus datos.

Descripción general

Un documento es cualquier elemento que subas a un almacén de datos de las aplicaciones de IA. En el caso de los medios, un documento suele contener información de metadatos sobre el contenido multimedia, como videos, artículos de noticias, archivos de música o podcasts. El objeto Document de la API captura esta información de metadatos.

Tu almacén de datos contiene una colección de documentos que subiste. Cuando creas un almacén de datos, especificas que contendrá documentos multimedia. Los almacenes de datos de contenido multimedia solo se pueden adjuntar a apps de medios, no a otros tipos de apps, como las de búsqueda personalizada y recomendaciones. En la API, los almacenes de datos se representan con el recurso DataStore.

La calidad de los datos que subes tiene un efecto directo en la calidad de los resultados que proporcionan las apps de medios. En general, cuanto más precisa y específica sea la información que puedas proporcionar, mejor será la calidad de tus resultados.

Los datos que subas al almacén de datos deben tener un formato de esquema JSON específico. Los datos organizados en ese esquema deben estar en una tabla de BigQuery, en un archivo o conjunto de archivos en Cloud Storage, o en un objeto JSON que se pueda subir directamente con la consola de Google Cloud .

Comparación entre el esquema predefinido de Google y el esquema personalizado

Tienes dos opciones para el esquema de datos de medios:

  • Esquema predefinido de Google. Si aún no diseñaste un esquema para tus datos de medios, el esquema predefinido de Google es una buena opción.

  • Tu propio esquema Si ya tienes tus datos formateados en un esquema, puedes usar tu propio esquema. Para obtener más información, consulta Esquema personalizado a continuación.

Con cualquiera de las opciones, puedes agregar campos al esquema después de la importación inicial de datos. Sin embargo, con el esquema predefinido de Google, para la importación inicial, los nombres y tipos de tus campos de datos deben coincidir exactamente con los de las tablas de Campos del documento.

Propiedades principales

Las propiedades se usan para entrenar los modelos de búsqueda y recomendaciones. Los campos de propiedad representan todos los campos de tu esquema.

Las propiedades clave son un conjunto especial y fijo de propiedades en el esquema de Google. Las propiedades clave identifican información importante que se usa para comprender los significados semánticos de los datos.

Si usas un esquema personalizado, asegúrate de asociar tus campos a la mayor cantidad posible de propiedades clave. Realizas la asignación en la consola de Google Cloud después de importar los datos. Consulta Crea un almacén de datos de medios.

Esquema de JSON predefinido por Google para Document

Cuando se usan medios, los documentos pueden usar el esquema JSON predefinido de Google para medios.

Los documentos se suben con una representación de datos JSON o Struct. Asegúrate de que el documento JSON o Struct cumpla con el siguiente esquema JSON. El esquema JSON usa JSON Schema 2020-12 para la validación. Para obtener más información sobre JSON Schema, consulta también la documentación de especificaciones de JSON Schema en json-schema.org.

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
    },
    "description": {
      "type": "string",
    },
    "media_type": {
      "type": "string",
    },
    "language_code": {
      "type": "string",
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "string",
      }
    },
    "uri": {
      "type": "string",
    },
    "images": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "uri": {
            "type": "string",
          },
          "name": {
            "type": "string",
          }
        },
      }
    },
    "in_languages": {
      "type": "array",
      "items": {
        "type": "string",
      }
    },
    "country_of_origin": {
      "type": "string",
    },
    "transcript": {
      "type": "string",
    },
    "content_index": {
      "type": "integer",
    },
    "persons": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
          },
          "role": {
            "type": "string",
          },
          "custom_role": {
            "type": "string",
          },
          "rank": {
            "type": "integer",
          },
          "uri": {
            "type": "string",
          }
        },
        "required": ["name", "role"],
      }
    },
    "organizations": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
          },
          "role": {
            "type": "string",
          },
          "custom_role": {
            "type": "string",
          },
          "rank": {
            "type": "integer",
          },
          "uri": {
            "type": "string",
          }
        },
        "required": ["name", "role"],
      }
    },
    "hash_tags": {
      "type": "array",
      "items": {
        "type": "string",
      }
    },
    "filter_tags": {
      "type": "array",
      "items": {
        "type": "string",
      }
    },
    "duration": {
      "type": "string",
    },
    "content_rating": {
      "type": "array",
      "items": {
        "type": "string",
      }
    },
    "aggregate_ratings": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "rating_source": {
            "type": "string",
          },
          "rating_score": {
            "type": "number",
          },
          "rating_count": {
            "type": "integer",
          }
        },
        "required": ["rating_source"],
      }
    },
    "available_time": {
      "type": "datetime",
    },
    "expire_time": {
      "type": "datetime",
    },
    "live_event_start_time": {
      "type": "datetime",
    },
    "live_event_end_time": {
      "type": "datetime",
    },
    "production_year": {
      "type": "integer",
    }
  },
  "required": ["title", "categories", "uri", "available_time"],
}

Objeto Document de muestra en formato JSON

En el siguiente ejemplo, se muestra un objeto Document de JSON.

{
  "title": "Test document title",
  "description": "Test document description",
  "media_type": "sports-game",
  "in_languages": [
    "en-US"
  ],
  "language_code": "en-US",
  "categories": [
    "sports > clip",
    "sports > highlight"
  ],
  "uri": "http://www.example.com",
  "images": [
    {
      "uri": "http://example.com/img1",
      "name": "image_1"
    }
  ],
  "country_of_origin": "US",
  "content_index": 0,
  "transcript": "Test document transcript",
  "persons": [
    {
      "name": "sports person",
      "role": "player",
      "rank": 0,
      "uri": "http://example.com/person"
    },
  ],
  "organizations": [
    {
      "name": "sports team",
      "role": "team",
      "rank": 0,
      "uri": "http://example.com/team"
    },
  ],
  "hash_tags": [
    "tag1"
  ],
  "filter_tags": [
    "filter_tag"
  ],
  "duration": "100s",
  "production_year": 1900,
  "content_rating": [
    "PG-13"
  ],
  "aggregate_ratings": [
    {
      "rating_source": "imdb",
      "rating_score": 4.5,
      "rating_count": 1250
    }
  ],
  "available_time": "2022-08-26T23:00:17Z"
}

Campos del documento

En esta sección, se enumeran los valores de los campos que proporcionas cuando creas documentos para tu almacén de datos. Los valores deben corresponder a los valores usados en tu base de datos de documentos interna y deben reflejar con precisión el elemento representado.

Campos del objeto Document

Los siguientes campos son campos de nivel superior para el objeto Document. También consulta estos campos en la página de referencia de Document.

Nombre del campo Notas
name Es el nombre completo y único del recurso del documento. Obligatorio para todos los métodos Document, excepto create y import. Durante la importación, el nombre se genera automáticamente y no es necesario proporcionarlo de forma manual.
id Es el ID del documento que usa tu base de datos interna. El campo de ID debe ser único en todo tu almacén de datos. Los mismos valores se usan cuando registras un evento de usuario, y los métodos recommend y search los muestran.
schemaId Obligatorio. Es el identificador del esquema ubicado en el mismo almacén de datos. Se debe establecer como "default_schema", que se crea automáticamente cuando se crea el almacén de datos predeterminado.
parentDocumentId Es el ID del documento principal. En el caso de los documentos de nivel superior (raíz), parent_document_id puede estar vacío o apuntar a sí mismo. En el caso de los documentos secundarios, parent_document_id debe apuntar a un documento raíz válido.

Campos de propiedad

Los siguientes campos se definen con el formato de esquema JSON predefinido para los medios.

Para obtener más información sobre las propiedades de JSON, consulta la documentación de Understanding JSON Schema sobre las propiedades en json-schema.org.

En la siguiente tabla, se definen los campos simples.

Nombre del campo Notas
title

Cadena, obligatoria

Título del documento de tu base de datos. Una string codificada en UTF-8. El límite es de 1,000 caracteres.

categories

Cadena, obligatoria

Son las categorías de documentos. Esta propiedad se repite para admitir un documento que pertenece a varias categorías paralelas. Usa la ruta de acceso completa a la categoría para obtener resultados de mayor calidad.

Para representar la ruta de acceso completa de una categoría, usa el símbolo > para separar las jerarquías. Si > forma parte del nombre de la categoría, reemplázalo por otro carácter o caracteres.

Por ejemplo:

"categories": [ "sports > highlight" ]

Un documento puede contener como máximo 250 categorías. Cada categoría es una cadena codificada en UTF-8 con un límite de longitud de 5,000 caracteres.

uri

Cadena, obligatoria

Es el URI del documento. El límite de longitud es de 5,000 caracteres.

description

Cadena: Se recomienda usar este parámetro.

Es la descripción del documento. El límite de longitud es de 5,000 caracteres.

media_type

Cadena: Este campo es obligatorio para las películas y los programas.

Es la categoría de nivel superior.

Tipos admitidos: movie, show, concert, event, live-event, broadcast, tv-series, episode, video-game, clip, vlog, audio, audio-book, music, album, articles, news, radio, podcast, book y sports-game.

Los valores movie y show tienen un significado especial. Hacen que los documentos se enriquezcan de una manera que mejora la clasificación y ayuda a los usuarios que realizan búsquedas de títulos a encontrar contenido alternativo que les pueda interesar.

language_code

Cadena: Opcional

Idioma del título, la descripción y otros atributos de cadena. Usa etiquetas de idioma definidas por BCP 47.

En el caso de las recomendaciones de documentos, se ignora este campo y el idioma del texto se detecta automáticamente. El documento puede incluir texto en diferentes idiomas, pero duplicar documentos para proporcionar texto en varios idiomas puede degradar el rendimiento.

Este campo se usa para la búsqueda de documentos. Si no se configura, el valor predeterminado es "en-US". Por ejemplo, "language_code": "en-US".

duration

Cadena: Se requiere para las apps de recomendaciones de contenido multimedia en las que el objetivo comercial es el porcentaje de clics (CTR) o la duración de la visualización por sesión.

Es la duración del contenido multimedia. La duración debe codificarse como una cadena. La codificación debe ser la misma que la codificación de la cadena JSON de google::protobuf::Duration. Por ejemplo: “5s”, “1m”

available_time

Fecha y hora: Obligatorio

Es la fecha y hora en que el contenido está disponible para los usuarios finales. Este campo identifica la actualidad del contenido para los usuarios finales. La marca de tiempo debe cumplir con el estándar RFC 3339.

Por ejemplo:

"2022-08-26T23:00:17Z"

Para filtrar por disponibilidad, consulta Cómo filtrar recomendaciones y Cómo filtrar documentos disponibles.

expire_time

Fecha y hora: Opcional

Es la fecha y hora en la que vencerá el contenido para los usuarios finales. Este campo identifica la actualidad del contenido para los usuarios finales. La marca de tiempo debe cumplir con el estándar RFC 3339.

Por ejemplo:

"2032-12-31T23:00:17Z"

Para excluir documentos vencidos de los resultados, consulta Cómo filtrar recomendaciones y Cómo filtrar la búsqueda de contenido multimedia.

live_event_start_time

Fecha y hora: Opcional

Hora en que comienza el evento en vivo. La marca de tiempo debe cumplir con el estándar RFC 3339.

Por ejemplo:

"2020-12-31T23:00:17Z"

live_event_end_time

Fecha y hora: Opcional

Es la fecha y hora en que finaliza el evento en vivo. La marca de tiempo debe cumplir con el estándar RFC 3339.

Por ejemplo:

"2024-01-28T23:00:17Z"

in_languages

Cadena: Opcional y repetida

Idioma del contenido multimedia. Usa las etiquetas de idioma definidas por BCP 47.

Por ejemplo: "in_languages": [ "en-US"]

country_of_origin

Cadena: Opcional

Es el país de origen del documento multimedia. Límite de 128 caracteres.

Por ejemplo: "country_of_origin": "US"

transcript

Cadena: Opcional

Es la transcripción del documento multimedia.

content_index

Número entero (opcional)

Es el índice de contenido del documento multimedia. El campo del índice de contenido se puede usar para ordenar los documentos en relación con otros. Por ejemplo, el número de episodio se puede usar como índice de contenido.

El índice de contenido debe ser un número entero no negativo.

Por ejemplo: "content_index": 0

filter_tags

Cadena: Opcional y repetida

Son las etiquetas de filtro del documento. Se permiten hasta 250 valores por documento, con un límite de longitud de 1,000 caracteres. De lo contrario, se muestra un error INVALID_ARGUMENT.

Estas etiquetas se pueden usar para filtrar los resultados de la búsqueda y las recomendaciones. Para filtrar los resultados de las recomendaciones, pasa las etiquetas como parte de RecommendRequest.filter. Las etiquetas solo se usan para filtrar los resultados que se muestran. Los valores de las etiquetas no afectan los resultados que muestran los modelos de búsqueda y recomendaciones.

Por ejemplo: "filter_tags": [ "grade_level", "season"]

hash_tags

Cadena: Opcional y repetida

Son los hashtags del documento. Se permiten hasta 100 valores por documento, con un límite de longitud de 5,000 caracteres.

Por ejemplo: "hash_tags": [ "soccer", "world cup"]

production_year

Número entero (opcional)

Año en que se produjo el contenido multimedia.

content_rating

Cadena: Opcional y repetida

Es la clasificación del contenido, que se usa para los sistemas de asesoramiento y el filtrado de contenido según el público. Se permiten hasta 100 valores por documento, con un límite de longitud de 128 caracteres.

Esta etiqueta se puede usar para filtrar los resultados de las recomendaciones pasando la etiqueta como parte de RecommendRequest.filter.

Por ejemplo: content_rating: ["PG-13"]

En la siguiente tabla, se definen los campos jerárquicos.

Nombre del campo Notas
images

Objeto (opcional y repetido)

Es la propiedad de clave raíz para encapsular las propiedades relacionadas con la imagen.

images.uri

Cadena: Opcional

Es el URI de la imagen. El límite de longitud es de 5,000 caracteres.

images.name

Cadena: Opcional

Nombre de la imagen. Límite de 128 caracteres.

persons

Objeto (opcional y repetido)

Es la propiedad de clave raíz para encapsular las propiedades relacionadas con la persona.

Por ejemplo: "persons":[{"name":"sports person","role":"player","rank":0,"uri":"http://example.com/person"}]

persons.name

Cadena, obligatoria

Nombre de la persona.

persons.role

Cadena, obligatoria

Es el rol de la persona en el elemento multimedia.

Valores admitidos: director, actor, jugador, equipo, liga, editor, autor, personaje, colaborador, creador, editor, financiador, productor, proveedor, publicador, patrocinador, traductor, música de, canal, rol personalizado

Si no se aplica ninguno de los valores admitidos a role, establece role en custom-role y proporciona el valor en el campo custom_role.

persons.custom_role

Cadena: Opcional

custom_role se establece solo si role se establece como custom-role. Debe ser una cadena codificada en UTF-8 con un límite de 128 caracteres. Debe coincidir con el patrón: [a-zA-Z0-9][a-zA-Z0-9_]*.

persons.rank

Número entero (opcional)

Se usa para la clasificación de roles. Por ejemplo, para el primer actor, haz lo siguiente: role = "actor", rank = 1

persons.uri

Cadena: Opcional

Es el URI de la persona.

organizations

Objeto (opcional y repetido)

Es la propiedad de clave raíz para encapsular las propiedades relacionadas con organization.

Por ejemplo: "organizations ":[{"name":"sports team","role":"team","rank":0,"uri":"http://example.com/team"}]

organizations.name

Cadena, obligatoria

Nombre de la organización.

organizations.role

Cadena, obligatoria

Es el rol de la organización en el elemento multimedia.

Valores admitidos: director, actor, jugador, equipo, liga, editor, autor, personaje, colaborador, creador, editor, financiador, productor, proveedor, publicador, patrocinador, traductor, música de, canal, rol personalizado

Si no se aplica ninguno de los valores admitidos a role, establece role en custom-role y proporciona el valor en el campo custom_role.

organizations.custom_role

Cadena: Opcional

custom_role se establece solo si role se establece como custom-role. Debe ser una cadena codificada en UTF-8 con un límite de 128 caracteres. Debe coincidir con el patrón: [a-zA-Z0-9][a-zA-Z0-9_]*.

organizations.rank

Cadena: Opcional

Se usa para la clasificación de roles. Por ejemplo, para el primer editor: role = "publisher", rank = 1

organizations.uri

Cadena: Opcional

Es el URI de la organización.

aggregate_ratings

Objeto (opcional y repetido)

Es la propiedad de clave raíz para encapsular las propiedades relacionadas con aggregate_rating.

aggregate_ratings.rating_source

Cadena, obligatoria

Es la fuente de la clasificación. Por ejemplo, imdb o rotten_tomatoes. Debe ser una cadena codificada en UTF-8 con un límite de 128 caracteres. Debe coincidir con el patrón: [a-zA-Z0-9][a-zA-Z0-9_]*.

aggregate_ratings.rating_score

Doble, obligatorio

Es la calificación agregada. La calificación debe normalizarse en el rango de [1, 5].

aggregate_ratings.rating_count

Número entero (opcional)

Es la cantidad de opiniones individuales. Debe ser un valor no negativo.

Niveles de documentos

Los niveles de documentos determinan la jerarquía en tu almacén de datos. Por lo general, debes tener un almacén de datos de un solo nivel o de dos niveles. Solo se admiten dos capas.

Por ejemplo, puedes tener un almacén de datos de un solo nivel en el que cada documento sea un elemento individual. Como alternativa, puedes elegir un almacén de datos de dos niveles que contenga tanto grupos de elementos como elementos individuales.

Tipos a nivel del documento

Existen dos tipos de documentos a nivel del documento:

  • Madre o padre. Los documentos principales son los que Vertex AI Search

    Devuelve resultados en las recomendaciones y las búsquedas. Los documentos principales pueden ser documentos individuales o grupos de documentos similares. Se recomienda este tipo de nivel.

  • Menor. Los documentos secundarios son versiones del documento principal de un grupo. Los niños solo pueden ser documentos individuales. Por ejemplo, si el documento principal es "Programa de TV de ejemplo", los documentos secundarios podrían ser "Episodio 1" y "Episodio 2". Este tipo de nivel puede ser difícil de configurar y mantener, y no se recomienda.

Acerca de la jerarquía del almacén de datos

Cuando planifiques la jerarquía de tu almacén de datos, decide si este debe contener solo elementos superiores o elementos superiores y secundarios. El punto clave que debes recordar es que las recomendaciones y las búsquedas solo muestran documentos principales.

Por ejemplo, un almacén de datos solo para elementos principales podría funcionar bien para los audiolibros, en los que un panel de recomendaciones muestra una selección de audiolibros individuales. Por otro lado, si subiste episodios de programas de TV como documentos principales a un almacén de datos solo para elementos principales, se podrían recomendar varios episodios desordenados en el mismo panel.

Un almacén de datos de programas de TV podría funcionar con documentos principales y secundarios, en el que cada documento principal representa un programa de TV con documentos secundarios que representan los episodios de ese programa. Este almacén de datos de dos niveles permite que el panel de recomendaciones muestre una variedad de programas de TV similares. El usuario final puede hacer clic en un programa en particular para seleccionar un episodio y mirarlo.

Dado que las jerarquías de elementos superiores y secundarios pueden ser difíciles de configurar y mantener, se recomiendan los almacenes de datos solo para elementos superiores.

Por ejemplo, un almacén de datos de programas de TV puede funcionar bien como un almacén de datos solo para elementos superiores, en el que cada documento principal representa un programa de TV que se puede recomendar y no se incluyen los episodios individuales (y, por lo tanto, no se recomiendan).

Si determinas que tu almacén de datos debe tener elementos principales y secundarios, es decir, grupos y elementos individuales, pero solo tienes elementos individuales ahora, debes crear elementos principales para los grupos. La información mínima que debes proporcionar para un padre es id, title y categories. Para obtener más información, consulta la sección Campos del documento.

Esquema de BigQuery para los medios

Si planeas importar tus documentos desde BigQuery, usa el esquema predefinido de BigQuery para crear una tabla de BigQuery con el formato correcto y cargarla con los datos de tus documentos antes de importarlos.

[
  {
    "name": "id",
    "mode": "REQUIRED",
    "type": "STRING",
    "fields": []
  },
  {
    "name": "schemaId",
    "mode": "REQUIRED",
    "type": "STRING",
    "fields": []
  },
  {
    "name": "parentDocumentId",
    "mode": "NULLABLE",
    "type": "STRING",
    "fields": []
  },
  {
    "name": "jsonData",
    "mode": "NULLABLE",
    "type": "STRING",
    "fields": []
  }
]

Esquema personalizado

Si tus datos ya están formateados en un esquema, es posible que decidas no usar el esquema predefinido de Google que se describió anteriormente. En cambio, puedes usar tu propio esquema y asignar campos de tu esquema a propiedades de claves de medios. Para asignar tu esquema cuando crees el almacén de medios de datos, usa la consola deGoogle Cloud .

Si usas tu propio esquema, debes tener campos que se puedan asignar a las siguientes cinco propiedades clave para los medios:

Nombre de la propiedad clave obligatoria Notas
title

Cadena, obligatoria

Título del documento de tu base de datos. Una string codificada en UTF-8. El límite es de 1,000 caracteres.

uri

Cadena, obligatoria

Es el URI del documento. El límite de longitud es de 5,000 caracteres.

category

Cadena, obligatoria

Son las categorías de documentos. Esta propiedad se repite para admitir un documento que pertenece a varias categorías paralelas. Usa la ruta de acceso completa a la categoría para obtener resultados de mayor calidad.

Para representar la ruta de acceso completa de una categoría, usa el símbolo > para separar las jerarquías. Si > forma parte del nombre de la categoría, reemplázalo por otro carácter o caracteres.

Por ejemplo:

"categories": [ "sports > highlight" ]

Un documento puede contener como máximo 250 categorías. Cada categoría es una cadena codificada en UTF-8 con un límite de longitud de 5,000 caracteres.

media_available_time

Fecha y hora: Obligatorio

Es la fecha y hora en que el contenido está disponible para los usuarios finales. Este campo identifica la actualidad del contenido para los usuarios finales. La marca de tiempo debe cumplir con el estándar RFC 3339.

Por ejemplo:

"2022-08-26T23:00:17Z"

Para filtrar por disponibilidad, consulta Cómo filtrar recomendaciones y Cómo filtrar documentos disponibles.

media_duration

Cadena: Se requiere para las apps de recomendaciones de contenido multimedia en las que el objetivo comercial es el porcentaje de clics (CTR) o la duración de la visualización por sesión.

Es la duración del contenido multimedia. La duración debe codificarse como una cadena. La codificación debe ser la misma que la codificación de la cadena JSON de google::protobuf::Duration. Por ejemplo: “5s”, “1m”

Este campo es importante para las apps de recomendaciones de contenido multimedia en las que el objetivo comercial es maximizar el porcentaje de conversiones (CVR) o la duración de reproducción por visitante.

Además, hay propiedades clave que no son obligatorias, pero, para obtener resultados de calidad, asigna tantas como puedas a tu esquema.

Estas son las propiedades clave:

Nombre de la propiedad clave Notas
description

Cadena: Se recomienda usar este parámetro.

Es la descripción del documento. El límite de longitud es de 5,000 caracteres.

image

Objeto (opcional y repetido)

Es la propiedad de clave raíz para encapsular las propiedades relacionadas con la imagen.

image_name

Cadena: Opcional

Nombre de la imagen. Límite de 128 caracteres.

image_uri

Cadena: Opcional

Es el URI de la imagen. El límite de longitud es de 5,000 caracteres.

language-code

Cadena: Opcional

Idioma del título, la descripción y otros atributos de cadena. Usa etiquetas de idioma definidas por BCP 47.

En el caso de las recomendaciones de documentos, se ignora este campo y el idioma del texto se detecta automáticamente. El documento puede incluir texto en diferentes idiomas, pero duplicar documentos para proporcionar texto en varios idiomas puede degradar el rendimiento.

Este campo se usa para la búsqueda de documentos. Si no se configura, el valor predeterminado es "en-US". Por ejemplo, "language_code": "en-US"

media_aggregated_rating

Objeto (opcional y repetido)

Es la propiedad de clave raíz para encapsular las propiedades relacionadas con aggregate_rating.

media_aggregated_rating_count

Número entero (opcional)

Es la cantidad de opiniones individuales. Debe ser un valor no negativo.

media_aggregated_rating_score

Doble, obligatorio

Es la calificación agregada. La calificación debe normalizarse en el rango de [1, 5].

media_aggregated_rating_source

Cadena, obligatoria

Es la fuente de la clasificación. Por ejemplo, imdb o rotten_tomatoes. Debe ser una cadena codificada en UTF-8 con un límite de 128 caracteres. Debe coincidir con el patrón: [a-zA-Z0-9][a-zA-Z0-9_]*.

media_content_index

Número entero (opcional)

Es el índice de contenido del documento multimedia. El campo del índice de contenido se puede usar para ordenar los documentos en relación con otros. Por ejemplo, el número de episodio se puede usar como índice de contenido.

El índice de contenido debe ser un número entero no negativo.

Por ejemplo: "content_index": 0

media_content_rating

Cadena: Opcional y repetida

Es la clasificación del contenido, que se usa para los sistemas de asesoramiento y el filtrado de contenido según el público. Se permiten hasta 100 valores por documento, con un límite de longitud de 128 caracteres.

Esta etiqueta se puede usar para filtrar los resultados de las recomendaciones pasando la etiqueta como parte de RecommendRequest.filter.

Por ejemplo: content_rating: ["PG-13"]

media_country_of_origin

Cadena: Opcional

Es el país de origen del documento multimedia. Límite de 128 caracteres.

Por ejemplo: "country_of_origin": "US"

media_expire_time

Fecha y hora: Opcional

Es la fecha y hora en la que vencerá el contenido para los usuarios finales. Este campo identifica la actualidad del contenido para los usuarios finales. La marca de tiempo debe cumplir con el estándar RFC 3339.

Por ejemplo:

"2032-12-31T23:00:17Z"

Para excluir documentos vencidos de los resultados, consulta Cómo filtrar recomendaciones y Cómo filtrar la búsqueda de contenido multimedia.

live_event_start_time

Fecha y hora: Opcional

Hora en que comienza el evento en vivo. La marca de tiempo debe cumplir con el estándar RFC 3339.

Por ejemplo:

"2020-12-31T23:00:17Z"

live_event_end_time

Fecha y hora: Opcional

Es la fecha y hora en que finaliza el evento en vivo. La marca de tiempo debe cumplir con el estándar RFC 3339.

Por ejemplo:

"2024-01-28T23:00:17Z"

media_filter_tag

Cadena: Opcional y repetida

Son las etiquetas de filtro del documento. Se permiten hasta 250 valores por documento, con un límite de longitud de 1,000 caracteres. De lo contrario, se muestra un error INVALID_ARGUMENT.

Esta etiqueta se puede usar para filtrar los resultados de las recomendaciones pasando la etiqueta como parte de RecommendRequest.filter.

Por ejemplo: "filter_tags": [ "filter_tag"]

media_hash_tag

Cadena: Opcional y repetida

Son los hashtags del documento. Se permiten hasta 100 valores por documento, con un límite de longitud de 5,000 caracteres.

Por ejemplo: "hash_tags": [ "soccer", "world cup"]

media_in_language

Cadena: Opcional y repetida

Idioma del contenido multimedia. Usa las etiquetas de idioma definidas por BCP 47.

Por ejemplo: "in_languages": [ "en-US"]

media_organization

Objeto (opcional y repetido)

Es la propiedad de clave raíz para encapsular las propiedades relacionadas con organization.

Por ejemplo: "organizations ":[{"name":"sports team","role":"team","rank":0,"uri":"http://example.com/team"}]

media_organization_custom_role

Cadena: Opcional

custom_role se establece solo si role se establece como custom-role. Debe ser una cadena codificada en UTF-8 con un límite de 128 caracteres. Debe coincidir con el patrón: [a-zA-Z0-9][a-zA-Z0-9_]*.

media_organization_name

Cadena, obligatoria

Nombre de la organización.

media_organization_rank

Cadena: Opcional

Se usa para la clasificación de roles. Por ejemplo, para el primer publicador: role = "publisher", rank = 1.

media_organization_role

Cadena, obligatoria

Es el rol de la organización en el elemento multimedia.

Valores admitidos: director, actor, jugador, equipo, liga, editor, autor, personaje, colaborador, creador, editor, financiador, productor, proveedor, publicador, patrocinador, traductor, música de, canal, rol personalizado

Si no se aplica ninguno de los valores admitidos a role, establece role en custom-role y proporciona el valor en el campo custom_role.

media_organization_uri

Cadena: Opcional

Es el URI de la organización.

media_person

Objeto (opcional y repetido)

Es la propiedad de clave raíz para encapsular las propiedades relacionadas con la persona.

Por ejemplo: "persons":[{"name":"sports person","role":"player","rank":0,"uri":"http://example.com/person"}]

media_person_custom_role

Cadena: Opcional

custom_role se establece solo si role se establece como custom-role. Debe ser una cadena codificada en UTF-8 con un límite de 128 caracteres. Debe coincidir con el patrón: [a-zA-Z0-9][a-zA-Z0-9_]*.

media_person_name

Cadena, obligatoria

Nombre de la persona.

media_person_rank

Número entero (opcional)

Se usa para la clasificación de roles. Por ejemplo, para el primer actor, haz lo siguiente: role = "actor", rank = 1

media_person_role

Cadena, obligatoria

Es el rol de la persona en el elemento multimedia.

Valores admitidos: director, actor, jugador, equipo, liga, editor, autor, personaje, colaborador, creador, editor, financiador, productor, proveedor, publicador, patrocinador, traductor, música de, canal, rol personalizado

Si no se aplica ninguno de los valores admitidos a role, establece role en custom-role y proporciona el valor en el campo custom_role.

media_person_uri

Cadena: Opcional

Es el URI de la persona.

media_production_year

Número entero (opcional)

Año en que se produjo el contenido multimedia.

media_transcript

Cadena: Opcional

Es la transcripción del documento multimedia.

media_type

Cadena: Este campo es obligatorio para las películas y los programas.

Es la categoría de nivel superior.

Tipos admitidos: movie, show, concert, event, live-event, broadcast, tv-series, episode, video-game, clip, vlog, audio, audio-book, music, album, articles, news, radio, podcast, book y sports-game.

Los valores movie y show tienen un significado especial. Hacen que los documentos se enriquezcan de una manera que mejora la clasificación y ayuda a los usuarios que realizan búsquedas de títulos a encontrar contenido alternativo que les pueda interesar.

Si usas tu propio esquema en lugar del esquema predefinido de Google, consulta Cómo proporcionar o detectar automáticamente un esquema para obtener información sobre el formato y la importación de tu propio esquema.