在 AdWords API 的开发中遇到这样的 Exception,总是让人感到很迷惑——Google 为什么把它的服务器内部错误直接给我们看呢?按理说应该告诉我们到底我们的输入数据错在哪里……
今天在调用 updateCriteria 的时候又遇见了这个错误,经过一番搜索之后,在这里找到了答案:
http://groups.google.co.uk/group/adwords-api/msg/3a311805b76e37f4
哦,原来是因为我没有加 “criterionType” 这个属性。Criterion 有两个 subclass —— Keyword 和 Website,没有 criterionType 的话,Google 就不知道我们要操作的是哪一种类型了。
关键是 adwords4r 的 examples 太少,没有覆盖 API 的全部,在调用 addCriteria 的时候,很自然地把例子里地代码复制过来改改就好了,但是 updateCriteria 的时候,就没有例子可供参考了。而 Google 给的文档中,并没有将 criterionType 列在 “Required fields” 之中(大概该文档倾向于给使用 Java client 的人看吧)。
另外,我觉得在添加关键词的时候指定 criterionType 是合理的,但是在 update 的时候,Google 根据我们提供的 id 和 adGroupId,已经完全可以确定该 criterion 的 type 了,为什么还要我们来指定呢?
无所谓,既然是这个导致的问题,我们就注意一下,加上这个属性吧……
Leave a Reply