À propos des documents multimédias et des datastores

Cette page fournit des informations sur les documents et les data stores pour les contenus multimédias. Si vous utilisez les recommandations de contenus multimédias ou la recherche de contenus multimédias, consultez les exigences de schéma pour vos documents et vos data stores sur cette page avant d'importer vos données.

Présentation

Un document est un élément que vous importez dans un data store AI Applications. Pour les contenus multimédias, un document contient généralement des informations de métadonnées sur le contenu multimédia, comme des vidéos, des articles d'actualité, des fichiers musicaux ou des podcasts. L'objet Document de l'API capture ces informations de métadonnées.

Votre data store contient une collection de documents que vous avez importés. Lorsque vous créez un data store, vous spécifiez qu'il contiendra des documents multimédias. Les datastores pour les contenus multimédias ne peuvent être associés qu'à des applications multimédias, et non à d'autres types d'applications, comme la recherche personnalisée et les recommandations. Dans l'API, les datastores sont représentés par la ressource DataStore.

La qualité des données que vous importez a un effet direct sur la qualité des résultats fournis par les applications multimédias. En général, plus les informations que vous fournissez sont précises et spécifiques, plus les résultats sont de bonne qualité.

Les données que vous importez dans le data store doivent être mises en forme selon un schéma JSON spécifique. Les données organisées dans ce schéma doivent se trouver dans une table BigQuery, dans un fichier ou un ensemble de fichiers dans Cloud Storage, ou dans un objet JSON pouvant être importé directement à l'aide de la console Google Cloud .

Schéma Google prédéfini ou schéma personnalisé

Vous avez le choix entre deux options pour le schéma de vos données média :

  • Schéma Google prédéfini Si vous n'avez pas encore conçu de schéma pour vos données média, le schéma prédéfini de Google est un bon choix.

  • Votre propre schéma Si vos données sont déjà mises en forme dans un schéma, vous pouvez utiliser votre propre schéma. Pour en savoir plus, consultez la section Schéma personnalisé ci-dessous.

Quelle que soit l'option choisie, vous pouvez ajouter des champs au schéma après l'importation initiale des données. Toutefois, avec le schéma prédéfini de Google, pour l'importation initiale, les noms et les types de vos champs de données doivent correspondre exactement à ceux des tableaux Champs du document.

Propriétés clés

Les propriétés sont utilisées pour entraîner les modèles de recherche et de recommandations. Les champs de propriété représentent tous les champs de votre schéma.

Les propriétés clés sont un ensemble fixe spécial de propriétés dans le schéma Google. Les propriétés clés identifient des informations importantes permettant de comprendre les significations sémantiques des données.

Si vous utilisez un schéma personnalisé, veillez à mapper vos champs au plus grand nombre possible de propriétés clés. Vous effectuez le mappage dans la console Google Cloud après avoir importé les données. Pour en savoir plus, consultez Créer un datastore multimédia.

Schéma JSON prédéfini de Google pour Document

Lorsqu'ils utilisent des éléments multimédias, les documents peuvent utiliser le schéma JSON prédéfini de Google pour les éléments multimédias.

Les documents sont importés avec une représentation des données au format JSON ou structuré. Assurez-vous que le document JSON ou Struct est conforme au schéma JSON suivant. Le schéma JSON utilise JSON Schema 2020-12 pour la validation. Pour en savoir plus sur le schéma JSON, consultez également la documentation sur la spécification du schéma JSON sur 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"],
}

Exemple d'objet JSON Document

L'exemple suivant illustre un objet Document 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"
}

Champs du document

Cette section liste les valeurs de champ que vous fournissez lorsque vous créez des documents pour votre data store. Les valeurs doivent correspondre à celles utilisées dans votre base de données de documents internes et refléter avec précision l'élément représenté.

Champs d'objet Document

Les champs suivants sont des champs de premier niveau pour l'objet Document. Consultez également ces champs sur la page de référence Document.

