Visão geral
O Visualizador de inventário na Central de ações mostra a integridade da ingestão, o status de correspondência de lugar e a qualificação para veiculação do inventário local do seu ponto de interesse (PDI).
Esse visualizador mostra problemas independentes de ingestões individuais, ou seja, problemas com estado que representam o status de veiculação ativo de cada provedor de serviços, incorporando todos os possíveis modos de falha (política, avisos, erros etc.) que podem ocorrer.
Use essa ferramenta para:
- Pesquise e inspecione todos os provedores de serviços ingeridos e os estados de veiculação ao vivo deles.
- Diagnosticar erros de validação de dados e violações da política de conteúdo.
- Enviar e acompanhar contestações de violações da política.
- Inspecionar os diagnósticos de correspondência do provedor de serviços e enviar propostas de correspondência manual.
- Analise os payloads JSON brutos das suas últimas ingestões de feed.
Colunas da tabela de inventário
A visualização em lista mostra todos os provedores de serviços enviados do seu feed de pontos de interesse (PDI), organizados hierarquicamente por entidade. É possível filtrar por ID do PDV local, status de correspondência, integração e plataforma.
| Colunas da tabela de resumo | Descrição |
|---|---|
| ID do PDI local | O identificador exclusivo da propriedade local
fornecido no feed (poi_id). |
| Nome do PDI local | O nome localizado da propriedade local extraída do feed. |
| Status de correspondência | Indica se o PDIs foi associado a uma ficha do Google Maps: • Sim (selo verde): associado a um lugar do Google Maps. • Não (selo vermelho): sem correspondência. Requer revisão ou uma proposta de correspondência. |
| Integração | Esta é a integração do bloco agregador local. |
| Surface | A plataforma de veiculação de destino (por exemplo, a Pesquisa). |
| Status de veiculação | O estado de qualificação para veiculação em tempo real: • Ativado (indicador verde): qualificado e veiculado ativamente nas plataformas do Google. • Desativado (indicador vermelho): bloqueado para veiculação devido a erros de validação, violações de política ou status incompatível. |
| Erros | Contagem de problemas ativos com gravidade de erro. A existência de qualquer erro em uma propriedade significa que ela não poderá ser veiculada em nenhuma plataforma. |
| Avisos | Contagem de problemas ativos com gravidade de aviso. As propriedades com avisos ainda estão qualificadas para veiculação. |
| Informações da partida | Contém o botão "Editar correspondência", que abre o painel interativo de correção de correspondência. |
Visualização de detalhes do PDI
Clique em qualquer ID de PDIs na visualização em lista para acessar a página de detalhes dedicada da entidade.
A visualização de detalhes consiste em quatro seções expansíveis:
1. Informações básicas
Resume os metadados de entidade de alto nível:
- Nome do PDIs: nome do estabelecimento conforme analisado em
data[].name.localizations. - ID do PDIs: identificador exclusivo da entidade parceira (
poi_id). - Fonte de dados: o nome exato do arquivo de feed de onde essa entidade foi ingerida.
2. Status de publicação
Divide a qualificação para veiculação por integração e plataforma de destino:
- Integração e plataforma: vertical e plataforma de destino (por exemplo,
Local Aggregator UnitnoSearch). - Status de veiculação: status atual de
EnabledouDisabled. - Problemas: mostra selos de problemas para todos os erros ou avisos ativos (por exemplo,
Unmatched entity,Policy Violation). Clicar em um selo de problema abre o Painel de detalhes do problema. - Contestações: mostra estados de substituição ou contestação (
Under review,ApprovedouRejected).
3. Informações de correspondência
Mostra diagnósticos de correspondência de lugares:
- Entrada de correspondência: o endereço físico formatado analisado do seu feed
(
street_address,locality,region,postal_code,country). - Tipo de correspondência: o mecanismo de resolução de correspondência (por exemplo,
Location). - Namespace de correspondência: o setor em que as mudanças de correspondência serão aplicadas (por exemplo,
Local Aggregator Unit). - Status da correspondência:
Yes(verde) ouNo(vermelho). - Resultado da correspondência: o nome, o endereço e o ID do lugar resolvidos no Google Maps.
- Editar correspondência: botão para abrir a caixa de diálogo da proposta de correspondência.
4. JSON bruto
Oferece um visualizador de código interativo com números de linha e destaque de sintaxe
que mostra o payload JSON analisado completo (item_proto) para depuração e verificação
rápidas do esquema. Os valores de dados apresentados aqui vão refletir os valores recebidos do feed de PDIs.
Fluxo de trabalho de problemas e triagem
As entidades sinalizadas com problemas são desativadas (se sinalizadas com um ERRO) ou degradadas (se sinalizadas com um AVISO). Problemas de entidade com um aviso não podem ser contestados, e os avisos podem ser resolvidos corrigindo o problema subjacente.
Tipos de problemas: contestáveis x não contestáveis
- Problemas não contestáveis (validações técnicas, de qualidade de dados e de aviso):
- Causado por erros de esquema, campos obrigatórios ausentes, coordenadas inválidas, URLs corrompidos, IDs duplicados ou avisos de conteúdo não bloqueantes (como nomes de empresas em localidades não padrão ou qualquer localidade para descrições, endereços de exibição e categorias de estabelecimento).
- Resolução:os parceiros precisam corrigir os dados no feed de origem e fazer upload de um arquivo de feed atualizado.
- Problemas passíveis de contestação (bloqueio de conteúdo e violações da política):
- Acionado quando os recursos de texto ou recursos de imagem da propriedade obrigatória não passam nos filtros automatizados de segurança de conteúdo com uma gravidade de ERRO.
- Resolução:se o conteúdo estiver em conformidade com as políticas da plataforma, os parceiros poderão clicar no botão Contestar ao lado do problema na Central de ações para enviar uma contestação. Os parceiros precisam fornecer um motivo e uma justificativa, e nossa equipe de contestação vai analisar e aprovar ou recusar as solicitações. Você vai receber notificações sobre as decisões tomadas na ferramenta e por e-mail.
Catálogo de problemas do bloco agregador local
A tabela a seguir descreve o conjunto completo de erros de validação e códigos de problemas de política para integrações de blocos agregadores locais:
| Descrição do problema | Gravidade | Código do problema | Campo / argumentos afetados | É possível contestar? | Ação / Política relevante |
|---|---|---|---|---|---|
| ID de PDIs ausente | ERRO | MISSING_REQUIRED_FIELD
|
poi_id
|
Não | Forneça um poi_id exclusivo. Consulte as especificações do feed de PDIs. |
| Localidade padrão ausente para o campo "name" | ERRO | MISSING_REQUIRED_FIELD
|
name.default_locale
|
Não | Especifique um código de idioma BCP 47 válido para a localidade padrão. Consulte Suporte multilíngue. |
| Nenhuma localização padrão encontrada para o campo "name" | ERRO | MISSING_REQUIRED_FIELD
|
name.localizations
|
Não | Informe um valor para o nome localizado do PDIs que corresponda ao idioma default_locale declarado.
|
| Localidade padrão ausente para o campo "description" | ERRO | MISSING_REQUIRED_FIELD
|
description.default_locale
|
Não | Especifique uma localidade padrão BCP 47 válida para a descrição da propriedade. |
| Nenhuma localização padrão encontrada para o campo "description" | ERRO | MISSING_REQUIRED_FIELD
|
description.localizations
|
Não | Forneça um texto de descrição que corresponda ao idioma default_locale declarado.
|
| Localidade padrão ausente para o campo "display_address" | ERRO | MISSING_REQUIRED_FIELD
|
display_address.default_locale
|
Não | Especifique uma localidade padrão BCP 47 válida para o endereço de exibição. |
| Nenhuma localização padrão encontrada para o campo "display_address" | ERRO | MISSING_REQUIRED_FIELD
|
display_address.localizations
|
Não | Forneça um texto de endereço formatado que corresponda ao idioma default_locale declarado.
|
| O número máximo de imagens foi excedido | AVISO | EXCEEDED_MAX_COUNT
|
images
|
Não | Limite as entradas de imagem a no máximo cinco por PDIs. As imagens em excesso são descartadas. |
| Coordenada de latitude inválida | ERRO | INVALID_LATLNG
|
location.latitude
|
Não | Insira uma latitude válida entre -90.0 e +90.0. Consulte Definição de coordenadas geográficas.
|
| Coordenada de longitude inválida | ERRO | INVALID_LATLNG
|
location.longitude
|
Não | Insira uma longitude válida entre -180.0 e +180.0. Consulte Definição de coordenadas geográficas.
|
| Coordenada de latitude ausente | ERRO | MISSING_REQUIRED_FIELD
|
location.latitude
|
Não | Informe o valor da latitude para completar o par de coordenadas. Consulte Definição de coordenadas geográficas. |
| Coordenada de longitude ausente | ERRO | MISSING_REQUIRED_FIELD
|
location.longitude
|
Não | Informe o valor da longitude para completar o par de coordenadas. Consulte Definição de coordenadas geográficas. |
| Endereço ausente ou não estruturado | ERRO | MISSING_REQUIRED_FIELD
|
location.address
|
Não | Forneça um endereço postal estruturado, incluindo rua, localidade, código postal e país. |
| URL inválido ou malformado | ERRO | INVALID_ATTRIBUTE_VALUE
|
url
|
Não | Verifique se o URL da página de destino usa um protocolo HTTP/HTTPS compatível e uma sintaxe válida. |
| Imagem inválida ou inacessível | AVISO | INVALID_IMAGE
|
image.url
|
Não | Verifique se os URLs de imagem estão acessíveis publicamente e não exigem autenticação nem retornam erros 4xx/5xx. |
| ID de PDIs duplicados | ERRO | DUPLICATE_ENTITY
|
poi_id
|
Não | Verifique se cada poi_id é exclusivo no payload do feed. Remova as entradas duplicadas.
|
| Entidade correspondente duplicada | ERRO | DUPLICATE_MATCHED_ENTITY
|
POI
|
Não | Remova as entradas duplicadas do seu feed ou use a ferramenta de correspondência de entidades de PDI para associar empresas distintas às respectivas fichas do Google Maps. |
| Entidade não correspondente | ERRO | UNMATCHED_ENTITY
|
POI
|
Não | Associe o PDI a uma ficha de lugar do Google Maps usando a ferramenta Correspondência de entidade de PDI. |
| Violação da política de imagens | ERRO | SAFE_SEARCH_POLICY_VIOLATION_IMAGE
|
image
|
Sim | Remova ou substitua a imagem sinalizada ou clique em Contestar para enviar uma justificativa. Consulte a Política de conteúdo de imagens da Pesquisa Google. |
| Violação da política de texto: nome padrão | ERRO | SAFE_SEARCH_POLICY_VIOLATION_TEXT
|
name.localizations.*.text
|
Sim | Remova ou substitua o texto do nome sinalizado ou clique em Contestar. Consulte a política de conteúdo de texto da Pesquisa Google. |
| Violação da política de texto: nome não padrão | AVISO | SAFE_SEARCH_POLICY_VIOLATION_TEXT
|
name.localizations.*.text
|
Não | Remova ou substitua o texto do nome sinalizado. Consulte a política de conteúdo de texto da Pesquisa Google. |
| Violação da política de texto: descrição | AVISO | SAFE_SEARCH_POLICY_VIOLATION_TEXT
|
description.localizations.*.text
|
Não | Remova ou substitua o texto da descrição sinalizado. Consulte a política de conteúdo de texto da Pesquisa Google. |
| Violação da política de texto: endereço de exibição | AVISO | SAFE_SEARCH_POLICY_VIOLATION_TEXT
|
display_address.localizations.*.text
|
Não | Remova ou substitua o texto do endereço de exibição sinalizado. Consulte a política de conteúdo de texto da Pesquisa Google. |
| Localidade padrão ausente para a categoria do estabelecimento | ERRO | MISSING_REQUIRED_FIELD
|
local_data.establishment_category.default_locale
|
Não | Informe um valor para a categoria de estabelecimento localizada do PDI que corresponde ao idioma default_locale declarado.
|
| Dia de funcionamento ausente no horário de funcionamento | ERRO | MISSING_REQUIRED_FIELD
|
local_data.business_hours.time_ranges.open_day
|
Não | Informe um dia de funcionamento válido. |
| Horário de abertura do horário de funcionamento ausente | ERRO | MISSING_REQUIRED_FIELD
|
local_data.business_hours.time_ranges.open_time
|
Não | Informe um horário de funcionamento válido. |
| Dia de fechamento do horário de funcionamento ausente | ERRO | MISSING_REQUIRED_FIELD
|
local_data.business_hours.time_ranges.close_day
|
Não | Informe um dia de fechamento válido para o horário de funcionamento. |
| Falta o horário de fechamento do horário de funcionamento | ERRO | MISSING_REQUIRED_FIELD
|
local_data.business_hours.time_ranges.close_time
|
Não | Informe um horário de fechamento válido. |
| O horário de funcionamento é posterior ao horário de fechamento | ERRO | NOT_LESS_THAN_FIELD
|
local_data.business_hours.time_ranges.open_time, local_data.business_hours.time_ranges.close_time
|
Não | Informe um par válido de horários de abertura e fechamento, garantindo que o horário de abertura seja anterior ao de fechamento. |
| O valor mínimo da faixa de preço é maior que o valor máximo | ERRO | INVALID_PRICE_RANGE
|
local_data.price_range.min_price, local_data.price_range.max_price
|
Não | Informe uma faixa de preço válida, com o preço mínimo menor que o máximo. |
| ID da marca ausente | ERRO | MISSING_REQUIRED_FIELD
|
local_data.brand_landing_pages.brand_id
|
Não | Informe um ID de marca válido. |
| ID de marca duplicado em um PDI | ERRO | DUPLICATE_UNIQUE_PROPERTY
|
local_data.brand_landing_pages.brand_id
|
Não | Verifique se cada brand_id é exclusivo no payload do PDI. Remova as entradas duplicadas.
|
| URL padrão da marca ausente | ERRO | MISSING_REQUIRED_FIELD
|
local_data.brand_landing_pages.default_url
|
Não | Forneça um URL padrão de marca válido. |
| URL de marca malformado ou inválido | ERRO | INVALID_ATTRIBUTE_VALUE
|
local_data.brand_landing_pages.default_url
|
Não | Verifique se o URL padrão da marca usa um protocolo HTTP/HTTPS compatível e uma sintaxe válida. |
| URL da página de destino localizada da marca ausente | ERRO | MISSING_REQUIRED_FIELD
|
local_data.brand_landing_pages.localized_landing_pages.url
|
Não | Forneça um URL válido para a página de destino localizada. |
| URL da página de destino localizada da marca inválido ou malformado | ERRO | INVALID_ATTRIBUTE_VALUE
|
local_data.brand_landing_pages.localized_landing_pages.url
|
Não | Verifique se o URL da página de destino localizada usa um protocolo HTTP/HTTPS compatível e uma sintaxe válida. |
| URL da página de destino localizada da marca duplicado | ERRO | DUPLICATE_UNIQUE_PROPERTY
|
local_data.brand_landing_pages.localized_landing_pages.url
|
Não | Verifique se cada url é exclusivo nas páginas de destino localizadas do PDI. Remova as entradas duplicadas.
|
| Localidade da página de destino localizada da marca ausente | ERRO | MISSING_REQUIRED_FIELD
|
local_data.brand_landing_pages.localized_landing_pages.locales
|
Não | Forneça um conjunto válido de localidades para a página de destino localizada. |
| Localidade da página de destino localizada da marca duplicada | ERRO | DUPLICATE_UNIQUE_PROPERTY
|
local_data.brand_landing_pages.localized_landing_pages.locales
|
Não | Verifique se cada locale é exclusivo nas páginas de destino localizadas do PDI. Remova as entradas duplicadas.
|
| Violação da política de texto: categoria do estabelecimento | AVISO | SAFE_SEARCH_POLICY_VIOLATION_TEXT
|
local_data.establishment_category.localizations.*.text
|
Não | Remova ou substitua o texto sinalizado da categoria do estabelecimento. Consulte a política de conteúdo de texto da Pesquisa Google. |
Códigos de problema
As seções a seguir fornecem causas detalhadas e etapas de correção para cada código de problema.
Falta um campo obrigatório
Código do problema:MISSING_REQUIRED_FIELD
Gravidade:erro (bloqueia a veiculação)
Contestável:não (resolva atualizando seu feed de PDIs)
Esse erro ocorre quando uma entidade ingerida não tem um ou mais atributos obrigatórios exigidos pela Especificação do feed de pontos de interesse.
Verifique o painel "Detalhes do problema" para identificar qual propriedade específica está faltando e aplique a correção correspondente:
1. ID do PDI ausente (poi_id)
- Causa:o campo
poi_idestá vazio, nulo ou ausente no objeto de entidade raiz. - Correção:forneça um identificador de string exclusivo e persistente para a propriedade.
{
"poi_id": "test_restaurant_1"
}
2. Nome localizado ou localidade padrão ausente (name)
- Causa:o objeto
namenão tem a stringdefault_localeou a matrizlocalizationscom uma localidade correspondente. - Correção:forneça o
default_localee pelo menos uma entrada de localização correspondente a essa localidade.
{
"name": {
"localizations": [
{
"locale": "en",
"text": "Tasty Bites Test Restaurant"
}
],
"default_locale": "en"
}
}
3. Localidade padrão ou endereço localizado ausente (display_address)
- Causa:o objeto
display_addressnão tem a stringdefault_localeou a matrizlocalizations. - Correção:forneça o
default_localee pelo menos uma entrada de localização correspondente a essa localidade para o endereço formatado.
{
"display_address": {
"localizations": [
{
"locale": "en",
"text": "1600 Amphitheatre Pkwy, Mountain View, CA 94043"
}
],
"default_locale": "en"
}
}
4. Localidade padrão ou descrição localizada ausente (description)
- Causa:quando o objeto
descriptioné incluído,default_localeou a localização correspondente está ausente. - Correção:forneça o
default_localee pelo menos uma entrada de localização correspondente a essa localidade para a descrição.
{
"description": {
"localizations": [
{
"locale": "en",
"text": "A mock restaurant for testing the POI feed ingestion."
}
],
"default_locale": "en"
}
}
5. Coordenadas geográficas ausentes (location.latitude / location.longitude)
- Causa:o objeto
locationnão tem o valor numéricolatitudeoulongitude. - Correção:forneça
latitudeelongitudecomo números de ponto flutuante em graus decimais padrão do WGS84.
{
"location": {
"latitude": 37.422,
"longitude": -122.084
}
}
6. Endereço postal estruturado ausente (location.address)
- Causa:o objeto
location.addressnão tem componentes de endereço obrigatórios (country,localityoupostal_code). - Correção:preencha o objeto de endereço postal estruturado de acordo com as normas ISO.
{
"location": {
"address": {
"country": "US",
"locality": "Mountain View",
"postal_code": "94043",
"street_address": "1600 Amphitheatre Pkwy"
}
}
}
7. Localidade padrão ausente para a categoria do estabelecimento (local_data.establishment_category.default_locale)
- Causa:o objeto
local_data.establishment_categoryestá presente, masdefault_localeestá ausente, vazio ou não corresponde a nenhuma entrada na matrizlocalizations. - Correção:especifique uma tag de idioma BCP 47 válida para
default_localee forneça pelo menos uma string localizada que corresponda a essa localidade.
{
"local_data": {
"establishment_category": {
"default_locale": "en",
"localizations": [
{
"locale": "en",
"text": "Restaurant"
}
]
}
}
}
8. Falta o dia de abertura do horário de funcionamento (local_data.business_hours.time_ranges.open_day)
- Causa:uma entrada em
local_data.business_hours.time_rangesnão temopen_dayou está definida comoDAY_OF_WEEK_UNSPECIFIED. - Correção:forneça uma string de dia da semana válida (por exemplo,
"MONDAY","TUESDAY"etc.).
{
"local_data": {
"business_hours": {
"time_ranges": [
{
"open_day": "MONDAY",
"open_time": { "hours": 11, "minutes": 0 },
"close_day": "MONDAY",
"close_time": { "hours": 21, "minutes": 0 }
}
]
}
}
}
9. Horário de abertura do horário de funcionamento ausente (local_data.business_hours.time_ranges.open_time)
- Causa:uma entrada em
local_data.business_hours.time_rangesnão tem o objetoopen_time. - Correção:especifique
open_timecomhours(0–23) eminutes(0–59).
{
"local_data": {
"business_hours": {
"time_ranges": [
{
"open_day": "MONDAY",
"open_time": { "hours": 11, "minutes": 0 },
"close_day": "MONDAY",
"close_time": { "hours": 21, "minutes": 0 }
}
]
}
}
}
10. Falta o dia de fechamento do horário de funcionamento (local_data.business_hours.time_ranges.close_day)
- Causa:uma entrada em
local_data.business_hours.time_rangesnão temclose_dayou está definida comoDAY_OF_WEEK_UNSPECIFIED. - Correção:forneça uma string de dia da semana válida (por exemplo,
"MONDAY","TUESDAY"etc.).
{
"local_data": {
"business_hours": {
"time_ranges": [
{
"open_day": "MONDAY",
"open_time": { "hours": 11, "minutes": 0 },
"close_day": "MONDAY",
"close_time": { "hours": 21, "minutes": 0 }
}
]
}
}
}
11. Horário de fechamento do horário de funcionamento ausente (local_data.business_hours.time_ranges.close_time)
- Causa:uma entrada em
local_data.business_hours.time_rangesnão tem o objetoclose_time. - Correção:especifique
close_timecomhours(0–23) eminutes(0–59).
{
"local_data": {
"business_hours": {
"time_ranges": [
{
"open_day": "MONDAY",
"open_time": { "hours": 11, "minutes": 0 },
"close_day": "MONDAY",
"close_time": { "hours": 21, "minutes": 0 }
}
]
}
}
}
12. ID da marca ausente (local_data.brand_landing_pages.brand_id)
- Causa:uma entrada em
local_data.brand_landing_pagestem umbrand_idvazio, nulo ou ausente. - Correção:forneça um identificador de string não vazio que corresponda à configuração da marca do parceiro registrada.
{
"local_data": {
"brand_landing_pages": [
{
"brand_id": "tasty_bites_brand",
"default_url": "https://www.tastybitestest.com"
}
]
}
}
13. URL padrão da marca ausente (local_data.brand_landing_pages.default_url)
- Causa:uma entrada em
local_data.brand_landing_pagesnão temdefault_urlou é uma string vazia. - Correção:forneça um URL de página de destino HTTP/HTTPS substituto válido para usuários com uma localidade que não corresponde aos URLs localizados.
{
"local_data": {
"brand_landing_pages": [
{
"brand_id": "tasty_bites_brand",
"default_url": "https://www.tastybitestest.com"
}
]
}
}
14. URL da página de destino localizada da marca ausente (local_data.brand_landing_pages.localized_landing_pages.url)
- Causa:um item dentro de
localized_landing_pagestem um campourlausente ou vazio. - Correção:forneça um URL HTTP/HTTPS válido e totalmente qualificado para a página de destino localizada.
{
"local_data": {
"brand_landing_pages": [
{
"brand_id": "tasty_bites_brand",
"default_url": "https://www.tastybitestest.com",
"localized_landing_pages": [
{
"url": "https://www.tastybitestest.com/en",
"locales": ["en-US", "en-GB"]
}
]
}
]
}
}
15. A página de destino localizada da marca não tem uma localidade (local_data.brand_landing_pages.localized_landing_pages.locales)
- Causa:um item dentro de
localized_landing_pagestem uma matrizlocalesausente ou vazia. - Correção:forneça pelo menos um código de idioma ou localidade BCP 47 válido
(por exemplo,
["en-US"]) na matrizlocales.
{
"local_data": {
"brand_landing_pages": [
{
"brand_id": "tasty_bites_brand",
"default_url": "https://www.tastybitestest.com",
"localized_landing_pages": [
{
"url": "https://www.tastybitestest.com/en",
"locales": ["en-US", "en-GB"]
}
]
}
]
}
}
O número máximo de imagens foi excedido
Código do problema:EXCEEDED_MAX_COUNT
Gravidade:aviso
Contestável:não (resolva atualizando o payload do feed)
Esse erro ocorre quando um payload de entidade de PDIs contém mais de 5 objetos de imagem na matriz images.
Correção:
- Corte a matriz
imagespara que ela contenha no máximo cinco fotos representativas e de alta qualidade da propriedade local. - As imagens que excederem o limite de 5 serão descartadas.
Coordenadas geográficas inválidas
Código do problema:INVALID_LATLNG
Gravidade:erro (bloqueia a veiculação)
Contestável:não (resolva atualizando o payload do feed)
Esse erro ocorre quando as coordenadas geográficas fornecidas em
location.latitude ou location.longitude estão fora dos limites esféricos válidos
ou representam coordenadas nulas não preenchidas.
Causas comuns e correção:
- Latitude fora dos limites:a latitude precisa ser um número de ponto flutuante entre
-90.0e90.0, inclusive. - Longitude fora dos limites:a longitude precisa ser um número de ponto flutuante
entre
-180.0e180.0, inclusive. - Null Island (0,0): o envio de
0.0, 0.0ou números inteiros de marcador de posição (como999, 999) aciona a rejeição de coordenadas. - Coordenadas trocadas:verifique se a latitude e a longitude não estão invertidas no pipeline de serialização.
Exemplo de payload válido:
{
"location": {
"latitude": 37.422,
"longitude": -122.084
}
}
URL inválido ou incorreto
Código do problema:INVALID_ATTRIBUTE_VALUE
Gravidade:erro (bloqueia a veiculação)
Contestável:não (resolva atualizando o payload do feed)
Esse erro ocorre quando um valor de atributo falha na validação do esquema, geralmente quando um URL de página de destino ou de imagem do parceiro é sintaticamente inválido.
Requisitos:
- Protocolo:os URLs precisam especificar explicitamente
http://ouhttps://(o HTTPS é altamente recomendado). - Codificação:os URLs que contêm caracteres especiais, espaços ou caracteres não ASCII precisam ser codificados corretamente em porcentagem (RFC 3986).
- Domínio canônico:verifique se o domínio está totalmente qualificado (por exemplo,
https://example.com/local/123, nãoexample.com/local/123ouwww.example).
Exemplo de payload válido:
{
"url": "https://www.tastybitestest.com/en"
}
Imagem inválida ou inacessível
Código do problema:INVALID_IMAGE
Gravidade:aviso
Contestável:não (resolva atualizando o payload do feed)
Esse aviso ocorre durante o estágio de busca de imagens assíncrona quando o rastreador do Google não consegue baixar, decodificar ou verificar o recurso de mídia de image.url.
Embora a imagem inválida seja omitida, a propriedade continua qualificada para veiculação.
Causas comuns e correção:
- Erros HTTP (404 / 403 / 500): o URL da imagem retorna um código de status HTTP diferente de 200. Verifique se as imagens estão acessíveis ao público sem autenticação, bloqueios de cookies ou restrições de lista de permissões de IP.
- Bloqueio do robots.txt:verifique se a rede de fornecimento de conteúdo (CDN) permite os user agents
GoogleboteGooglebot-Image. - Formato do arquivo incompatível:as imagens precisam estar em formatos de varredura padrão
(
JPEG,PNG,WebP). GIFs animados, SVGs e formatos de câmera RAW não são compatíveis. Consulte nossas diretrizes de imagem para mais detalhes. - Falhas no certificado SSL:verifique se o servidor host de imagens tem uma cadeia de certificados SSL válida.
ID de PDI duplicado
Código do problema:DUPLICATE_ENTITY
Gravidade:erro (bloqueia a veiculação)
Contestável:não (resolva atualizando o payload do feed)
Esse erro ocorre quando a mesma string poi_id aparece mais de uma vez em um único conjunto de arquivos de feed.
Correção:
- Verifique se cada ficha de empresa local no seu feed tem um
poi_idexclusivo e determinístico. - Se uma propriedade local tiver vários tipos de quarto ou tarifas, consolide-os em uma única entidade de PDI raiz, em vez de emitir registros de entidade duplicados com IDs idênticos.
Entidade correspondente duplicada
Código do problema:DUPLICATE_MATCHED_ENTITY
Gravidade:erro (bloqueia a veiculação)
Contestável:não (resolva atualizando o payload do feed ou usando as ferramentas de correspondência de entidade de PDI)
Esse erro ocorre quando duas ou mais entradas poi_id distintas no seu feed correspondem
à mesma ficha de lugar canônica do Google Maps. Quando várias empresas são mapeadas para a mesma entidade do Google, todas as entradas conflitantes são impedidas de veicular até que a duplicação seja resolvida.
Como resolver:
- Identifique as propriedades em conflito:abra o
Visualizador de ingestão
(Ingestão > Histórico), selecione a execução de ingestão mais recente e abra o painel
Validações. Clique na linha
DUPLICATE_MATCHED_ENTITYque compartilha o mesmo identificador de grupo de Informações do problema para ver todos os registrospoi_idque correspondem à mesma entidade do Google. - Remova as fichas duplicadas do seu feed:se as entradas
poi_idem conflito representarem o mesmo local físico da empresa, remova as entradas duplicadas do seu feed para que apenas umpoi_idseja enviado para esse estabelecimento. - Ajustar correspondências incorretas para empresas independentes:se as entradas conflitantes de
poi_idrepresentarem empresas separadas e independentes que foram associadas incorretamente à mesma entidade do Google, abra a empresa com a correspondência incorreta na visualização de inventário e clique em Editar correspondência para selecionar ou propor a ficha dedicada do lugar no Google Maps. As instruções detalhadas estão disponíveis no guia de correspondência de entidades de PDI.
Entidade sem correspondência
Código do problema:UNMATCHED_ENTITY
Gravidade:erro (bloqueia a veiculação)
Contestável:não (use as ferramentas de correspondência de entidade de PDI ou corrija os metadados da entidade)
Esse problema indica que o pipeline de correspondência do Google não conseguiu reconciliar sua ficha de empresa local com um lugar canônico no Google Maps.
Como resolver:
- Verifique os atributos principais:confira se os campos
name,display_address,location.address,url,telephoneelocation.latitude/location.longitudedo local refletem com precisão o endereço físico da propriedade. - Inspecione as informações de correspondência:confira a coluna Informações de correspondência na visualização de inventário para ver os lugares candidatos.
- Use a ferramenta de correção de correspondência de PDI:clique em Editar correspondência na Central de ações para pesquisar manualmente e confirmar o ID de lugar correto do Google. Instruções detalhadas estão disponíveis no guia de correspondência de entidades de PDI.
Violação da política de imagens da Pesquisa Google
Código do problema:SAFE_SEARCH_POLICY_VIOLATION_IMAGE
Gravidade:ERRO (bloqueia a veiculação)
Contestável:sim
Confira os códigos de problemas de política relevantes aqui: política de imagens de conteúdo da Pesquisa Google
Se você acredita que a imagem foi sinalizada por engano (falso positivo), clique em Criar contestação no painel "Detalhes do problema".
Violação da política de conteúdo de texto da Pesquisa Google: nome
Código do problema:SAFE_SEARCH_POLICY_VIOLATION_TEXT
Gravidade:varia de acordo com o campo (confira os detalhes abaixo)
Campo afetado:name.localizations.*.text
Contestável:sim (somente ERRO de localidade padrão); não (aviso de localidade não padrão)
- Localidade padrão (
name.default_locale): ERRO (bloqueia a veiculação). O POI inteiro é impedido de ser veiculado. Se você acredita que o texto do nome da localidade padrão foi sinalizado por engano (falso positivo), clique em Criar contestação no painel "Detalhes do problema". - Localidade não padrão:aviso (não bloqueia a veiculação). Somente a localização sinalizada é omitida, enquanto o PD permanece qualificado para veiculação. Os avisos sobre localidades não padrão não podem ser contestados e podem ser resolvidos atualizando o payload do feed.
Confira aqui os códigos de problemas de política relevantes: política de conteúdo de texto da Pesquisa Google
Violação da política de conteúdo de texto da Pesquisa Google: descrição
Código do problema:SAFE_SEARCH_POLICY_VIOLATION_TEXT
Gravidade:aviso (não bloqueia a veiculação)
Campo afetado:description.localizations.*.text
Contestável:não (resolva atualizando o payload do feed)
Esse aviso ocorre quando o texto em description.localizations é sinalizado
por violar a política de texto de conteúdo da Pesquisa Google. Enquanto a localização da descrição sinalizada (ou todo o campo description, se a localidade padrão estiver sinalizada) é omitida, o PDV permanece qualificado para veiculação.
Confira aqui os códigos de problemas de política relevantes: política de conteúdo de texto da Pesquisa Google
Violação da política de conteúdo de texto da Pesquisa Google: endereço de exibição
Código do problema:SAFE_SEARCH_POLICY_VIOLATION_TEXT
Gravidade:aviso (não bloqueia a veiculação)
Campo afetado:display_address.localizations.*.text
Contestável:não (resolva atualizando o payload do feed)
Esse aviso ocorre quando o texto do endereço formatado em
display_address.localizations contém conteúdo proibido na política de conteúdo de texto
da Pesquisa Google. Embora a localização do endereço sinalizado (ou todo o campo display_address, se a localidade padrão estiver sinalizada) seja omitida, o PD permanece qualificado para veiculação.
Confira aqui os códigos de problemas de política relevantes: política de conteúdo de texto da Pesquisa Google
O horário de abertura é posterior ao de fechamento
Código do problema:NOT_LESS_THAN_FIELD
Gravidade:erro (bloqueia a veiculação)
Campos afetados:local_data.business_hours.time_ranges.open_time,
local_data.business_hours.time_ranges.close_time
Contestável:não (resolva atualizando o payload do feed)
Esse erro ocorre quando o horário de funcionamento open_time é posterior ou igual a
close_time para o mesmo dia.
Causas comuns e correção:
- Inversão no mesmo dia: verifique se
open_timeé anterior aclose_time(por exemplo, das 9h às 17h). - Turnos noturnos: se um estabelecimento abre em um dia e fecha depois da meia-noite do dia seguinte (por exemplo, das 21h às 2h), defina
close_daycomo o dia seguinte (por exemplo,open_day:"FRIDAY",close_day:"SATURDAY").
Exemplo de payload válido:
{
"local_data": {
"business_hours": {
"time_ranges": [
{
"open_day": "MONDAY",
"open_time": { "hours": 9, "minutes": 0 },
"close_day": "MONDAY",
"close_time": { "hours": 17, "minutes": 0 }
}
]
}
}
}
O valor mínimo da faixa de preço é maior que o valor máximo
Código do problema:INVALID_PRICE_RANGE
Gravidade:erro (bloqueia a veiculação)
Campos afetados:local_data.price_range.min_price,
local_data.price_range.max_price
Contestável:não (resolva atualizando o payload do feed)
Esse erro ocorre quando o valor de min_price excede o de max_price ou se
min_price e max_price especificam códigos de moeda diferentes.
Causas comuns e correção:
- Valores invertidos:verifique se
min_priceé menor ou igual amax_price. - Incompatibilidade de moeda:verifique se
min_price.currency_codeemax_price.currency_codecorrespondem ao mesmo código de moeda de três letras ISO 4217 (por exemplo,"USD").
Exemplo de payload válido:
{
"local_data": {
"price_range": {
"min_price": {
"currency_code": "USD",
"units": 15,
"nanos": 0
},
"max_price": {
"currency_code": "USD",
"units": 45,
"nanos": 0
}
}
}
}
Propriedade exclusiva duplicada em um PDI
Código do problema:DUPLICATE_UNIQUE_PROPERTY
Gravidade:erro (bloqueia a veiculação)
Contestável:não (resolva atualizando o payload do feed)
Esse erro ocorre quando um campo ou subelemento que precisa ser exclusivo em uma única entidade de PDI contém entradas duplicadas.
Verifique o painel "Detalhes do problema" para identificar qual propriedade viola a exclusividade:
1. ID de marca duplicado em um PDI (local_data.brand_landing_pages.brand_id)
- Causa:a mesma string
brand_idaparece em várias entradasbrand_landing_pagespara um único PDI. - Correção:consolide todas as páginas de destino dessa marca em um único objeto
brand_landing_pages.
Exemplo de payload válido:
{
"local_data": {
"brand_landing_pages": [
{
"brand_id": "brand_zenchef",
"default_url": "https://bookings.zenchef.com/results?rid=287722"
},
{
"brand_id": "brand_opentable",
"default_url": "https://www.opentable.com/r/287722"
}
]
}
}
2. URL da página de destino localizada da marca duplicado (local_data.brand_landing_pages.localized_landing_pages.url)
- Causa:o mesmo URL da página de destino foi definido várias vezes em
localized_landing_pagespara a mesma marca. - Correção:verifique se cada entrada de URL é distinta ou associe várias
localidades na matriz
localesde uma única entrada de URL.
Exemplo de payload válido:
{
"local_data": {
"brand_landing_pages": [
{
"brand_id": "brand_zenchef",
"default_url": "https://bookings.zenchef.com/results?rid=287722",
"localized_landing_pages": [
{
"url": "https://bookings.zenchef.com/en/results?rid=287722",
"locales": ["en-US"]
},
{
"url": "https://bookings.zenchef.com/fr/results?rid=287722",
"locales": ["fr-FR"]
}
]
}
]
}
}
3. Localidade da página de destino localizada da marca duplicada (local_data.brand_landing_pages.localized_landing_pages.locales)
- Causa:o mesmo código de localidade (por exemplo,
"en-US") é repetido em várias entradas emlocalized_landing_pagespara a mesma marca. - Correção:atribua cada tag de localidade a exatamente uma página de destino localizada.
Exemplo de payload válido:
{
"local_data": {
"brand_landing_pages": [
{
"brand_id": "brand_zenchef",
"default_url": "https://bookings.zenchef.com/results?rid=287722",
"localized_landing_pages": [
{
"url": "https://bookings.zenchef.com/en/results?rid=287722",
"locales": ["en-US", "en-GB"]
},
{
"url": "https://bookings.zenchef.com/fr/results?rid=287722",
"locales": ["fr-FR"]
}
]
}
]
}
}
URL da marca incorreto ou inválido
Código do problema:INVALID_ATTRIBUTE_VALUE
Gravidade:erro (bloqueia a veiculação)
Contestável:não (resolva atualizando o payload do feed)
Campos afetados:local_data.brand_landing_pages.default_url,
local_data.brand_landing_pages.localized_landing_pages.url
Esse erro ocorre quando um URL padrão de marca ou um URL da página de destino localizada falha na validação de sintaxe do URI.
Requisitos:
- Protocolo:precisa especificar explicitamente
http://ouhttps://(https://é necessário para veiculação de produção). - Sintaxe:precisa ser um URL válido, codificado por porcentagem, compatível com RFC 3986 e com um nome de domínio totalmente qualificado.
Exemplo de payload válido:
{
"local_data": {
"brand_landing_pages": [
{
"brand_id": "tasty_bites_brand",
"default_url": "https://www.tastybitestest.com/en",
"localized_landing_pages": [
{
"url": "https://www.tastybitestest.com/en/reservation",
"locales": ["en-US"]
}
]
}
]
}
}
Violação da política de texto de conteúdo da Pesquisa Google: categoria do estabelecimento
Código do problema:SAFE_SEARCH_POLICY_VIOLATION_TEXT
Gravidade:aviso (não bloqueia a veiculação)
Contestável:não (resolva atualizando o payload do feed)
Campo afetado:local_data.establishment_category.localizations.*.text
Esse aviso ocorre quando o texto localizado da categoria do estabelecimento não passa nos filtros de conteúdo automatizados do SafeSearch. Enquanto a localização da categoria do estabelecimento sinalizada (ou todo o campo establishment_category se a localidade padrão estiver sinalizada) for omitida, o PDIs vai continuar qualificado para veiculação.
Correção:
- Conformidade com a política:remova ou substitua o texto da categoria de estabelecimento sinalizado por termos de categoria de negócios padrão que obedeçam à política de texto de conteúdo da Pesquisa Google.
Exemplo de payload válido:
{
"local_data": {
"establishment_category": {
"default_locale": "en",
"localizations": [
{
"locale": "en",
"text": "Restaurant"
},
{
"locale": "fr",
"text": "Restaurant gastronomique"
}
]
}
}
}