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

Adwords API 异常抛出

从 Google Adwords API 中提取广告系列列表?

google adwords api 与 google-adwords-api gem