使用Google Adwords API时获取解组错误

时间:2013-10-16 13:48:26

标签: api soap google-adwords

我正在使用OAuth2作为身份验证机制,以使用SOAP请求获取有关“添加预算广告系列”的响应。在使用cUrl发送soap请求的最开始,我面临以下错误:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
 <soap:Body>
  <soap:Fault>
   <faultcode>soap:Client</faultcode>
    <faultstring>
         Unmarshalling Error: cvc-complex-type.2.4.a: Invalid content was found starting with element 'biddingStrategy'. One of '{"https://adwords.google.com/api/adwords/cm/v201309":conversionOptimizerEligibility, "https://adwords.google.com/api/adwords/cm/v201309":adServingOptimizationStatus, "https://adwords.google.com/api/adwords/cm/v201309":frequencyCap, "https://adwords.google.com/api/adwords/cm/v201309":settings, "https://adwords.google.com/api/adwords/cm/v201309":networkSetting, "https://adwords.google.com/api/adwords/cm/v201309":biddingStrategyConfiguration, "https://adwords.google.com/api/adwords/cm/v201309":forwardCompatibilityMap}' is expected. 
   </faultstring>
  </soap:Fault>
 </soap:Body>
</soap:Envelope>

我使用cUrl发送以下XML / SOAP请求,这是与AdWords教程(https://developers.google.com/adwords/api/docs/guides/soap)中给出的类似代码。

<?xml version="1.0" encoding="UTF-8"?>
  <soap:Envelope
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns="https://adwords.google.com/api/adwords/cm/v201309">
    <soap:Header>
      <RequestHeader>
        <authToken>MYAUTHTOKEN</authToken>
        <userAgent>curl-tutorial</userAgent>
        <developerToken>MYDEVTOKEN</developerToken>
        <clientCustomerId>MYCUSTOMERID</clientCustomerId>
      </RequestHeader>
    </soap:Header>
    <soap:Body>
      <mutate>
        <operations>
          <operator>ADD</operator>
          <operand>
            <name>Test File</name>
            <budget>
              <period>DAILY</period>
              <amount>
                <microAmount>1000000000</microAmount>
              </amount>
              <deliveryMethod>STANDARD</deliveryMethod>
            </budget>
            <biddingStrategy
              xmlns:cm="https://adwords.google.com/api/adwords/cm/v201309"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:type="cm:ManualCPC"/>
            <settings
              xmlns:cm="https://adwords.google.com/api/adwords/cm/v201309"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:type="cm:KeywordMatchSetting">
              <cm:optIn>false</cm:optIn>
            </settings>
          </operand>
        </operations>
      </mutate>
    </soap:Body>
  </soap:Envelope>

我在cUrl请求中使用了上述XML / SOAP请求:

curl --header "Content-Type: application/soap+xml" 
 --data @test.xml  https://adwords.google.com/api/adwords/cm/v201309/CampaignService

我在互联网上搜索了我遇到的同样问题,但没有找到解决方案的地方。如果我做错了,请告诉我,或者告诉我是否还有其他方法。

1 个答案:

答案 0 :(得分:1)

广告系列没有biddingStrategies。他们有biddingStrategyConfigurations。看一下参考文献:https://developers.google.com/adwords/api/docs/reference/v201309/CampaignService.Campaign