Nom du champ Remarques
name Nom de ressource unique complet du document. Obligatoire pour toutes les méthodes Document, à l'exception de create et import. Lors de l'importation, le nom est généré automatiquement et n'a pas besoin d'être fourni manuellement.
id ID de document utilisé par votre base de données interne. Le champ d'ID doit être unique dans l'ensemble de votre data store. La même valeur est utilisée lorsque vous enregistrez un événement utilisateur. Elle est également renvoyée par les méthodes recommend et search.
schemaId Obligatoire. Identifiant du schéma situé dans le même data store. Doit être défini sur "default_schema", qui est créé automatiquement lorsque le data store par défaut est créé.
parentDocumentId ID du document parent. Pour les documents de premier niveau (racine), parent_document_id peut être vide ou pointer vers lui-même. Pour les documents enfants, parent_document_id doit pointer vers un document racine valide.

Champs de propriété

Les champs suivants sont définis à l'aide du format de schéma JSON prédéfini pour les contenus multimédias.

Pour en savoir plus sur les propriétés JSON, consultez la documentation "Understanding JSON Schema" (Comprendre le schéma JSON) pour les propriétés sur json-schema.org.

Le tableau suivant définit les champs plats.

Nom du champ Remarques
title

Chaîne (obligatoire)

Titre du document dans votre base de données. Chaîne encodée en UTF-8. 1 000 caractères maximum.

categories

Chaîne (obligatoire)

Catégories de documents. Cette propriété est répétée pour prendre en charge un document appartenant à plusieurs catégories parallèles. Utilisez le chemin d'accès complet de la catégorie pour obtenir des résultats de meilleure qualité.

Pour représenter le chemin d'accès complet d'une catégorie, utilisez le symbole > pour séparer les hiérarchies. Si > fait partie du nom de la catégorie, remplacez-le par un ou plusieurs autres caractères.

Exemple :

"categories": [ "sports > highlight" ]

Un document ne peut pas contenir plus de 250 catégories. Chaque catégorie est une chaîne encodée en UTF-8, limitée à 5 000 caractères.

uri

Chaîne (obligatoire)

URI du document. 5 000 caractères maximum.

description

Chaîne (fortement recommandé)

Description du document. 5 000 caractères maximum.

media_type

Chaîne : ce champ est obligatoire pour les films et les séries

Catégorie de premier niveau.

Types acceptés : movie, show, concert, event, live-event, broadcast, tv-series, episode, video-game, clip, vlog, audio, audio-book, music, album, articles, news, radio, podcast, book et sports-game.

Les valeurs movie et show ont une signification particulière. Elles permettent d'enrichir les documents de manière à améliorer leur classement et à aider les utilisateurs qui recherchent des titres à trouver d'autres contenus susceptibles de les intéresser.

language_code

Chaîne (facultatif)

Langue du titre/de la description et des autres attributs de chaîne. Utilisez des balises de langue définies par BCP 47.

Pour les recommandations de documents, ce champ est ignoré et la langue du texte est détectée automatiquement. Le document peut inclure du texte dans différentes langues. Toutefois, la duplication des documents pour fournir du texte dans plusieurs langues peut nuire aux performances.

Ce champ est utilisé pour la recherche de documents. Si elle n'est pas définie, la valeur par défaut est "en-US". Par exemple, "language_code": "en-US".

duration

Chaîne. Obligatoire pour les applications de recommandations de contenus multimédias lorsque l'objectif commercial est le taux de clics (CVR) ou la durée de visionnage par session.

Durée du contenu multimédia. La durée doit être encodée sous forme de chaîne. L'encodage doit être identique à celui de la chaîne JSON google::protobuf::Duration. Exemples : "5s", "1m"

available_time

Date et heure (obligatoire)

Période pendant laquelle le contenu est disponible pour les utilisateurs finaux. Ce champ identifie la fraîcheur d'un contenu pour les utilisateurs finaux. Le code temporel doit être conforme à la norme RFC 3339.

Exemple :

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

