Google Adwords API 异常:调用 public 抽象 SimpleMutateJob 时有多个 SoapHeader

Google Adwords API Exception: More than one SoapHeader while invoking public abstract SimpleMutateJob

我正在通过他们提供的 Java 客户端使用 Google Adwords API v201502。

我在对 google 进行 mutate 调用时遇到了这个错误。

我知道 AdwordsSession is not thread 安全,但我每个线程都有一个 adwords 会话对象。在我的例子中,每个线程都有自己的 AdwordsSession 对象,但两个 AdwordsSession 可能具有相同的 clientCustomerId。

我试图同时修改一个帐户中同一广告系列中的多个广告组,但出现以下错误。

我的目标是同时修改多个广告组的每次点击费用出价(每个广告组更改 1 次每次点击费用)。

如何使用 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>

我也在 Adwords API Forum 中发布了这个问题并得到了答案。即 MutateJobServiceInterface 也不是线程安全的。因此,我为一个线程创建了一个 Adwords Session 对象和一个 MutateJobServiceInterface 对象,现在我可以并行执行多个 mutate API 调用到 Google Adwords。