Os feeds de dados permitem que você disponibilize seu restaurante, serviços e cardápio em um pedido completo.
Este documento mostra como hospedar inventários de sandbox e de produção, além de usar a ingestão em lote para atualizar o inventário na ordem de ponta a ponta.
Ambientes de feed de dados
Há três ambientes de feed de dados disponíveis para o desenvolvimento da integração:
Ambiente do feed | Descrição | Ingestão em lote |
---|---|---|
Sandbox | O ambiente de teste para o desenvolvimento do seu feed. | Obrigatório |
Produção | O ambiente de produção do inventário que você quer lançar. | Obrigatório |
Como hospedar feeds de dados
Para que a ordenação de ponta a ponta processe seus feeds de dados de sandbox e de produção por ingestão em lote, é necessário hospedar os arquivos de feed de dados no Google Cloud Storage, Amazon S3 ou HTTPS com um sitemap.
Recomendamos que você hospede os feeds de dados para os ambientes de sandbox e de produção separadamente. Essa abordagem permite fazer desenvolvimento e testes no ambiente do feed do sandbox antes de implantar as alterações na produção.
Por exemplo, se você usar o Google Cloud Storage como opção de hospedagem, poderá usar os seguintes caminhos:
- Feed do sandbox:
gs://foorestaurant-google-feed-sandbox/
- Feed de produção:
gs://foorestaurant-google-feed-prod/
Para hospedar seu inventário, faça o seguinte:
- Gere os arquivos do feed de dados.
- Escolha uma solução de hospedagem.
- Hospede seus feeds de dados.
- Certifique-se de que os arquivos do seu feed de dados sejam atualizados regularmente. Os feeds de dados de produção precisam ser atualizados diariamente.
Para detalhes sobre como criar um feed de inventário, consulte a documentação das entidades
Restaurant
,
Service
e Menu
,
assim como a seção
Criar um feed de dados.
Diretrizes sobre arquivos de feed de dados
Cada arquivo, que pode conter várias entidades, não pode exceder 200 MB. As entidades de nível superior Restaurant
, Service
e Menu
, assim como as entidades filhas, não podem exceder 4 MB.
Escolha uma solução de hospedagem
A tabela a seguir lista as opções de hospedagem dos feeds de dados e como esses hosts funcionam com a ordenação completa:
Amazon S3 | Google Cloud Storage | HTTPS com um sitemap | |
---|---|---|---|
Credenciais e acesso |
Forneça ao Google as seguintes informações:
O bucket do S3 precisa incluir as seguintes informações:
Exemplo de arquivo |
Forneça ao Google os caminhos para os diretórios de bucket de produção e sandbox e para o arquivo
Adicione a conta de serviço fornecida pelo seu consultor do Google como um leitor do seu bucket do Google Cloud Storage. Para mais informações sobre como controlar o acesso do Google Cloud Storage (GCS), consulte Console do Google Cloud Platform: como definir permissões do bucket. O bucket do GCS precisa incluir as seguintes informações:
Exemplo de arquivo |
Forneça ao Google as seguintes informações:
|
Como o Google sabe quais arquivos precisam ser buscados | Lista de diretórios de todos os arquivos do bucket. | Lista de diretórios de todos os arquivos do bucket. | São URLs individuais dos arquivos listados no sitemap. |
Como o Google sabe que os arquivos estão prontos para busca | Depois de gerar seus feeds de dados, atualize o arquivo marker.txt com o carimbo de data/hora mais recente. |
Depois de gerar seus feeds de dados, atualize o arquivo marker.txt com o carimbo de data/hora mais recente. |
Quando terminar de gerar seus feeds de dados, atualize o cabeçalho de resposta last-modified de sitemap.xml com o carimbo de data/hora mais recente. |
Limites de arquivo |
Número máximo de arquivos: 100.000. Você precisa ter menos de 100.000 arquivos no bucket do Amazon S3. |
Número máximo de arquivos: 100.000. Você precisa ter um total de menos de 100.000 arquivos no bucket do Google Cloud Storage. |
Número máximo de arquivos: 100.000. O número de caminhos no arquivo XML do sitemap precisa ser menor que 100.000. |
Conecte seus feeds de dados para ingestão em lote
Depois de hospedar seus feeds, eles precisam ser conectados ao projeto na Central de ações. A configuração inicial dos feeds de produção é feita na página Integração de tarefas. Posteriormente, a configuração dos feeds de produção e sandbox pode ser atualizada a qualquer momento na página Configuração > Feeds por qualquer usuário do portal com um papel administrativo. O ambiente de sandbox é usado para fins de desenvolvimento e teste, enquanto os feeds de produção são exibidos aos usuários.
Se você hospeda seus feeds de dados com o Amazon S3
- Na Central de ações, acesse Configuração > Feeds.
-
Clique em Editar e preencha o formulário Atualizar feed:
- Método de exibição de feed:defina como Amazon S3.
- Arquivo de marcador:forneça o URL do arquivo
marker.txt
. - Arquivos de dados: forneça o URL para o bucket do S3 que contém os feeds de dados.
- ID de acesso:insira o ID da chave de acesso do IAM com permissões para ler os recursos do S3.
- Chave de acesso:insira a chave de acesso secreta do IAM com permissões para ler os recursos do S3.
- Clique em Enviar.
- Depois de uma a duas horas, verifique se a ingestão em lote busca seus arquivos de feed.
Se você hospeda os feeds de dados com o Google Cloud Storage
- Na Central de ações, acesse Configuração > Feeds.
-
Clique em Editar e preencha o formulário Atualizar feed:
- Método de exibição de feed:defina como Google Cloud Storage.
- Arquivo de marcador:forneça o URL do arquivo
marker.txt
. - Arquivos de dados:forneça o URL para o bucket do GCS que contém os feeds de dados.
- Clique em Enviar.
- Uma conta de serviço é criada para acessar seu bucket do GCS. O nome da conta pode ser encontrado em Configuração > Feeds depois que as tarefas de integração forem concluídas. Essa conta de serviço precisa do papel “Leitor de objeto legado do Storage”. Esse papel pode ser concedido à conta de serviço na página do IAM no console do Google Cloud.
- Depois de uma a duas horas, verifique se a ingestão em lote busca seus arquivos de feed.
Se você hospeda os feeds de dados com HTTPS
- Na Central de ações, acesse Configuração > Feeds.
-
Clique em Editar e preencha o formulário Atualizar feed:
- Método de exibição do feed:defina como HTTPS.
- Arquivo de sitemap:forneça o URL do arquivo
sitemap.xml
. - Username:digite as credenciais do nome de usuário para acessar o servidor HTTPS.
- Password:digite a senha para acessar o servidor HTTPS.
- Clique em Enviar.
- Depois de uma a duas horas, verifique se a ingestão em lote busca seus arquivos de feed.
Exemplos de caminhos
A tabela a seguir contém exemplos de caminhos para cada uma das opções de hospedagem:
Amazon S3 | Google Cloud Storage | HTTPS com um sitemap | |
---|---|---|---|
Caminho | s3://foorestaurant-google-feed-sandbox/ |
gs://foorestaurant-google-feed-sandbox/ |
https://sandbox-foorestaurant.com/sitemap.xml |
Arquivo marcador | s3://foorestaurant-google-feed-sandbox/marker.txt |
gs://foorestaurant-google-feed-sandbox/marker.txt |
Não relevante |
Sitemaps para hospedagem HTTPS
Use as seguintes diretrizes ao definir sitemaps:
- Os links no sitemap precisam apontar para os próprios arquivos.
- Caso seu sitemap inclua referências a um provedor de nuvem em vez do seu próprio nome de domínio,
confira se o início dos URLs, como
https://www.yourcloudprovider.com/your_id
, é estável e exclusivo para o job em lote. - Tenha cuidado para não fazer o upload de sitemaps parciais (como no caso de um upload de dados parciais). Isso faz com que o Google processe somente os arquivos do sitemap, o que reduz os níveis de inventário e pode bloquear o processamento do feed.
- Os caminhos para os arquivos referenciados no sitemap não podem mudar. Por exemplo, não
encontre a referência do sitemap
https://www.yourcloudprovider.com/your_id/10000.json
hoje, mas consultehttps://www.yourcloudprovider.com/your_id/20000.json
amanhã.
Exemplo de sitemap
Confira um exemplo de arquivo sitemap.xml
que veicula arquivos de feed de dados:
Exemplo 1: entidades agrupadas por comerciantes (recomendado).
XML
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>https://your_fulfillment_url.com/restaurant_1.ndjson</loc> <lastmod>2018-06-11T10:46:43+05:30</lastmod> </url> <url> <loc>https://your_fulfillment_url.com/restaurant_2.ndjson</loc> <lastmod>2018-06-11T10:46:43+05:30</lastmod> </url> <url> <loc>https://your_fulfillment_url.com/restaurant_3.ndjson</loc> <lastmod>2018-06-11T10:46:43+05:30</lastmod> </url> </urlset>
Exemplo 2: entidades agrupadas por tipo.
XML
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>https://your_fulfillment_url.com/restaurant.json</loc> <lastmod>2018-06-11T10:46:43+05:30</lastmod> </url> <url> <loc>https://your_fulfillment_url.com/menu.json</loc> <lastmod>2018-06-11T10:46:43+05:30</lastmod> </url> <url> <loc>https://your_fulfillment_url.com/service.json</loc> <lastmod>2018-06-11T10:46:43+05:30</lastmod> </url> </urlset>
Atualize seus feeds de dados
Depois que os feeds de dados são conectados, o Google verifica se há atualizações uma vez por hora, mas só processamos todos os feeds de dados quando os arquivos marker.txt
ou sitemap.xml
são modificados. É esperado que você atualize seus feeds de dados uma vez por dia para evitar que o inventário fique desatualizado.
Para especificar que os feeds de dados foram modificados e estão prontos para ingestão em lote, atualize o campo de metadados do objeto last-modified
do arquivo marker.txt
(para GCP e S3) ou o cabeçalho de resposta last-modified
do arquivo sitemap.xml
. O Google usa esses valores para determinar quando o feed de dados é atualizado.
Como o feed em lote está sendo processado,
- Serão inseridas novas entidades que não existem no seu inventário atual de Pedidos de ponta a ponta e que não têm erros.
-
Entidades presentes no inventário que não têm erros de processamento e têm uma
dateModified
mais recente do que a entrada atual ou, se não tiverem umdateModified
, o horário de início do processamento do feed será mais recente do que a entrada atual, elas seriam atualizadas. Caso contrário, seriam marcadas como desatualizadas. - As entidades que faziam parte de um feed anterior e não estão mais incluídas no feed em lote que está sendo processado são excluídas, desde que não haja erros no nível do arquivo no feed.
O carimbo de data/hora ou o cabeçalho de resposta last-modified
só pode ser atualizado depois que todos os arquivos do feed de dados forem gerados e atualizados. Limite os jobs em lote que atualizam seus feeds de dados para que sejam executados apenas uma vez por dia. Outra opção é ter um intervalo de pelo menos três horas entre cada job em lote. Se você não
seguir essas etapas, o Google poderá buscar arquivos desatualizados.