It seems I have not made as much progress as I had hoped.
I am now receiving a CONCRETE_TYPE_REQUIRED error upon submitting a
mutate.
The last run of my code generated the following request:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope>
<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">token</
namesp6:authToken><namesp7:clientEmail xsi:type="xsd:string"
xmlns:namesp7="https://adwords.google.com/api/adwords/cm/
v200909">[email protected]</namesp7:clientEmail>
<namesp8:developerToken xmlns:namesp8="https://
adwords.google.com/api/adwords/cm/v200909"
xsi:type="xsd:string">dev_token</namesp8:developerToken>
<namesp9:useragent xmlns:namesp9="https://adwords.google.com/
api/adwords/cm/v200909" xsi:type="xsd:string">Company</
namesp9:useragent>
</namesp4:RequestHeader>
</soap:Header>
<soap:Body>
<namesp1:mutate xmlns:namesp1="https://adwords.google.com/api/
adwords/cm/v200909">
<namesp11:operations soapenc:arrayType="xsd:anyType[2]"
xmlns:namesp11="https://adwords.google.com/api/adwords/cm/v200909"
xsi:type="namesp19:AdGroupCriterionOperation">
<namesp12:operator xmlns:namesp12="https://
adwords.google.com/api/adwords/cm/v200909" xsi:type="xsd:string">SET</
namesp12:operator>
<namesp13:operand soapenc:arrayType="xsd:anyType[3]"
xsi:type="namesp19:BiddableAdGroupCriterion" xmlns:namesp13="https://
adwords.google.com/api/adwords/cm/v200909">
<namesp14:adGroupId xmlns:namesp14="https://
adwords.google.com/api/adwords/cm/v200909"
xsi:type="xsd:long">3000128164</namesp14:adGroupId>
<namesp15:criterion soapenc:arrayType="xsd:anyType[3]"
xsi:type="namesp19:Keyword" xmlns:namesp15="https://adwords.google.com/
api/adwords/cm/v200909">
<namesp16:id xmlns:namesp16="https://
adwords.google.com/api/adwords/cm/v200909"
xsi:type="xsd:long">11255383</namesp16:id>
<namesp17:text xsi:type="xsd:string"
xmlns:namesp17="https://adwords.google.com/api/adwords/cm/
v200909">socks</namesp17:text>
<namesp18:matchType xmlns:namesp18="https://
adwords.google.com/api/adwords/cm/v200909"
xsi:type="xsd:string">EXACT</namesp18:matchType>
</namesp15:criterion>
<namesp20:bids soapenc:arrayType="namesp19:Bid[1]"
xsi:type="namesp19:ManualCPCAdGroupCriterionBids"
xmlns:namesp20="https://adwords.google.com/api/adwords/cm/v200909">
<namesp21:maxCpc
soapenc:arrayType="namesp19:Money[1]" xsi:type="namesp19:Bid"
xmlns:namesp21="https://adwords.google.com/api/adwords/cm/v200909">
<namesp22:amount
soapenc:arrayType="xsd:long[1]" xsi:type="namesp19:Money"
xmlns:namesp22="https://adwords.google.com/api/adwords/cm/v200909">
<namesp23:microAmount xsi:type="xsd:long"
xmlns:namesp23="https://adwords.google.com/api/adwords/cm/
v200909">4500000</namesp23:microAmount>
</namesp22:amount>
</namesp21:maxCpc>
</namesp20:bids>
</namesp13:operand>
</namesp11:operations>
</namesp1:mutate>
</soap:Body>
</soap:Envelope>
The ultimate failure response is:
<errors xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="AdGroupCriterionError">
<fieldPath>operations[0].operand</fieldPath>
<trigger></trigger>
<ApiError.Type>AdGroupCriterionError</ApiError.Type>
<reason>CONCRETE_TYPE_REQUIRED</reason>
</errors>
I assume that the error surrounds the criterion type (in this case
Keyword), but whether I put in the Keyword, Placement, or abstract
type (desperation) I get the same error.
Thinking it might have been the type of the operand itself
(BiddableAdGroupCriterion) I tried various permutations and still
received the same error.
Any help in amending my request would be a great boon to my efforts.
If any additional information is required for clarification I would be
glad to provide it.
On Feb 11, 12:05 pm, TJG <[email protected]> wrote:
> Thank you very much for that information.
> It has certainly set me on the right path and I should be able to make
> much more progress now.
>
> On Feb 10, 11:30 am, AdWords API Advisor
>
>
>
> <[email protected]> wrote:
> > 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 <[email protected]> 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:mutatexmlns: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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en.