Tip:
Highlight text to annotate it
X
DANNY HERMES:嗯
大家好
欢迎参加本次在线讲座
了解如何保持产品数据的及时性
我是Danny Hermes
Google商业小组成员
负责与开发人员沟通
我们致力于让大家了解我们的API 并提供帮助和反馈
以及举办类似于本次在线讲座的活动
今天和我一起的还有Ali Afshar Amanda Surya和Jasmine [? Kahn ?]
他们将加入聊天帮助您解决遇到的各种问题
欢迎大家踊跃提问
这里有一个用来举手的选项
但是请不要举手,只需提出您的问题即可
他们将尽其所能为您解答
那么,我们马上开始吧
今天,我们想就有关内容API的
一些非常重要的问题进行解答
首先,什么是内容API
其次,什么是数据及时性策略
如何将其应用于API
为什么您需要这个API
我们会比较API与数据Feed之间的
相同点和不同点
然后还会介绍实现方法
如何使用此API
在整个讲座过程中 如果您对任何幻灯片有疑问
只需在聊天程序中输入您的问题
我们将努力给出让您满意的答案
首先,什么是用于购物的内容API
在谈论它之前
我们需要先说说Google购物
产品最终将位于Google购物中 整个流程如下
产品首先上传到 Google Merchant Center
同时产品数据也将保存在其中
然后再转到桌面上的
Google购物中
如果使用Google移动 该产品将转到Google Shopper
然后再进入其他几个频道 如Google Affiliate Network
以及Google Commerce Search
例如,假如您想销售
三部数码相机
则先要将它们上传到 Google Merchant Center
如果随后有人访问Google
并搜索数码相机
他们将在此页面中看到您上传的三部数码相机
它们用蓝色框突出显示
因此正如我之前说过的 要让某件产品出现在Google购物中
需要先将其上传到 Google Merchant Center中
实现方法主要有两种
一种是Google产品Feed 另一种就是我们今天在此谈论的
用于购物的内容API
那么,什么是用于购物的内容API
这个问题之前我就说过一定会回答的
它是一个基于 HTTP、REST和GData的API
那么这到底是什么呢
您请求自己的所有产品数据
然后获取、发布、提交或删除这些数据
这些便是REST API的四大操作
当您将数据发送到我们位于
googleapis.com的资源中后
我们将会作出一定响应
下面简单解释一下API
API是以编程方式与某个对象进行交互的工具
此类对象如Google服务器
此处为Google Merchant Center
但它仅仅是两个程序之间
相互通信的一种方式
因此与Feed不同 数据Feed只是一个文件
其中包含有关您产品的所有信息
它非常类似于通过内容API发送的请求
但它只是一个.txt或XML平面文件
这些文件中包含的属性和实体
标出了您的特定产品数据
这些.txt或XML文件将
直接上传到Merchant Center
因此,用于购物的内容API 可让您的开发人员以编程方式
将该数据上传到
所有Google购物站点
如果您拥有一个市场
并管理着多个经销商或子商店
通过该API可管理多个子帐户
还能设置数据Feed
因此如果您想混用内容API和数据Feed
以及在这两者之间进行匹配
则可以通过API管理这些Feed
在上传数据后,您可以通过
Google Merchant Center信息中心
查看效果和配置更多内容
该信息中心包括与您当前使用的 Feed相关的数据
您目前已上传的产品、数据质量
以及其他效果统计信息
另外,您还可以使用此API跟踪点击情况
要了解有关幻灯片中该链接的详情
我不打算阐述所有内容
但您需要指定开始日期、结束日期
以及特定产品,即可获取
该日期范围内的点击跟踪情况
这是此API中的一项附加功能
接下来,我们将介绍及时性策略
当有人访问Google搜索并查找某件产品时
如果该产品标价102美元 如此处所示
则用户预计能以102美元
买到这件产品
如果您的底价与总价不同
则用户希望知道两者的差价
以及最终需要多少钱才能买到
是吧
因此,对于Google购物而言
我们关心三种人群
第一种是用户
我们想为他们带来最好的体验
希望他们能够找到所需产品
还希望他们能够获得
这些产品的准确信息
第二种是零售商和商家
我们关心销售产品的商家是因为
我们希望他们在通过Google购物 提供自己的产品时
也能获得良好的用户体验
第三种就是我们自己
我们只是希望让三方都满意
出于上述目的 Google数据及时性策略中提到
当用户访问时,等等等等
这里我就不列出全部内容了
如果您想要了解该策略 在幻灯片的底部有一个短链接
goo.gl/C5P8X
其中对有关数据及时性的内容进行了概述
但请记住,我们首先关心的是用户
然后是你们,最后才是我们自己
那么这是如何体现在内容API中的呢
一个典型的例子就是 当您的产品价格和数量经常变化时
您希望能在Google购物中更新产品
以反映这些更改
如果您使用的是Feed
则只能在某一天内进行多次更新
这样多少会限制您更新
价格和数量的频率
如果您使用用于购物的内容API
便能够在价格发生更改立即操作
并且所有更改都将马上生效
此外,如果您的产品清单很长很长
那么每天对同一个很大的Feed
进行日常维护和上传会非常麻烦
因此,最好的办法也许是先上传一份大的清单
然后通过API上传小的更新
那么为什么内容API正适合您呢
当然最后一张幻灯片给出了答案
下面我们从一个较高的层面来 概括一下两者的差异
正如我前面所说
产品数据Feed适用于小的静态产品清单
内容少,并且不会频繁更改
当然,因为它只是.txt或逗号分隔值文件
所以实现起来并不费劲
而另一方面 用于购物的内容API则适用于
大的、频繁更改的清单
但使用时需要进行一些技术开发
因此内容API最大的优点之一就在于
它的实时性
能够非常快速地插入新产品
当您添加新产品时
只需数秒即可完成
无论该产品是否已录入
您都会立即从Google收到响应
与此类似,如果您要更新产品的 价格和数量
也无需额外的处理
所以当某个产品上传到Merchant Center之后
需要进行一些处理 以确保在向用户提供该产品之前
其质量符合要求,对吧
如果您已经上传了某个产品
只是想更新其价格或数量 那么可立即实现
系统会进入所谓的“快速通道”
快速通道是内容API的一大特色
可用于更改价格和数量
此外,内容API是自动执行的
所以您从API得到的反馈格式
与已发送的请求完全相同
因为产品是逐一列出的,所以
对您要插入、更新或删除的每个产品
您都将获得一条响应
我之前说过,响应是即时的
因此您一发出请求,就会从Google
收到一条响应
通知您是否更新成功
这点与Feed不同 Feed是通过电子邮件发送反馈
并且通常只是一份摘要。而不是格式类似于
逐一列出各产品的响应
下面对实现方法的相同点和不同点进行比较
之前说过,对于产品Feed
只需使用非常简单的逗号分隔值文件
或.txt文件,甚至可以是XML文件
无需开发人员即可完成
尤其当内容规模比较小的时候
而使用内容API则要求至少应具备
有关XML的实用知识
并且还需要掌握一定的
开发技能
当然了,在我们出于改善您的用户体验
并为了改进我们呈现给Google购物用户的数据
而对规格进行更新并更改有关API的某些内容时
需要对您发送的内容进行
一些维护
因此就这点来说,内容API具有
Feed所不具备的一些很棒的附加功能
第一,就是我之前提到过的
如果您下面还有经销商 或者您管理着若干种类齐全的商店
您就可以通过内容API管理多个子帐户
如果您想通过一个数据Feed 上传整个清单
然后使用内容API进行小的更改
则您也可以对数据Feed进行管理
即您可以通过内容API来管理
这个特殊的数据Feed
另一个很棒的功能是 您可以将多个请求(比如添加新产品
更新现有产品、删除某些产品)
全部放在一个大的批处理请求中
我将在“实现”部分详述相关内容
那么您如何使用该请求呢
具体又如何实现呢
这里是一段XML代码
它是一个请求 其中包含要发送给Google的
产品的相关信息
请看这里有一个标题,上面还有一些内容
这些内容是随意填写的
只是为了完成整个过程
其中包含有关您的产品、价格和条件的内容
这些都是用户在搜索产品时
所关注的重要属性
现在来讲一下XML吧
XML是一种标记语言
与HTML很类似
它是结构化语言
携带着计算机能够读懂的数据
所以最后一张幻灯片有些复杂
有点难以理解
因为它是专门供计算机阅读的
并不是为了供人阅读
如此处所示
这里是XML的一段示例
我们来定义一条备注
比如说,它是Ali发送给我的
Ali将主题设为“XML”
正文则是“XML真妙!”
它其实就是计算机所能理解的
一些结构数据
我们有了某个产品的结构化数据之后
便可进行发布
“发布”是API中的四大操作之一
您要“发布”到某个特定链接中
也要在经过身份验证后才“发布”
因此需要授权令牌 我们的文档中对此有相关说明
产品发送到Google之后
一旦成功,我们便会给您响应
几点注意事项
顶部有一个HTTP代码为201
表示操作成功
还请注意,底部有一个位置
专门用于放置您已插入的特定产品
这非常重要
请务必记住
该位置是您已插入的产品的
唯一网址
在该网址中有一个根
content.googleapis.com /content/v1
有您的ID
还有一个路径和一个投影
这些也是为API随意填写的一些内容
最后一个是极为重要的
那就是产品ID
您刚插入的特定产品的产品ID
是独一无二的
我们继续在您将产品插入到清单中后
您可以使用该链接返回
以及通过该链接更新和删除此产品
因此对于这个201的响应
当您给出位置时也会有响应
如前面所述,来自Google的响应
具有与请求完全相同的格式
该响应便是一个例子
有很多相同的部分 比如标题、内容和ID
但也有“已发布”和“已编辑”之类的选项
这些都是来自Google的内容 涉及该产品的上传时间
上次编辑时间、发送时间
以及到期时间
默认为30天
在您实际着手实现之前
我们其实已经创建了一个
交互式在线演示
也就是说,只要您通过Google搜索 “用于购物的内容API”
就可以找到它
该演示实际上可让您完成所有操作
在易于使用的在线界面中 您可以通过API插入新产品
更新现有产品、删除产品
管理子帐户,以及执行所有
能够执行的操作
当您发送这些请求时
系统会返回您原本应收到的响应
包括HTTP状态响应及其内容
您通过API也会得到完全一样的内容
完成此操作后,需要开始实现
我们有四个开放源代码的客户端库
分别用.net、Java、python和php.编写
这些库提取了一些ID链接之类的难点
其中某些部分不易记住
当然了
也并非完全必要进行实现
将这些内容提取出来并通过这些客户端库
使用开发人员熟悉的语言来发送请求
对您自己进行身份验证
以及执行所有能够通过该API完成的操作
如果您想要了解有关这些客户端库的详情
请参阅此幻灯片底部的链接
提一下,我自己和其他一些开发人员 例如本次通话中的Ali
为这些库倾注了不少心血
并且我们还将继续贡献自己的力量
虽然这些库很大程度上 是由Google工程师提供支持
但由于它们是开放源代码的
因此您始终可以看到源代码
也始终可以看到更新的内容
如有需要,您甚至可以提交更新
我看过了这里的嘉宾名单
其中有些嘉宾为这些库
提交过错误修复程序
希望能够为大家带来启发
如上所述,内容API的一个强大
附加功能就是您可以发送批处理请求
请注意看旁边这幅图片
产品和操作捆绑在同一个发布请求中
这就是精妙之处
您可以将多个产品和多个操作放在一个请求中
因此,如果您想要在删除某些产品的 同时更新其他产品
这完全没有任何问题
如果您想在更改某个产品价格的同时
插入其他新产品
也可以通过批处理操作来实现
现在批处理操作有所限制
每个请求不能超过1MB
但您可以通过gzip、zip或其他
任意方式将其压缩以减少大小
您得到的响应就类似于常规插入
或更新操作
再次强调,响应的格式与发送请求的格式相同
系统会针对每个产品分别给出错误或成功
的结果
这样做的额外优点就是 不需要对100个产品发送100个请求
您只需发送一个请求
且可以节省自己的请求量
在介绍内容API的下一项绝佳的
实现功能之前,我想先说明一些
背景情况
在我们添加此功能时
当时正在讨论是否更改Feed规格
在座的许多人可能已经知道这件事了
因此我们在9月22日更改了Feed规格
以便通过Google购物为用户提供更好的
体验
通过内容API发送的特定内容
在9月22日之前有效
但在9月22日之后就会失效
所以当时我们提前向大家发出了警告
警告标记其实就是一种简单的标记
您可以将它附加到在其中 发送请求以执行插入、更新
或任何会改变状态的操作 (即任何会更改清单的操作)
的网址末尾
在您添加该标记时
请注意它位于此链接末尾以粗体显示
当您在请求末尾添加该标记时
响应内容不仅会包含成功或失败
还将包含有关特定内容可能失败的
警告
而且在我们建议使用某个属性但它
并非必需的情况下,也将提供有关
该建议的警告信息
与警告标记类似
我们还有预演标记
预演就像一个沙盘
从字面上理解就是演习、演练
它可让您发送一个请求 似乎是要更新您的数据
并以某种方式修改您的数据
但实际上不需要插入该数据
不需要真正修改任何内容
因此您得到的响应与发送实际请求时
完全相同
但没有任何实际更改
这比交互式在线演示还要更先进
但两者却是类似的
预演标记为您提供了一种方法
可以在对Merchant Center中的
产品数据产生实际效果之前 测试实现方法
下面介绍另一个出色的功能 API的一种普遍妙用
但在这里只针对商家和零售商
如果您的公司有企业资源计划系统
即ERP系统 那么每次添加、插入或更改产品时
实际上都能以编程方式
在您的ERP上响应这些操作
并调用用于购物的内容API
以在Google Merchant Center中 对您的清单作类似更改
这样您便可以让自己的清单系统
与我们的清单系统时刻保持最新同步
我希望大家喜欢今天我所讲的内容
如果您有兴趣进一步了解相关内容
可以访问我们的互动在线社区
它是一个Google网上论坛
您只需在Google网上论坛中搜索
用于购物的内容API 就会看到该社区
这里还有一个指向它的链接
我本人经常光顾该论坛
我们的许多工程师也活跃于该论坛中
各种问题在此论坛中都能找到相关答案
所以如果在您之前已有人提出 相同的问题
您就可以搜索并找出答案
并更新自己的实现方法以作出响应
如果您想获得更贴心的支持
请联系您的帐户管理员
我们也有其他一些方法
最后,您可以在 code.google.com/ api/shopping/content
上找到一些文档
这些文档是我本人维护的
我会认真更新并尽可能及时通知大家
另外,您不需要记住这个网址
只要您访问Google 然后搜索“用于购物的内容API”
第一个链接便是
它在搜索结果中排在第一位
最后,如果您想得到“问与答” 之外的反馈
可以在一个星期后,也就是11月3日 抽出一个小时的工作时间
参加我的Google+视频群聊
我还可以在讲座后为大家提供更多
信息
另外,如果您想提供与本次在线 讲座直接相关的反馈
我们提供了一个链接
您只需点击这个短链接 goo.gl/7PjFA
即可通过该链接发送
有关今天在线讲座的反馈
如果还有其他问题,请尽管提出