Visualização de inventário

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 Unit no Search).
  • Status de veiculação: status atual de Enabled ou Disabled.
  • 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, Approved ou Rejected).

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) ou No (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

  1. 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.
  2. 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_id está 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 name não tem a string default_locale ou a matriz localizations com uma localidade correspondente.
  • Correção:forneça o default_locale e 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_address não tem a string default_locale ou a matriz localizations.
  • Correção:forneça o default_locale e 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_locale ou a localização correspondente está ausente.
  • Correção:forneça o default_locale e 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 location não tem o valor numérico latitude ou longitude.
  • Correção:forneça latitude e longitude como 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.address não tem componentes de endereço obrigatórios (country, locality ou postal_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_category está presente, mas default_locale está ausente, vazio ou não corresponde a nenhuma entrada na matriz localizations.
  • Correção:especifique uma tag de idioma BCP 47 válida para default_locale e 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_ranges não tem open_day ou está definida como DAY_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_ranges não tem o objeto open_time.
  • Correção:especifique open_time com hours (0–23) e minutes (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_ranges não tem close_day ou está definida como DAY_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_ranges não tem o objeto close_time.
  • Correção:especifique close_time com hours (0–23) e minutes (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_pages tem um brand_id vazio, 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_pages não tem default_url ou é 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_pages tem um campo url ausente 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_pages tem uma matriz locales ausente ou vazia.
  • Correção:forneça pelo menos um código de idioma ou localidade BCP 47 válido (por exemplo, ["en-US"]) na matriz locales.
{
  "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 images para 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.0 e 90.0, inclusive.
  • Longitude fora dos limites:a longitude precisa ser um número de ponto flutuante entre -180.0 e 180.0, inclusive.
  • Null Island (0,0): o envio de 0.0, 0.0 ou números inteiros de marcador de posição (como 999, 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:// ou https:// (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ão example.com/local/123 ou www.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 Googlebot e Googlebot-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_id exclusivo 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:

  1. 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_ENTITY que compartilha o mesmo identificador de grupo de Informações do problema para ver todos os registros poi_id que correspondem à mesma entidade do Google.
  2. Remova as fichas duplicadas do seu feed:se as entradas poi_id em conflito representarem o mesmo local físico da empresa, remova as entradas duplicadas do seu feed para que apenas um poi_id seja enviado para esse estabelecimento.
  3. Ajustar correspondências incorretas para empresas independentes:se as entradas conflitantes de poi_id representarem 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:

  1. Verifique os atributos principais:confira se os campos name, display_address, location.address, url, telephone e location.latitude/location.longitude do local refletem com precisão o endereço físico da propriedade.
  2. 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.
  3. 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 a close_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_day como 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 a max_price.
  • Incompatibilidade de moeda:verifique se min_price.currency_code e max_price.currency_code correspondem 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_id aparece em várias entradas brand_landing_pages para 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_pages para a mesma marca.
  • Correção:verifique se cada entrada de URL é distinta ou associe várias localidades na matriz locales de 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 em localized_landing_pages para 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:// ou https:// (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:

Exemplo de payload válido:

{
  "local_data": {
    "establishment_category": {
      "default_locale": "en",
      "localizations": [
        {
          "locale": "en",
          "text": "Restaurant"
        },
        {
          "locale": "fr",
          "text": "Restaurant gastronomique"
        }
      ]
    }
  }
}