Google Adwords API 异常:调用公共抽象 SimpleMutateJob 时有多个 SoapHeader
Posted
技术标签:
【中文标题】Google Adwords API 异常:调用公共抽象 SimpleMutateJob 时有多个 SoapHeader【英文标题】:Google Adwords API Exception: More than one SoapHeader while invoking public abstract SimpleMutateJob 【发布时间】:2015-05-12 15:10:53 【问题描述】:我正在通过他们提供的 Java 客户端使用 Google Adwords API v201502。
我在向 google 进行 mutate 调用时收到此错误。
我知道AdwordsSession is not thread 是安全的,但我每个线程都有一个adwords 会话对象。在我的例子中,每个线程都有自己的 AdwordsSession 对象,但两个 AdwordsSession 可能具有相同的 clientCustomerId。
我尝试在一个帐户中同时修改同一广告系列中的多个广告组,但出现以下错误。
我的目标是同时修改多个广告组的每次点击费用出价(每个广告组更改一次每次点击费用)。
如何使用 AdwordsSession 实现并行化?
<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>More than one SoapHeader while invoking public abstract com.google.ads.api.services.job.mutate.v201502.jaxbgen.SimpleMutateJob com.google.ads.api.services.job.mutate.v201502.jaxbgen.MutateJobServiceInterface.mutate(java.util.List,com.google.ads.api.services.job.mutate.v201502.jaxbgen.BulkMutateJobPolicy) throws com.google.ads.api.services.job.mutate.v201502.jaxbgen.ApiException_Exception with params </faultstring>
</soap:Fault>
</soap:Body>
【问题讨论】:
【参考方案1】:我也在Adwords API Forum 中发布了这个问题并得到了答案。即 MutateJobServiceInterface 也不是线程安全的。因此,我为一个线程创建了一个 Adwords Session 对象和一个 MutateJobServiceInterface 对象,现在我可以并行处理对 Google Adwords 的多个 mutate API 调用。
【讨论】:
以上是关于Google Adwords API 异常:调用公共抽象 SimpleMutateJob 时有多个 SoapHeader的主要内容,如果未能解决你的问题,请参考以下文章
每天可以对 Google AdWords 和 Analytics 进行多少 API 调用?
未捕获的异常 InvalidArgumentException,消息配置文件未按指定找到:adsapi_php.ini - Google Adwords API
Google AdWords API 授权提升 Ads Common::Errors::AuthError