Pour filtrer les recommandations en fonction de la disponibilité, consultez Filtrer les recommandations et Filtrer les documents disponibles.

expire_time

Date et heure (facultatif)

Heure à laquelle le contenu expirera pour les utilisateurs finaux. Ce champ identifie la fraîcheur d'un contenu pour les utilisateurs finaux. Le code temporel doit être conforme à la norme RFC 3339.

Exemple :

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

Pour exclure les documents expirés des résultats, consultez Filtrer les recommandations et Filtrer la recherche de contenus multimédias.

live_event_start_time

Date et heure (facultatif)

Heure de début de l'événement en direct. Le code temporel doit être conforme à la norme RFC 3339.

Exemple :

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

live_event_end_time

Date et heure (facultatif)

Heure à laquelle l'événement en direct se termine. Le code temporel doit être conforme à la norme RFC 3339.

Exemple :

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

in_languages

Chaîne : facultative, répétable

Langue du contenu multimédia. Utilisez les balises de langue définies par la norme BCP 47.

Par exemple : "in_languages": [ "en-US"]

country_of_origin

Chaîne (facultatif)

Pays d'origine du document multimédia. La longueur est limitée à 128 caractères.

Par exemple : "country_of_origin": "US"

transcript

Chaîne (facultatif)

Transcription du document multimédia.

content_index

Nombre entier (facultatif)

Index du contenu du document multimédia. Le champ d'index de contenu peut être utilisé pour ordonner les documents les uns par rapport aux autres. Par exemple, le numéro d'épisode peut être utilisé comme index de contenu.

L'index de contenu doit être un nombre entier non négatif.

Par exemple : "content_index": 0

filter_tags

Chaîne : facultative, répétable

Tags de filtre pour le document. Un document ne peut pas contenir plus de 250 valeurs, et chaque valeur ne peut pas dépasser 1 000 caractères. Dans le cas contraire, une erreur INVALID_ARGUMENT est renvoyée.

Ces balises peuvent être utilisées pour filtrer les résultats de recherche et les recommandations. Pour filtrer les résultats des recommandations, transmettez les tags dans le RecommendRequest.filter. Les tags ne sont utilisés que pour filtrer les résultats renvoyés. Les valeurs des tags n'ont aucune incidence sur les résultats renvoyés par les modèles de recherche et de recommandations.

Par exemple : "filter_tags": [ "grade_level", "season"]

hash_tags

Chaîne : facultative, répétable

Hashtags pour le document. Un document ne peut pas contenir plus de 100 valeurs, et la longueur de chacune d'elles ne doit pas dépasser 5 000 caractères.

Par exemple : "hash_tags": [ "soccer", "world cup"]

production_year

Nombre entier (facultatif)

Année de production du contenu multimédia.

content_rating

Chaîne : facultative, répétable

Classification du contenu, utilisée pour les systèmes d'avertissement et le filtrage du contenu en fonction de l'audience. Au maximum 100 valeurs sont autorisées par document, avec une limite de longueur de 128 caractères.

Ce tag peut être utilisé pour filtrer les résultats des recommandations en le transmettant dans RecommendRequest.filter.

Par exemple : content_rating: ["PG-13"]

Le tableau suivant définit les champs hiérarchiques.

Nom du champ Remarques
images

Objet : facultatif, répété

Propriété de clé racine pour encapsuler les propriétés liées aux images.

images.uri

Chaîne (facultatif)

URI de l'image. La limite de longueur est de 5 000 caractères.

images.name

Chaîne (facultatif)

Nom de l'image. La longueur est limitée à 128 caractères.

persons

Objet : facultatif, répété

Propriété de clé racine pour encapsuler les propriétés liées à la personne.

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

persons.name

Chaîne (obligatoire)

Nom de la personne.

persons.role

Chaîne (obligatoire)

Rôle de la personne dans l'élément multimédia.

Valeurs acceptées : director, actor, player, team, league, editor, author, character, contributor, creator, editor, funder, producer, provider, publisher, sponsor, translator, music-by, channel, custom-role

