Hi,

I can see two problems with your request.  The first is that the
<operations> element and all sub elements needs to be in the AdWords
cm namespace.  The xsi:types are all in this namespace, but the body
elements themselves are not in any namespace, which is causing the API
server to not find the elements and return an error about an empty
list.

Looking forward, there shouldn't be a BiddableAdGroupCriterion
element.  Instead the operand should have an xsi:type of
BiddableAdGroupCriterion.

Best,
- Eric Koleda, AdWords API Team

On Feb 9, 12:59 pm, TJG <tgala...@didit.com> wrote:
> I am responsible for converting my company's v13 interaction to the
> new v200909 API.
> All seemed to be going well as I started but I seem to have hit a
> wall.
> For the moment, I am only attempting to access the sandbox API and
> have not attempted to connect to the production WSDLs.
>
> I should note that this code is in Perl, and we are not using the
> client library.
>
> The constructed SOAP request is:
> <?xml version="1.0" encoding="UTF-8"?>
> <soap:Envelope
> xmlns:namesp1="https://adwords.google.com/api/adwords/cm/v200909";
> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/";
> soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
>
> <soap:Header>
>     <namesp4:RequestHeader soapenc:arrayType="xsd:string[5]"
> xsi:type="soapenc:Array" xmlns:namesp4="https://adwords.google.com/api/
> adwords/cm/v200909">
>         <namesp5:applicationToken xsi:type="xsd:string"
> xmlns:namesp5="https://adwords.google.com/api/adwords/cm/v200909";>not-
> used-in-sandbox</namesp5:applicationToken>
>         <namesp6:authToken xmlns:namesp6="https://adwords.google.com/
> api/adwords/cm/v200909" xsi:type="xsd:string">auth-token</
> namesp6:authToken>
>         <namesp7:clientEmail xsi:type="xsd:string"
> xmlns:namesp7="https://adwords.google.com/api/adwords/cm/
> v200909">valid-email/namesp7:clientEmail>
>         <namesp8:developerToken xmlns:namesp8="https://
> adwords.google.com/api/adwords/cm/v200909"
> xsi:type="xsd:string">developer-token</namesp8:developerToken>
>         <namesp9:useragent xmlns:namesp9="https://adwords.google.com/
> api/adwords/cm/v200909" xsi:type="xsd:string">Our Company</
> namesp9:useragent>
>     </namesp4:RequestHeader>
> </soap:Header>
>
> <soap:Body>
>     <namesp1:mutate xmlns:namesp1="https://adwords.google.com/api/
> adwords/cm/v200909">
>         <operations xmlns:impl="https://adwords.google.com/api/adwords/
> cm/v200909" soapenc:arrayType="xsd:anyType[2]"
> xsi:type="impl:AdGroupCriterionOperation">
>             <operator xmlns:impl="https://adwords.google.com/api/
> adwords/cm/v200909" xsi:type="impl:Operator">SET</operator>
>             <operand xmlns:impl="https://adwords.google.com/api/
> adwords/cm/v200909"
> soapenc:arrayType="impl:BiddableAdGroupCriterion[1]"
> xsi:type="impl:AdGroupCriterion">
>                 <BiddableAdGroupCriterion xmlns:impl="https://
> adwords.google.com/api/adwords/cm/v200909"
> soapenc:arrayType="xsd:anyType[3]"
> xsi:type="impl:BiddableAdGroupCriterion">
>                     <adGroupId xsi:type="xsd:long">3000128164</
> adGroupId>
>                     <criterion xmlns:impl="https://adwords.google.com/
> api/adwords/cm/v200909" soapenc:arrayType="xsd:long[1]"
> xsi:type="impl:Criterion">
>                         <id xsi:type="xsd:long">11255383</id>
>                     </criterion>
>                     <bids xmlns:impl="https://adwords.google.com/api/
> adwords/cm/v200909" soapenc:arrayType="xsd:anyType[2]"
> xsi:type="impl:ManualCPCAdGroupCriterionBids">
>                         <maxCpc xmlns:impl="https://adwords.google.com/
> api/adwords/cm/v200909" soapenc:arrayType="impl:Money[1]"
> xsi:type="impl:Bid">
>                             <amount xmlns:impl="https://
> adwords.google.com/api/adwords/cm/v200909"
> soapenc:arrayType="xsd:long[1]" xsi:type="impl:Money">
>                                 <microAmount
> xsi:type="xsd:long">4500000</microAmount>
>                             </amount>
>                         </maxCpc>
>                         <bidSource xmlns:impl="https://
> adwords.google.com/api/adwords/cm/v200909"
> xsi:type="impl:BidSource">CRITERION</bidSource>
>                     </bids>
>                 </BiddableAdGroupCriterion>
>             </operand>
>         </operations>
>     </namesp1:mutate>
> </soap:Body>
> </soap:Envelope>
>
> And it receives the rather cryptic response:
> <soap:Body>
>     <soap:Fault>
>         <faultcode>soap:Server</faultcode>
>         <faultstring>[NotEmptyError.EMPTY_LIST @ operations]</
> faultstring>
>             <detail>
>                 <ApiExceptionFault xmlns="https://adwords.google.com/
> api/adwords/cm/v200909">
>                     <message>[NotEmptyError.EMPTY_LIST @ operations]</
> message>
>                 <ApplicationException.Type>ApiException</
> ApplicationException.Type>
>                 <errors xmlns:xsi="http://www.w3.org/2001/XMLSchema-
> instance" xsi:type="NotEmptyError">
>                     <fieldPath>operations</fieldPath>
>                     <trigger></trigger>
>                     <ApiError.Type>NotEmptyError</ApiError.Type>
>                     <reason>EMPTY_LIST</reason>
>                 </errors>
>             </ApiExceptionFault>
>         </detail>
>     </soap:Fault>
> </soap:Body>
>
> I am not one to hit the forums the minute it doesn't work but I am now
> on my third day trying to figure out where I am going wrong.  I tried
> running the provided samples (even though they were version 200906)
> for an addition of a keyword and received the exact same response
> I can construct the SOAP however is necessary (that's the easy part
> for me) so I just need help changing the above call to include the
> proper pieces; if someone gave me a properly formatted, and thus
> potentially working, XML for this call I can handle all the rest
> myself.
>
> The assistance of those more familiar with this than I would be of
> great help.

-- 
You received this message because you are subscribed to the Google Groups 
"AdWords API Forum" group.
To post to this group, send email to adwords-...@googlegroups.com.
To unsubscribe from this group, send email to 
adwords-api+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/adwords-api?hl=en.

Reply via email to