通过数据 Feed,您可以在“Google 订餐”中展示您的餐馆、服务和菜单。
本文档介绍了如何托管沙盒和生产环境清单,以及如何使用批量提取来更新 Order with Google 中的商品目录。
数据 Feed 环境
有三种数据 Feed 环境可用于集成开发:
Feed 环境 | 说明 | 批量注入 |
---|---|---|
沙盒 | Feed 测试的测试环境。 | 必需 |
生产环境 | 要启动的广告资源的生产环境。 | 必需 |
托管数据 Feed
为了让 Order with Google 通过批量提取的方式处理您的沙盒环境数据和生产环境数据 Feed,您必须在 Google Cloud Storage、Amazon S3 或 HTTPS 中通过站点地图托管您的数据 Feed 文件。
我们建议您分别为沙盒环境和生产环境托管数据 Feed。使用此方法,您可以在将更改部署到生产环境之前,在沙盒 Feed 环境中进行开发和测试。
例如,如果您使用 Google Cloud Storage 作为托管选项,则您的路径如下:
- 沙盒 Feed:
gs://foorestaurant-google-feed-sandbox/
- 生产 Feed:
gs://foorestaurant-google-feed-prod/
如需托管您的广告资源,请执行以下操作:
- 生成您的数据 Feed 文件。
- 选择托管解决方案。
- 托管您的数据 Feed。
- 确保您的数据 Feed 文件会定期更新。生产数据 Feed 必须每天更新。
如需详细了解如何创建商品目录 Feed,请参阅 Restaurant
、Service
和 Menu
实体的文档以及创建数据 Feed 部分。
数据 Feed 文件指南
每个文件(可包含多个实体)不得超过 200 MB。顶级实体 Restaurant
、Service
和 Menu
及其子实体的总大小不得超过 4 MB。
选择托管解决方案
下表列出了托管数据 Feed 的选项,以及这些主机如何与 Order with Google 配合使用:
Amazon S3 | Google Cloud Storage | 含站点地图的 HTTPS | |
---|---|---|---|
凭据和访问权限 |
向 Google 提供以下信息:
S3 存储分区需要包含以下信息:
|
向 Google 提供生产和沙盒存储分区目录及 将 Google 顾问提供的服务帐号添加为 Google Cloud Storage 存储分区的读取者。 如需详细了解如何控制 Google Cloud Storage (GCS) 的访问权限,请参阅 Google Cloud Platform Console:设置存储分区权限。 GCS 存储分区需要包含以下信息:
|
向 Google 提供以下信息:
|
Google 如何知道需要提取哪些文件 | 存储分区中所有文件的目录列表。 | 存储分区中所有文件的目录列表。 | 站点地图中列出的文件的各个网址。 |
Google 如何确定文件已可提取 | 生成数据 Feed 后,请使用最新时间戳更新 marker.txt 文件。 |
生成数据 Feed 后,请使用最新时间戳更新 marker.txt 文件。 |
生成数据 Feed 后,使用最新时间戳更新 sitemap.xml 的响应标头 last-modified 。 |
文件限制 |
文件数量上限:10 万个。 Amazon S3 存储分区中的文件总数必须少于 100000。 |
文件数量上限:10 万个。 您的 Google Cloud Storage 存储分区中的文件总数必须少于 100000 个。 |
文件数量上限:10 万个。 站点地图 XML 文件中的文件路径数量必须小于 100000。 |
关联数据 Feed 以进行批量提取
托管 Feed 后,您需要通过合作伙伴门户将 Feed 关联到您的项目。生产 Feed 的初始配置在初始配置任务页面上完成。以后,任何具有管理角色的门户用户可以随时从配置 > Feed 页面更新生产 Feed 和沙盒 Feed 配置。沙盒环境用于开发和测试,而生产环境 Feed 则向用户显示。
如果您使用 Amazon S3 托管数据 Feed
- 在合作伙伴门户中,转到配置 > Feed。
-
点击修改,并填写更新 Feed 表单:
- Feed 传送方式:设置为 Amazon S3。
- Marker File(标记文件):提供
marker.txt
文件的网址。 - 数据文件:提供包含数据 Feed 的 S3 存储分区的网址。
- Access ID:输入有权从 S3 资源读取数据的 IAM 访问密钥 ID。
- 访问密钥:输入有权从 S3 资源读取数据的 IAM 私有访问密钥。
- 点击提交。
- 一到两个小时后,请检查批量提取是否提取了您的 Feed 文件。
如果您使用 Google Cloud Storage 托管数据 Feed
- 在合作伙伴门户中,转到配置 > Feed。
-
点击修改,并填写更新 Feed 表单:
- Feed 传送方式:设置为 Google Cloud Storage。
- Marker File(标记文件):提供
marker.txt
文件的网址。 - 数据文件:提供包含数据 Feed 的 GCS 存储分区的网址。
- 点击提交。
- 创建服务帐号以访问您的 GCS 存储分区。初始配置任务完成后,您可以在配置和 Feed 中找到帐号名称。此服务帐号需要“Storage Legacy Object Reader”角色。您可以在 Google Cloud Console 的 IAM 页面中将此角色授予服务帐号。
- 一到两个小时后,请检查批量提取是否提取了您的 Feed 文件。
如果您使用 HTTPS 托管数据 Feed
- 在合作伙伴门户中,转到配置 > Feed。
-
点击修改,并填写更新 Feed 表单:
- Feed 传送方式:设置为 HTTPS。
- 站点地图文件:提供
sitemap.xml
文件的网址。 - 用户名:输入用于访问 HTTPS 服务器的用户名凭据。
- Password:输入密码以访问 HTTPS 服务器。
- 点击提交。
- 一到两个小时后,请检查批量提取是否提取了您的 Feed 文件。
路径示例
下表包含各托管选项的示例路径:
Amazon S3 | Google Cloud Storage | 含站点地图的 HTTPS | |
---|---|---|---|
路径 | s3://foorestaurant-google-feed-sandbox/ |
gs://foorestaurant-google-feed-sandbox/ |
https://sandbox-foorestaurant.com/sitemap.xml |
标记文件 | s3://foorestaurant-google-feed-sandbox/marker.txt |
gs://foorestaurant-google-feed-sandbox/marker.txt |
不适用 |
HTTPS 托管的站点地图
定义站点地图时,请遵循以下准则:
- 站点地图中的链接必须指向这些文件本身。
- 如果您的站点地图引用了云服务提供商而不是您自己的域名,请确保网址开头部分(如
https://www.yourcloudprovider.com/your_id
)开始稳定且是您的批处理作业独有的网址。 - 请注意不要上传不完整的站点地图(例如在上传部分数据时)。这样做会导致 Google 仅提取站点地图中的文件,这会导致您的广告资源级别下降,还可能导致 Feed 提取被阻止。
- 确保站点地图中引用的文件的路径不会更改。例如,今天不要让站点地图引用
https://www.yourcloudprovider.com/your_id/10000.json
,而是明天引用https://www.yourcloudprovider.com/your_id/20000.json
。
站点地图示例
下面是一个投放数据 Feed 文件的 sitemap.xml
文件示例:
示例 1:按商家分组的实体(推荐)。
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>
示例 2:按类型分组的实体。
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>
更新数据 Feed
数据 Feed 建立关联后,Google 会每小时检查一次,但只有在修改 marker.txt
或 sitemap.xml
文件时,才会提取所有数据 Feed。我们希望您每天更新一次数据 Feed,以防出现过时的广告资源。
如需指定数据 Feed 已修改并准备好进行批量提取,请更新 marker.txt
文件的 last-modified
对象元数据字段(对于 GCP 和 S3)或 sitemap.xml
文件的 last-modified
响应标头。Google 使用这些值来确定数据 Feed 的新鲜度。
提取批量 Feed 时,
- 当前 OwG 商品目录中不存在且没有任何错误的新实体将插入。
-
如果实体已经存在于商品目录中,且提取时没有任何错误,或者存在比当前条目晚的
dateModified
,或者没有dateModified
,则 Feed 提取开始时间比当前条目更新时间晚,否则就会被标记为过时。 - 如果 Feed 中不再存在正在处理的批量 Feed,这些实体将被删除,但 Feed 中不存在文件级错误。
只有在生成和更新所有数据 Feed 文件后,才能更新时间戳或 last-modified
响应标头。将更新数据 Feed 的批处理作业限制为每天仅运行一次。或者,每个批量作业之间至少要有三个小时的间隔。如果您不采取这些措施,Google 可能会提取过时的文件。