本文档介绍了一些有关使用 CSS API 的最佳实践。本页面上提供的建议并非使用该 API 的强制要求,但可能有助于明确某些预期用途。
设置环境
如需设置开发环境,请按照快速入门文档中的步骤操作。
- 在 Google Cloud 控制台中生成用户和权限 JSON 文件
- 在 Google Cloud 控制台中启用 CSS API
- 向您的 CSS 账号(CSS 组或 CSS 网域)添加具有管理员权限的该用户
- 请确认您使用的是正确的 OAuth 范围:
https://www.googleapis.com/auth/content
客户端库现已纳入大多数编程语言的标准代码库。您可以在我们的客户端库页面上找到这些库的列表。
使用正确的 ID
使用正确的 ID 和正确的 API 端点:
- CSS API (
css.googleapis.com
):与 CSS 产品互动时(例如,accounts/{cssDomainId}/cssProductInputs:insert
)下。 - Merchant API (
merchantapi.googleapis.com
):使用 Merchant API 处理标准商家产品。
混淆这些概念会导致错误。如需了解详情,请参阅 CSS API 概览。
入门的好方法
我们建议您使用以下方法进行测试:
ListChildAccounts
ListChildAccounts 是一种只读调用,用于列出您的所有 CSS 网域(如果针对 CSS 组调用)或您的商家(如果针对 CSS 网域调用)。因此,这是一个测试一切是否设置正确的理想方法。
插入/列出/更新/删除商品
在确认 API 本身可以正常运行后,尝试添加商品。请务必使用您记得的 raw_provided_id
。
- 使用 InsertCssProductInput 插入测试商品。 如果您需要有关发送哪些属性的帮助,可以参考我们的示例代码。
- 使用 ListCssProducts 列出您的所有商品。 插入商品后,商品需要经过短暂的处理延迟才会显示出来,因此如果您没有看到商品,请在几秒钟后重试。
- 使用
cssproductinput.name
通过 UpdateCssProductInput 更新单个商品。您只需发送需要更新的属性。请参阅此处的示例代码。 - 使用 DeleteCssProductInput 删除测试商品。
您需要使用
raw_provided_id
。
使用 Async 提高性能
CSS API 专为并行调用而设计。您会发现,单个操作的性能可能较慢,但如果并行多次调用同一操作,性能会快得多。使用此功能的最佳方式是使用编程语言的异步功能。
以下是一些编程语言的示例:
- 对于 Java,请使用 insertCssProductInputCallable().futureCall()
- 对于 Python,请使用 CssProductInputsServiceAsyncClient
- 对于 C#,请使用 InsertCssProductInputAsync
找到并使用编程语言的异步功能,同时插入多个商品。您无需担心我们的系统过载,因为我们有配额限制。
如需了解详情,请参阅我们的性能页面。
验证载荷
为避免常见错误,请验证您的 JSON 载荷是否格式正确:
- 查阅官方文档:请务必参阅最新的 CSS API 参考文档,了解字段定义、枚举、数据类型和载荷结构。
- 查看载荷示例:将您的载荷与提供的代码示例进行比较,以找出差异。
- 数据类型:请确保您使用的是文档中指定的正确数据类型(例如字符串、对象、数组)。
- 逐步测试:从最小的有效载荷开始,确认基本连接,然后逐步添加更多属性。
更新商品
商品上传后,除非更新、删除或过期,否则会一直保留在我们的系统中。
- 您可以再次发送
InsertCssProductInput
请求,并使用最初使用的相同raw_provided_id
来更新完整商品。目前,您需要发送完整的商品数据,即使只有部分属性(可能只有价格/供应情况)发生了变化也是如此。 - 您可以使用 PATCH 方法
UpdateCssProductInput
更新商品的部分内容,指定商品名称以及包含您要更新的商品数据的 JSON 正文。与需要提供所有适用字段的InsertCssProductInput
不同,UpdateCssProductInput
仅要求您指定要更改的字段。 - 您可以通过使用相同的
raw_provided_id
调用DeleteCssProductInput
来删除商品。 - 产品会在上次更新后大约一个月自动过期。
持续运行模式
连续操作模式可能如下所示:
- 使用您自己的内部 ID 作为
raw_provided_id
。 - 定期(例如每周)重新上传所有商品。这样可确保有效商品不会过期。
- 在从商家处获得更改后的数据后,立即更新各个商品。
- 如果您无法立即对更改做出反应,请经常(可能每小时)查找所有更改后的商品,然后仅重新上传这些商品。
- 对于不再提供的商品,您可以使用删除调用,也可以将可用的出价数量设置为 0。
- 请勿频繁向我们发送未更改的商品。这些调用会计入您的 API 配额。每周刷新一次就足够了。
主推优惠选择
主推优惠不一定需要是您网站上的顶级优惠或最便宜的优惠,但必须以醒目的方式呈现。如果您的热门优惠经常变化,您可以使用此功能:您可以选择另一个更稳定的优惠。
不时重新检查此文档
我们收到了有关如何改进此 API 的反馈,目前正在努力实现其中一些改进。当我们推出可简化 CSS API 使用的新功能时,会更新本页面。