Si aucune des valeurs acceptées n'est appliquée à role, définissez role sur custom-role et indiquez la valeur dans le champ custom_role.

persons.custom_role

Chaîne (facultatif)

custom_role est défini si et seulement si role est défini comme custom-role. Doit être une chaîne encodée au format UTF-8, dont la longueur ne doit pas dépasser 128 caractères. Il doit correspondre au modèle suivant : [a-zA-Z0-9][a-zA-Z0-9_]*.

persons.rank

Nombre entier (facultatif)

Utilisé pour le classement des rôles. Par exemple, pour le premier acteur : role = "actor", rank = 1

persons.uri

Chaîne (facultatif)

URI de la personne.

organizations

Objet : facultatif, répété

Propriété de clé racine pour encapsuler les propriétés liées à organization.

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

organizations.name

Chaîne (obligatoire)

Nom de l'organisation.

organizations.role

Chaîne (obligatoire)

Rôle de l'organisation dans l'élément multimédia.

Valeurs acceptées : director, actor, player, team, league, editor, author, character, contributor, creator, editor, funder, producer, provider, publisher, sponsor, translator, music-by, channel, custom-role

Si aucune des valeurs acceptées n'est appliquée à role, définissez role sur custom-role et indiquez la valeur dans le champ custom_role.

organizations.custom_role

Chaîne (facultatif)

custom_role est défini si et seulement si role est défini comme custom-role. Doit être une chaîne encodée au format UTF-8, dont la longueur ne doit pas dépasser 128 caractères. Il doit correspondre au modèle suivant : [a-zA-Z0-9][a-zA-Z0-9_]*.

organizations.rank

Chaîne (facultatif)

Utilisé pour le classement des rôles. Par exemple, pour le premier éditeur : role = "publisher", rank = 1

organizations.uri

Chaîne (facultatif)

URI de l'organisation.

aggregate_ratings

Objet : facultatif, répété

Propriété de clé racine pour encapsuler les propriétés associées à aggregate_rating.

aggregate_ratings.rating_source

Chaîne (obligatoire)

Source de la classification. Par exemple, imdb ou rotten_tomatoes. Doit être une chaîne encodée au format UTF-8, dont la longueur ne doit pas dépasser 128 caractères. Il doit correspondre au modèle suivant : [a-zA-Z0-9][a-zA-Z0-9_]*.

aggregate_ratings.rating_score

Double : obligatoire

Note globale. La note doit être normalisée dans la plage [1, 5].

aggregate_ratings.rating_count

Nombre entier (facultatif)

Nombre d'avis individuels. Doit être une valeur non négative.

Niveaux de document

Les niveaux de document déterminent la hiérarchie dans votre data store. En règle générale, vous devez disposer d'un data store à un ou deux niveaux. Seules deux couches sont acceptées.

Par exemple, vous pouvez disposer d'un data store à un seul niveau où chaque document est un élément individuel. Vous pouvez également choisir un data store à deux niveaux qui contient à la fois des groupes d'éléments et des éléments individuels.

Types au niveau du document

Il existe deux types de problèmes au niveau du document :

  • Parent : Les documents parents sont ceux que Vertex AI Search

    les retours dans les recommandations et les recherches. Les parents peuvent être des documents individuels ou des groupes de documents similaires. Ce type de niveau est recommandé.

  • Enfant Les documents enfants sont des versions du document parent d'un groupe. Les enfants ne peuvent être que des documents individuels. Par exemple, si le document parent est "Série TV exemple", les documents enfants peuvent être "Épisode 1" et "Épisode 2". Ce type de niveau peut être difficile à configurer et à gérer. Nous vous le déconseillons.

À propos de la hiérarchie des data store

Lorsque vous planifiez la hiérarchie de votre data store, décidez si celui-ci doit contenir uniquement des parents ou des parents et des enfants. Le point clé à retenir est que les recommandations et les recherches ne renvoient que des documents parents.

