Seus feeds de dados permitem que você disponibilize seu restaurante, serviços e cardápio no sistema de pedidos de ponta a ponta.
Este documento aborda como hospedar os inventários de sandbox e de produção e usar a transferência em lote para atualizar o inventário no sistema de pedidos 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 feed. | Obrigatório |
Produção | O ambiente de produção do inventário que você quer lançar. | Obrigatório |
Hospedar feeds de dados
Para que o Ordering End-to-End processe os feeds de dados de sandbox e de produção por ingestão em lote, hospede os arquivos de feed de dados no Google Cloud Storage, no Amazon S3 ou no HTTPS com um sitemap.
Recomendamos hospedar os feeds de dados dos ambientes de sandbox e de produção separadamente. Essa abordagem permite que você faça o desenvolvimento e o teste no ambiente de sandbox antes de implantar as mudanças na produção.
Por exemplo, se você usar o Google Cloud Storage como uma opção de hospedagem, terá 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.
- Hospedar seus feeds de dados.
- Atualize os arquivos do feed de dados regularmente. Os feeds de dados de produção precisam ser atualizados diariamente.
Para saber como criar um feed de inventário, consulte a documentação das entidades
Restaurant
,
Service
e Menu
,
além da 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
, junto com as entidades
filhas, não podem exceder 4 MB no total.
Escolher 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 |
Informe ao Google os caminhos para os diretórios de bucket de produção e sandbox e o arquivo Adicione a conta de serviço fornecida pelo consultor do Google como leitora do bucket do Google Cloud Storage. Para mais informações sobre como controlar o acesso ao Google Cloud Storage (GCS), consulte Console do Google Cloud Platform: como definir permissões de 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 | Listagem de diretório de todos os arquivos no bucket. | Listagem de diretório de todos os arquivos no bucket. | URLs individuais de arquivos listados no sitemap. |
Como o Google sabe que os arquivos estão prontos para extração | Depois de terminar de gerar os feeds de dados, atualize o arquivo marker.txt
com o carimbo de data/hora mais recente. |
Depois de terminar de gerar os feeds de dados, atualize o arquivo marker.txt
com o carimbo de data/hora mais recente. |
Depois de terminar de gerar os feeds de dados, atualize o cabeçalho de resposta
last-modified do 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 seu bucket do Amazon S3. |
Número máximo de arquivos: 100.000. Você precisa ter menos de 100.000 arquivos no total no seu bucket do Google Cloud Storage. |
Número máximo de arquivos: 100.000. O número de caminhos de arquivo no arquivo XML do sitemap precisa ser menor que 100.000. |
Conectar seus feeds de dados para ingestão em lote
Depois de hospedar seus feeds, conecte-os ao projeto no Centro de ações. A configuração inicial dos feeds de produção é feita na página Tarefas de integração. Mais tarde, a configuração dos feeds de produção e sandbox pode ser atualizada na página Configuração > Feeds a qualquer momento por qualquer usuário do portal com uma função administrativa. O ambiente sandbox é usado para desenvolvimento e testes, enquanto os feeds de produção são mostrados aos usuários.
Se você hospedar seus feeds de dados com o Amazon S3
- No Centro de ações, acesse Configuração > Feeds.
-
Clique em Editar e preencha o formulário Atualizar feed:
- Método de envio do feed:defina como Amazon S3.
- Arquivo de marcador:informe o URL do arquivo
marker.txt
. - Arquivos de dados:forneça o URL do 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 transferência em lote está extraindo os arquivos do feed.
Se você hospedar seus feeds de dados com o Google Cloud Storage
- No Centro de ações, acesse Configuração > Feeds.
-
Clique em Editar e preencha o formulário Atualizar feed:
- Método de envio do feed:defina como Google Cloud Storage.
- Arquivo de marcador:informe o URL do arquivo
marker.txt
. - Arquivos de dados:forneça o URL do 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 objetos legados do Storage". Esse papel pode ser concedido à conta de serviço na página do IAM no console do Google Cloud.
- Depois de uma ou duas horas, verifique se a transferência em lote está extraindo os arquivos do feed.
Se você hospedar seus feeds de dados com HTTPS
- No Centro de ações, acesse Configuração > Feeds.
-
Clique em Editar e preencha o formulário Atualizar feed:
- Método de envio do feed:defina como HTTPS.
- Arquivo do sitemap:forneça o URL do arquivo
sitemap.xml
. - Nome de usuário:insira as credenciais do nome de usuário para acessar o servidor HTTPS.
- Senha:insira a senha para acessar o servidor HTTPS.
- Clique em Enviar.
- Depois de uma a duas horas, verifique se a transferência em lote está extraindo os arquivos do 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 de marcador | s3://foorestaurant-google-feed-sandbox/marker.txt |
gs://foorestaurant-google-feed-sandbox/marker.txt |
Não relevante |
Sitemaps para hospedagem HTTPS
Siga as diretrizes abaixo ao definir sitemaps:
- Os links no sitemap precisam apontar para os arquivos.
- Se o sitemap incluir referências a um provedor de nuvem em vez do seu próprio nome de domínio,
verifique se o início dos URLs, como
https://www.yourcloudprovider.com/your_id
, são estáveis e exclusivos do seu job em lote. - Não faça o upload de sitemaps parciais (como no caso de um upload parcial de dados). Isso faz com que o Google ingira apenas os arquivos no sitemap, o que faz com que os níveis de inventário caiam e pode resultar no bloqueio da ingestão do feed.
- Verifique se os caminhos para os arquivos referenciados no sitemap não mudaram. Por exemplo, não
tenha a referência do sitemap
https://www.yourcloudprovider.com/your_id/10000.json
hoje, mas depois faça referência ahttps://www.yourcloudprovider.com/your_id/20000.json
amanhã.
Exemplo de sitemap
Confira um exemplo de arquivo sitemap.xml
que serve 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 tipos.
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>
Atualizar seus feeds de dados
Depois que os feeds de dados são conectados, o Google verifica 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. Esperamos 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 a atualidade de um feed de dados.
Enquanto o feed em lote está sendo transferido,
- Novas entidades que não existem no seu inventário de pedidos de ponta a ponta e não têm erros seriam inseridas.
-
As entidades já presentes no inventário que não têm erros na
ingestão e têm um
dateModified
mais recente do que a entrada atual ou, no caso de não ter umdateModified
, o horário de início da ingestão do feed é mais recente do que a entrada atual, elas seriam atualizadas. Caso contrário, elas 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 serã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ó precisam ser atualizados depois que todos os arquivos de feed de dados forem gerados e atualizados. Limite os jobs em lote que atualizam seus feeds de dados para serem executados apenas
uma vez por dia. Como alternativa, deixe 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.