Sobre os documentos de mídia e os repositórios de dados

Esta página fornece informações sobre documentos e repositórios de dados para mídia. Se você estiver usando recomendações ou pesquisa de mídia, revise os requisitos de esquema para seus documentos e repositórios de dados nesta página antes de fazer upload dos dados.

Visão geral

Um documento é qualquer item que você envia por upload para um repositório de dados do AI Applications. Para mídia, um documento geralmente contém informações de metadados sobre conteúdo de mídia, como vídeos, notícias, arquivos de música ou podcasts. O objeto Document na API captura essas informações de metadados.

Seu repositório de dados contém uma coleção de documentos que você enviou por upload. Ao criar um repositório de dados, você especifica que ele vai conter documentos de mídia. Os repositórios de dados de mídia só podem ser anexados a apps de mídia, não a outros tipos de apps, como pesquisa personalizada e recomendações. Os armazenamentos de dados são representados na API pelo recurso DataStore.

A qualidade dos dados enviados afeta diretamente a qualidade dos resultados fornecidos pelos apps de mídia. Em geral, quanto mais precisas e específicas forem as informações que você fornecer, maior será a qualidade dos resultados.

Os dados enviados para o repositório de dados precisam estar formatados em um esquema JSON específico. Os dados organizados nesse esquema precisam estar em uma tabela do BigQuery, em um arquivo ou conjunto de arquivos no Cloud Storage ou em um objeto JSON que pode ser enviado diretamente usando o console Google Cloud .

Esquema predefinido pelo Google x esquema personalizado

Você tem duas opções para o esquema de dados de mídia:

  • O esquema predefinido pelo Google. Se você ainda não tiver criado um esquema para seus dados de mídia, o esquema predefinido do Google será uma boa opção.

  • Seu próprio esquema. Se você já tiver seus dados formatados em um esquema, use seu próprio esquema. Para mais informações, consulte Esquema personalizado abaixo.

Com qualquer uma das opções, é possível adicionar campos ao esquema após a importação inicial de dados. No entanto, com o esquema predefinido do Google, para a importação inicial, os nomes e tipos dos campos de dados precisam corresponder exatamente aos das tabelas Campos do documento.

Propriedades principais

As propriedades são usadas para treinar os modelos de pesquisa e recomendações. Os campos de propriedade representam todos os campos do seu esquema.

As propriedades principais são um conjunto fixo especial de propriedades no esquema do Google. As propriedades principais identificam informações importantes que são usadas para entender os significados semânticos dos dados.

Se você usa um esquema personalizado, mapeie seus campos para o máximo possível de propriedades principais. O mapeamento é feito no console do Google Cloud depois da importação dos dados. Consulte Criar um repositório de dados de mídia.

Esquema JSON predefinido do Google para Document

Ao usar mídia, os documentos podem usar o esquema JSON predefinido do Google para mídia.

Os documentos são enviados com uma representação de dados JSON ou Struct. Verifique se o JSON ou a struct do documento está em conformidade com o seguinte esquema JSON. O esquema JSON usa JSON Schema 2020-12 para validação. Para mais informações sobre o esquema JSON, consulte também a documentação de especificação do esquema JSON em 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"],
}

Exemplo de objeto JSON Document

O exemplo a seguir mostra um objeto JSON Document.

