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.