Par exemple, un data store parent uniquement peut bien fonctionner pour les livres audio, où un panneau de recommandations renvoie une sélection de livres audio individuels. En revanche, si vous avez importé des épisodes de série TV en tant que documents parents dans un data store parent uniquement, plusieurs épisodes hors ordre peuvent être recommandés dans le même panneau.

Un data store de séries TV peut fonctionner à la fois avec les parents et les enfants, où chaque document parent représente une série TV avec des documents enfants qui représentent les épisodes de cette série. Ce data store à deux niveaux permet au panneau de recommandations d'afficher une série d'émissions de télévision similaires. L'utilisateur final peut cliquer sur une série spécifique pour sélectionner un épisode à regarder.

Étant donné que les hiérarchies parent-enfant peuvent être difficiles à configurer et à gérer, nous vous recommandons d'utiliser des data stores parentaux uniquement.

Par exemple, un data store de séries TV peut fonctionner comme un data store parent uniquement, où chaque document parent représente une série TV pouvant être recommandée, et où les épisodes individuels ne sont pas inclus (et donc pas recommandés).

Si vous déterminez que votre data store doit comporter à la fois des parents et des enfants (c'est-à-dire des groupes et des éléments individuels), mais que vous ne disposez actuellement que d'éléments individuels, vous devez créer des parents pour les groupes. Les informations minimales que vous devez fournir pour un parent sont id, title et categories. Pour en savoir plus, consultez la section Champs de document.

Schéma BigQuery pour les données média

Si vous prévoyez d'importer vos documents depuis BigQuery, utilisez le schéma BigQuery prédéfini pour créer une table BigQuery au format approprié et y insérer vos données de documents avant d'importer vos documents.

[
  {
    "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": []
  }
]

Schéma personnalisé

Si vos données sont déjà formatées dans un schéma, vous pouvez choisir de ne pas utiliser le schéma prédéfini de Google décrit ci-dessus. Vous pouvez utiliser votre propre schéma et mapper les champs de votre schéma aux propriétés clés du média. Pour mapper votre schéma lorsque vous créez le data media store, utilisez la consoleGoogle Cloud .

Si vous utilisez votre propre schéma, vous devez y inclure des champs pouvant être mappés aux cinq propriétés clés suivantes pour les contenus multimédias :

Nom de la propriété de clé requise Remarques
title

Chaîne (obligatoire)

Titre du document dans votre base de données. Chaîne encodée en UTF-8. 1 000 caractères maximum.

uri

Chaîne (obligatoire)

URI du document. 5 000 caractères maximum.

category

Chaîne (obligatoire)

Catégories de documents. Cette propriété est répétée pour prendre en charge un document appartenant à plusieurs catégories parallèles. Utilisez le chemin d'accès complet de la catégorie pour obtenir des résultats de meilleure qualité.

Pour représenter le chemin d'accès complet d'une catégorie, utilisez le symbole > pour séparer les hiérarchies. Si > fait partie du nom de la catégorie, remplacez-le par un ou plusieurs autres caractères.

Exemple :

"categories": [ "sports > highlight" ]

Un document ne peut pas contenir plus de 250 catégories. Chaque catégorie est une chaîne encodée en UTF-8, limitée à 5 000 caractères.

media_available_time

Date et heure (obligatoire)

Période pendant laquelle le contenu est disponible pour les utilisateurs finaux. Ce champ identifie la fraîcheur d'un contenu pour les utilisateurs finaux. Le code temporel doit être conforme à la norme RFC 3339.

Exemple :

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

Pour filtrer les recommandations en fonction de la disponibilité, consultez Filtrer les recommandations et Filtrer les documents disponibles.

media_duration

Chaîne. Obligatoire pour les applications de recommandations de contenus multimédias lorsque l'objectif commercial est le taux de clics (CVR) ou la durée de visionnage par session.

Durée du contenu multimédia. La durée doit être encodée sous forme de chaîne. L'encodage doit être identique à celui de la chaîne JSON google::protobuf::Duration. Exemples : "5s", "1m"

Ce champ est important pour les applications de recommandation de contenus multimédias dont l'objectif commercial est de maximiser le taux de conversion ou la durée de visionnage par visiteur.

De plus, certaines propriétés clés ne sont pas obligatoires, mais pour obtenir des résultats de qualité, mappez-en autant que possible à votre schéma.

Voici les principales propriétés :

Nom de la propriété clé Remarques
description

Chaîne (fortement recommandé)

Description du document. 5 000 caractères maximum.

image

Objet : facultatif, répété

Propriété de clé racine pour encapsuler les propriétés liées aux images.

image_name

Chaîne (facultatif)

Nom de l'image. La longueur est limitée à 128 caractères.

image_uri

Chaîne (facultatif)

URI de l'image. La limite de longueur est de 5 000 caractères.

language-code

Chaîne (facultatif)

Langue du titre/de la description et des autres attributs de chaîne. Utilisez des balises de langue définies par BCP 47.

Pour les recommandations de documents, ce champ est ignoré et la langue du texte est détectée automatiquement. Le document peut inclure du texte dans différentes langues. Toutefois, la duplication des documents pour fournir du texte dans plusieurs langues peut nuire aux performances.

Ce champ est utilisé pour la recherche de documents. Si elle n'est pas définie, la valeur par défaut est "en-US". Par exemple : "language_code": "en-US"

media_aggregated_rating

Objet : facultatif, répété

Propriété de clé racine pour encapsuler les propriétés associées à aggregate_rating.

media_aggregated_rating_count

Nombre entier (facultatif)

Nombre d'avis individuels. Doit être une valeur non négative.

media_aggregated_rating_score

Double : obligatoire

Note globale. La note doit être normalisée dans la plage [1, 5].

media_aggregated_rating_source

Chaîne (obligatoire)

Source de la classification. Par exemple, imdb ou rotten_tomatoes. Doit être une chaîne encodée au format UTF-8, dont la longueur ne doit pas dépasser 128 caractères. Il doit correspondre au modèle suivant : [a-zA-Z0-9][a-zA-Z0-9_]*.

media_content_index

Nombre entier (facultatif)

Index du contenu du document multimédia. Le champ d'index de contenu peut être utilisé pour ordonner les documents les uns par rapport aux autres. Par exemple, le numéro d'épisode peut être utilisé comme index de contenu.

L'index de contenu doit être un nombre entier non négatif.

Par exemple : "content_index": 0

media_content_rating

Chaîne : facultative, répétable

Classification du contenu, utilisée pour les systèmes d'avertissement et le filtrage du contenu en fonction de l'audience. Au maximum 100 valeurs sont autorisées par document, avec une limite de longueur de 128 caractères.

Ce tag peut être utilisé pour filtrer les résultats des recommandations en le transmettant dans RecommendRequest.filter.

Par exemple : content_rating: ["PG-13"]

media_country_of_origin

Chaîne (facultatif)

Pays d'origine du document multimédia. La longueur est limitée à 128 caractères.

Par exemple : "country_of_origin": "US"

media_expire_time

Date et heure (facultatif)

Heure à laquelle le contenu expirera pour les utilisateurs finaux. Ce champ identifie la fraîcheur d'un contenu pour les utilisateurs finaux. Le code temporel doit être conforme à la norme RFC 3339.

Exemple :

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

Pour exclure les documents expirés des résultats, consultez Filtrer les recommandations et Filtrer la recherche de contenus multimédias.

live_event_start_time

Date et heure (facultatif)

Heure de début de l'événement en direct. Le code temporel doit être conforme à la norme RFC 3339.

Exemple :

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

live_event_end_time

Date et heure (facultatif)

Heure à laquelle l'événement en direct se termine. Le code temporel doit être conforme à la norme RFC 3339.

Exemple :

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

media_filter_tag

Chaîne : facultative, répétable

Tags de filtre pour le document. Un document ne peut pas contenir plus de 250 valeurs, et chaque valeur ne peut pas dépasser 1 000 caractères. Dans le cas contraire, une erreur INVALID_ARGUMENT est renvoyée.

Ce tag peut être utilisé pour filtrer les résultats des recommandations en le transmettant dans RecommendRequest.filter.

Par exemple : "filter_tags": [ "filter_tag"]

media_hash_tag

Chaîne : facultative, répétable

Hashtags pour le document. Un document ne peut pas contenir plus de 100 valeurs, et la longueur de chacune d'elles ne doit pas dépasser 5 000 caractères.

Par exemple : "hash_tags": [ "soccer", "world cup"]

media_in_language

Chaîne : facultative, répétable

Langue du contenu multimédia. Utilisez les balises de langue définies par la norme BCP 47.

Par exemple : "in_languages": [ "en-US"]

media_organization

Objet : facultatif, répété

Propriété de clé racine pour encapsuler les propriétés liées à organization.

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

media_organization_custom_role

Chaîne (facultatif)

custom_role est défini si et seulement si role est défini comme custom-role. Doit être une chaîne encodée au format UTF-8, dont la longueur ne doit pas dépasser 128 caractères. Il doit correspondre au modèle suivant : [a-zA-Z0-9][a-zA-Z0-9_]*.

media_organization_name

Chaîne (obligatoire)

Nom de l'organisation.

media_organization_rank

Chaîne (facultatif)

Utilisé pour le classement des rôles. Par exemple, pour le premier éditeur : role = "publisher", rank = 1.

media_organization_role

Chaîne (obligatoire)

Rôle de l'organisation dans l'élément multimédia.

Valeurs acceptées : director, actor, player, team, league, editor, author, character, contributor, creator, editor, funder, producer, provider, publisher, sponsor, translator, music-by, channel, custom-role

Si aucune des valeurs acceptées n'est appliquée à role, définissez role sur custom-role et indiquez la valeur dans le champ custom_role.

media_organization_uri

Chaîne (facultatif)

URI de l'organisation.

media_person

Objet : facultatif, répété

Propriété de clé racine pour encapsuler les propriétés liées à la personne.

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

media_person_custom_role

Chaîne (facultatif)

custom_role est défini si et seulement si role est défini comme custom-role. Doit être une chaîne encodée au format UTF-8, dont la longueur ne doit pas dépasser 128 caractères. Il doit correspondre au modèle suivant : [a-zA-Z0-9][a-zA-Z0-9_]*.

media_person_name

Chaîne (obligatoire)

Nom de la personne.

media_person_rank

Nombre entier (facultatif)

Utilisé pour le classement des rôles. Par exemple, pour le premier acteur : role = "actor", rank = 1

media_person_role

Chaîne (obligatoire)

Rôle de la personne dans l'élément multimédia.

Valeurs acceptées : director, actor, player, team, league, editor, author, character, contributor, creator, editor, funder, producer, provider, publisher, sponsor, translator, music-by, channel, custom-role

Si aucune des valeurs acceptées n'est appliquée à role, définissez role sur custom-role et indiquez la valeur dans le champ custom_role.

media_person_uri

Chaîne (facultatif)

URI de la personne.

media_production_year

Nombre entier (facultatif)

Année de production du contenu multimédia.

media_transcript

Chaîne (facultatif)

Transcription du document multimédia.

media_type

Chaîne : ce champ est obligatoire pour les films et les séries

Catégorie de premier niveau.

Types acceptés : movie, show, concert, event, live-event, broadcast, tv-series, episode, video-game, clip, vlog, audio, audio-book, music, album, articles, news, radio, podcast, book et sports-game.

Les valeurs movie et show ont une signification particulière. Elles permettent d'enrichir les documents de manière à améliorer leur classement et à aider les utilisateurs qui recherchent des titres à trouver d'autres contenus susceptibles de les intéresser.

Si vous utilisez votre propre schéma au lieu du schéma prédéfini de Google, consultez Fournir ou détecter automatiquement un schéma pour obtenir des informations sur la mise en forme et l'importation de votre propre schéma.