{
  "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 do documento

Esta seção lista os valores de campo que você fornece ao criar documentos para seu repositório de dados. Os valores precisam corresponder aos usados no banco de dados interno de documentos e refletir com precisão o item representado.

Campos de objeto Document

Os campos a seguir são de nível superior para o objeto Document. Consulte também estes campos na página de referência Document.

Nome do campo Observações
name O nome completo e exclusivo do recurso do documento. Obrigatório para todos os métodos Document, exceto create e import. Durante a importação, o nome é gerado automaticamente e não precisa ser fornecido manualmente.
id O ID do documento usado pelo seu banco de dados interno. O campo "ID" precisa ser exclusivo em todo o repositório de dados. O mesmo valor é usado quando você registra um evento de usuário e também é retornado pelos métodos recommend e search.
schemaId Obrigatório. O identificador do esquema localizado no mesmo repositório de dados. Precisa ser definido como "default_schema", que é criado automaticamente quando o repositório de dados padrão é criado.
parentDocumentId O ID do documento principal. Para documentos de nível superior (raiz), parent_document_id pode estar vazio ou apontar para si mesmo. Para documentos filhos, parent_document_id precisa apontar para um documento raiz válido.

Campos da propriedade

Os campos a seguir são definidos usando o formato de esquema JSON predefinido para mídia.

Para mais informações sobre propriedades JSON, consulte a documentação "Understanding JSON Schema" (Entendendo o esquema JSON) para propriedades em json-schema.org.

A tabela a seguir define campos simples

Nome do campo Observações
title

String - obrigatória

Título do documento do seu banco de dados. Uma string codificada em UTF-8. Limitado a 1.000 caracteres.

categories

String - obrigatória

Categorias de documentos. Essa propriedade é repetida para oferecer suporte a um documento que pertence a várias categorias paralelas. Use o caminho completo da categoria para ter resultados de maior qualidade.

Para representar o caminho completo de uma categoria, use o símbolo > para separar hierarquias. Se > fizer parte do nome da categoria, substitua por outro caractere ou caracteres.

Exemplo:

"categories": [ "sports > highlight" ]

Um documento pode conter no máximo 250 categorias. Cada categoria é uma string codificada em UTF-8 com um limite de 5.000 caracteres.

uri

String - obrigatória

URI do documento. Limite de 5.000 caracteres.

description

String: altamente recomendado

Descrição do documento. Limite de 5.000 caracteres.

media_type

String: este campo é obrigatório para filmes e programas

Categoria de nível superior.

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

Os valores movie e show têm um significado especial. Eles enriquecem os documentos de uma forma que melhora a classificação e ajuda os usuários a encontrar conteúdo alternativo de interesse ao pesquisar títulos.

language_code

String: opcional

Idioma do título/descrição e outros atributos de string. Use tags de idioma definidas pelo BCP 47.

Para recomendações de documentos, esse campo é ignorado e o idioma do texto é detectado automaticamente. O documento pode incluir texto em diferentes idiomas, mas a duplicação de documentos para fornecer texto em vários idiomas pode resultar em desempenho degradado.

Para a pesquisa de documentos, esse campo está em uso. O padrão é "en-US" se não estiver definido. Por exemplo, "language_code": "en-US"

duration

String: obrigatória para apps de recomendações de mídia em que o objetivo de negócio é a taxa de cliques (CTR) ou a duração da visualização por sessão.

Duração do conteúdo de mídia. A duração precisa ser codificada como uma string. A codificação precisa ser a mesma da string JSON google::protobuf::Duration. Por exemplo: "5s", "1m"

available_time

Data e hora: obrigatório

O período em que o conteúdo fica disponível para os usuários finais. Esse campo identifica a atualização de um conteúdo para usuários finais. O carimbo de data/hora precisa estar de acordo com o padrão RFC 3339.

Exemplo:

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

Para filtrar por disponibilidade, consulte Filtrar recomendações e Filtrar documentos disponíveis.

expire_time

Data/hora (opcional)

O tempo em que o conteúdo vai expirar para os usuários finais. Esse campo identifica a atualização de um conteúdo para usuários finais. O carimbo de data/hora precisa estar de acordo com o padrão RFC 3339.

Exemplo:

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

Para excluir documentos expirados dos resultados, consulte Filtrar recomendações e Filtrar pesquisa de mídia.

live_event_start_time

Data/hora (opcional)

O horário em que o evento ao vivo começa. O carimbo de data/hora precisa estar de acordo com o padrão RFC 3339.

Exemplo:

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

live_event_end_time

Data/hora (opcional)

O horário em que o evento ao vivo termina. O carimbo de data/hora precisa estar de acordo com o padrão RFC 3339.

Exemplo:

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

in_languages

String: opcional e repetida

Idioma do conteúdo de mídia. Use tags de idioma definidas pelo BCP 47 (em inglês).

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

country_of_origin

String: opcional

País de origem do documento de mídia. Limite de 128 caracteres.

Por exemplo: "country_of_origin": "US"

transcript

String: opcional

Transcrição do documento de mídia.

content_index

Número inteiro (opcional)

Índice de conteúdo do documento de mídia. O campo de índice de conteúdo pode ser usado para ordenar os documentos em relação a outros. Por exemplo, o número do episódio pode ser usado como índice de conteúdo.

O índice de conteúdo precisa ser um número inteiro não negativo.

Por exemplo: "content_index": 0

filter_tags

String: opcional e repetida

Filtra tags para o documento. São permitidos no máximo 250 valores por documento, com um limite de 1.000 caracteres. Caso contrário, um erro INVALID_ARGUMENT será retornado.

Essas tags podem ser usadas para filtrar resultados da pesquisa e recomendações. Para filtrar os resultados de recomendações, transmita as tags como parte do RecommendRequest.filter. As tags são usadas apenas para filtrar os resultados retornados. Os valores delas não afetam os resultados retornados pelos modelos de pesquisa e recomendação.

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

hash_tags

String: opcional e repetida

Hashtags do documento. É permitido um máximo de 100 valores por documento, com um limite de 5.000 caracteres.

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

production_year

Número inteiro (opcional)

O ano em que a mídia foi produzida.

content_rating

String: opcional e repetida

A classificação do conteúdo, usada para sistemas de aviso e filtragem de conteúdo com base no público-alvo. É permitido um máximo de 100 valores por documento, com um limite de 128 caracteres.

Essa tag pode ser usada para filtrar os resultados de recomendações transmitindo a tag como parte do RecommendRequest.filter.

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

A tabela a seguir define campos hierárquicos.

Nome do campo Observações
images

Objeto: opcional e repetido

Propriedade da chave raiz para encapsular propriedades relacionadas a imagens.

images.uri

String: opcional

URI da imagem. Limite de 5.000 caracteres.

images.name

String: opcional

Nome da imagem. Limite de 128 caracteres.

persons

Objeto: opcional e repetido

Propriedade de chave raiz para encapsular as propriedades relacionadas à pessoa.

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

persons.name

String - obrigatória

Nome da pessoa.

persons.role

String - obrigatória

A função da pessoa no item de mídia.

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

Se nenhum dos valores aceitos for aplicado a role, defina role como custom-role e forneça o valor no campo custom_role.

persons.custom_role

String: opcional

custom_role será definido se e somente se role estiver definido como um custom-role. Precisa ser uma string codificada em UTF-8 com um limite de 128 caracteres. Precisa corresponder ao padrão: [a-zA-Z0-9][a-zA-Z0-9_]*.

persons.rank

Número inteiro (opcional)

Usado para classificação de função. Por exemplo, para o primeiro ator, role = "actor", rank = 1

persons.uri

String: opcional

URI da pessoa.

organizations

Objeto: opcional e repetido

Propriedade da chave raiz para encapsular as propriedades relacionadas a organization.

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

organizations.name

String - obrigatória

Nome da organização.

organizations.role

String - obrigatória

A função da organização no item de mídia.

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

Se nenhum dos valores aceitos for aplicado a role, defina role como custom-role e forneça o valor no campo custom_role.

organizations.custom_role

String: opcional

custom_role será definido se e somente se role estiver definido como um custom-role. Precisa ser uma string codificada em UTF-8 com um limite de 128 caracteres. Precisa corresponder ao padrão: [a-zA-Z0-9][a-zA-Z0-9_]*.

organizations.rank

String: opcional

Usado para classificação de função. Por exemplo, para o primeiro editor: role = "publisher", rank = 1

organizations.uri

String: opcional

URI da organização.

aggregate_ratings

Objeto: opcional e repetido

Propriedade da chave raiz para encapsular as propriedades relacionadas a aggregate_rating.

aggregate_ratings.rating_source

String - obrigatória

A origem da classificação. Por exemplo, imdb ou rotten_tomatoes. Precisa ser uma string codificada em UTF-8 com um limite de 128 caracteres. Precisa corresponder ao padrão: [a-zA-Z0-9][a-zA-Z0-9_]*.

aggregate_ratings.rating_score

Double: obrigatório

A classificação agregada. A classificação precisa ser normalizada para o intervalo [1, 5].

aggregate_ratings.rating_count

Número inteiro (opcional)

O número de avaliações individuais. Precisa ser um valor não negativo.

Níveis de documento

Os níveis de documento determinam a hierarquia no repositório de dados. Normalmente, você tem um repositório de dados de nível único ou de dois níveis. Apenas duas camadas são aceitas.

Por exemplo, você pode ter um repositório de dados de nível único em que cada documento é um item individual. Como alternativa, você pode escolher um repositório de dados de dois níveis que contenha grupos e itens individuais.

Tipos de nível de documento

Há dois tipos de nível de documento:

  • Parent. Os documentos principais são o que a Vertex AI para Pesquisa

    retornos em recomendações e pesquisas. Os documentos principais podem ser individuais ou grupos de documentos semelhantes. Esse tipo de nível é recomendado.

  • Criança. Os documentos secundários são versões do documento principal de um grupo. As crianças só podem ser documentos individuais. Por exemplo, se o documento principal for "Programa de TV de exemplo", os filhos poderão ser "Episódio 1" e "Episódio 2". Esse tipo de nível pode ser difícil de configurar e manter, e não é recomendado.

Sobre a hierarquia do repositório de dados

Ao planejar a hierarquia do repositório de dados, decida se ele deve conter apenas pais ou pais e filhos. O ponto principal a lembrar é que recomendações e pesquisas só retornam documentos principais.

Por exemplo, um repositório de dados somente de itens principais pode funcionar bem para audiolivros, em que um painel de recomendações retorna uma seleção de audiolivros individuais. Por outro lado, se você fez upload de episódios de programas de TV como documentos principais para um repositório de dados somente principais, vários episódios fora de ordem podem ser recomendados no mesmo painel.

Um repositório de dados de programas de TV pode funcionar com pais e filhos, em que cada documento principal representa um programa de TV com documentos filhos que representam os episódios desse programa. Esse repositório de dados de dois níveis permite que o painel de recomendações mostre uma variedade de programas de TV semelhantes. O usuário final pode clicar em um programa específico para selecionar um episódio e assistir.

Como as hierarquias pai-filho podem ser difíceis de configurar e manter, recomendamos armazenamentos de dados somente de parentesco.

Por exemplo, um repositório de dados de programas de TV pode funcionar bem como um repositório de dados somente para pais, em que cada documento pai representa um programa de TV que pode ser recomendado, e os episódios individuais não são incluídos (e, portanto, não são recomendados).

Se você determinar que seu repositório de dados precisa ter pais e filhos, ou seja, grupos e itens únicos, mas só tiver itens únicos agora, será necessário criar pais para os grupos. As informações mínimas que você precisa fornecer para um responsável são id, title e categories. Para mais informações, consulte a seção Campos de documento.

Esquema do BigQuery para mídia

Se você planeja importar seus documentos do BigQuery, use o esquema predefinido do BigQuery para criar uma tabela do BigQuery com o formato correto e carregá-la com os dados dos documentos antes de importar os documentos.

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

Se você já tiver seus dados formatados em um esquema, talvez decida não usar o esquema predefinido do Google descrito acima. Em vez disso, use seu próprio esquema e mapeie os campos dele para as propriedades de chave de mídia. Para mapear seu esquema ao criar o repositório de dados de mídia, use o consoleGoogle Cloud .

Se você usar seu próprio esquema, ele precisará ter campos que possam ser mapeados para as seguintes cinco propriedades principais de mídia:

Nome da propriedade de chave obrigatória Observações
title

String - obrigatória

Título do documento do seu banco de dados. Uma string codificada em UTF-8. Limitado a 1.000 caracteres.

uri

String - obrigatória

URI do documento. Limite de 5.000 caracteres.

category

String - obrigatória

Categorias de documentos. Essa propriedade é repetida para oferecer suporte a um documento que pertence a várias categorias paralelas. Use o caminho completo da categoria para ter resultados de maior qualidade.

Para representar o caminho completo de uma categoria, use o símbolo > para separar hierarquias. Se > fizer parte do nome da categoria, substitua por outro caractere ou caracteres.

Exemplo:

"categories": [ "sports > highlight" ]

Um documento pode conter no máximo 250 categorias. Cada categoria é uma string codificada em UTF-8 com um limite de 5.000 caracteres.

media_available_time

Data e hora: obrigatório

O período em que o conteúdo fica disponível para os usuários finais. Esse campo identifica a atualização de um conteúdo para usuários finais. O carimbo de data/hora precisa estar de acordo com o padrão RFC 3339.

Exemplo:

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

Para filtrar por disponibilidade, consulte Filtrar recomendações e Filtrar documentos disponíveis.

media_duration

String: obrigatória para apps de recomendações de mídia em que o objetivo de negócio é a taxa de cliques (CTR) ou a duração da visualização por sessão.

Duração do conteúdo de mídia. A duração precisa ser codificada como uma string. A codificação precisa ser a mesma da string JSON google::protobuf::Duration. Por exemplo: "5s", "1m"

Esse campo é importante para apps de recomendações de mídia em que o objetivo de negócios é maximizar a taxa de conversão (CVR) ou a duração da exibição por visitante.

Além disso, há propriedades principais que não são obrigatórias, mas, para resultados de qualidade, mapeie o máximo possível delas para seu esquema.

Estas são as propriedades principais:

Nome da propriedade da chave Observações
description

String: altamente recomendado

Descrição do documento. Limite de 5.000 caracteres.

image

Objeto: opcional e repetido

Propriedade da chave raiz para encapsular propriedades relacionadas a imagens.

image_name

String: opcional

Nome da imagem. Limite de 128 caracteres.

image_uri

String: opcional

URI da imagem. Limite de 5.000 caracteres.

language-code

String: opcional

Idioma do título/descrição e outros atributos de string. Use tags de idioma definidas pelo BCP 47.

Para recomendações de documentos, esse campo é ignorado e o idioma do texto é detectado automaticamente. O documento pode incluir texto em diferentes idiomas, mas a duplicação de documentos para fornecer texto em vários idiomas pode resultar em desempenho degradado.

Para a pesquisa de documentos, esse campo está em uso. O padrão é "en-US" se não estiver definido. Por exemplo, "language_code": "en-US".

media_aggregated_rating

Objeto: opcional e repetido

Propriedade da chave raiz para encapsular as propriedades relacionadas a aggregate_rating.

media_aggregated_rating_count

Número inteiro (opcional)

O número de avaliações individuais. Precisa ser um valor não negativo.

media_aggregated_rating_score

Double: obrigatório

A classificação agregada. A classificação precisa ser normalizada para o intervalo [1, 5].

media_aggregated_rating_source

String - obrigatória

A origem da classificação. Por exemplo, imdb ou rotten_tomatoes. Precisa ser uma string codificada em UTF-8 com um limite de 128 caracteres. Precisa corresponder ao padrão: [a-zA-Z0-9][a-zA-Z0-9_]*.

media_content_index

Número inteiro (opcional)

Índice de conteúdo do documento de mídia. O campo de índice de conteúdo pode ser usado para ordenar os documentos em relação a outros. Por exemplo, o número do episódio pode ser usado como índice de conteúdo.

O índice de conteúdo precisa ser um número inteiro não negativo.

Por exemplo: "content_index": 0

media_content_rating

String: opcional e repetida

A classificação do conteúdo, usada para sistemas de aviso e filtragem de conteúdo com base no público-alvo. É permitido um máximo de 100 valores por documento, com um limite de 128 caracteres.

Essa tag pode ser usada para filtrar os resultados de recomendações transmitindo a tag como parte do RecommendRequest.filter.

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

media_country_of_origin

String: opcional

País de origem do documento de mídia. Limite de 128 caracteres.

Por exemplo: "country_of_origin": "US"

media_expire_time

Data/hora (opcional)

O tempo em que o conteúdo vai expirar para os usuários finais. Esse campo identifica a atualização de um conteúdo para usuários finais. O carimbo de data/hora precisa estar de acordo com o padrão RFC 3339.

Exemplo:

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

Para excluir documentos expirados dos resultados, consulte Filtrar recomendações e Filtrar pesquisa de mídia.

live_event_start_time

Data/hora (opcional)

O horário em que o evento ao vivo começa. O carimbo de data/hora precisa estar de acordo com o padrão RFC 3339.

Exemplo:

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

live_event_end_time

Data/hora (opcional)

O horário em que o evento ao vivo termina. O carimbo de data/hora precisa estar de acordo com o padrão RFC 3339.

Exemplo:

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

media_filter_tag

String: opcional e repetida

Filtra tags para o documento. São permitidos no máximo 250 valores por documento, com um limite de 1.000 caracteres. Caso contrário, um erro INVALID_ARGUMENT será retornado.

Essa tag pode ser usada para filtrar os resultados de recomendações transmitindo a tag como parte do RecommendRequest.filter.

Por exemplo: "filter_tags": [ "filter_tag"]

media_hash_tag

String: opcional e repetida

Hashtags do documento. É permitido um máximo de 100 valores por documento, com um limite de 5.000 caracteres.

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

media_in_language

String: opcional e repetida

Idioma do conteúdo de mídia. Use tags de idioma definidas pelo BCP 47 (em inglês).

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

media_organization

Objeto: opcional e repetido

Propriedade da chave raiz para encapsular as propriedades relacionadas a organization.

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

media_organization_custom_role

String: opcional

custom_role será definido se e somente se role estiver definido como um custom-role. Precisa ser uma string codificada em UTF-8 com um limite de 128 caracteres. Precisa corresponder ao padrão: [a-zA-Z0-9][a-zA-Z0-9_]*.

media_organization_name

String - obrigatória

Nome da organização.

media_organization_rank

String: opcional

Usado para classificação de função. Por exemplo, para o primeiro editor: role = "publisher", rank = 1.

media_organization_role

String - obrigatória

A função da organização no item de mídia.

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

Se nenhum dos valores aceitos for aplicado a role, defina role como custom-role e forneça o valor no campo custom_role.

media_organization_uri

String: opcional

URI da organização.

media_person

Objeto: opcional e repetido

Propriedade de chave raiz para encapsular as propriedades relacionadas à pessoa.

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

media_person_custom_role

String: opcional

custom_role será definido se e somente se role estiver definido como um custom-role. Precisa ser uma string codificada em UTF-8 com um limite de 128 caracteres. Precisa corresponder ao padrão: [a-zA-Z0-9][a-zA-Z0-9_]*.

media_person_name

String - obrigatória

Nome da pessoa.

media_person_rank

Número inteiro (opcional)

Usado para classificação de função. Por exemplo, para o primeiro ator, role = "actor", rank = 1

media_person_role

String - obrigatória

A função da pessoa no item de mídia.

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

Se nenhum dos valores aceitos for aplicado a role, defina role como custom-role e forneça o valor no campo custom_role.

media_person_uri

String: opcional

URI da pessoa.

media_production_year

Número inteiro (opcional)

O ano em que a mídia foi produzida.

media_transcript

String: opcional

Transcrição do documento de mídia.

media_type

String: este campo é obrigatório para filmes e programas

Categoria de nível superior.

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

Os valores movie e show têm um significado especial. Eles enriquecem os documentos de uma forma que melhora a classificação e ajuda os usuários a encontrar conteúdo alternativo de interesse ao pesquisar títulos.

Se você estiver usando seu próprio esquema em vez do esquema predefinido do Google, consulte Fornecer ou detectar automaticamente um esquema para informações sobre formatação e importação do seu próprio esquema.