Oh, interesting... have you tried it with partialFailure=true for
these requests?


On Jan 16, 6:45 pm, Peter <[email protected]> wrote:
> Hey mm,
>
> Yeah this was working before. I did afew follow up tests and it looks
> like validateOnly doesn't work period. I tested both add, delete and
> update keyword operations and after the validateOnly call had been
> completed the changes were visible from adwords website. I've included
> the SOAP log below just for reference purposes for the following 3
> calls.
>
> Remove Operation (first with validateOnly then without validate, it
> appears executing a remove with validateOnly actually removes the
> keyword)
> Update Operation Set Paused (first with validateOnly then without
> validate, it appears executing an update with validateOnly actually
> updates the keyword)
> Add Operation (first with validateOnly then without validate, it
> appears executing an add with validateOnly actually adds the keyword)
>
> I wonder if this might be related to Google making changes to
> partialFailure to support something in keywords which has caused it to
> ignore the validateOnly flag when it shouldn't be.
>
> validateOnly (optional)
>     If set to true, the request is validated but not performed. The
> cost of the request is reduced to 0.05 API units per item, rounded up
> to the nearest integer. You can use this header to inexpensively
> validate user-provided data.
> partialFailure (optional; v201008+: AdGroupCriterionService; v201109+:
> AdGroupAdService)
>     If set to true, the service will perform error-free operations and
> return the failing operations' errors. This header is ignored for non-
> mutate operations.
>
> Peter
>
> Remove Operation (first with validateOnly then without validate, it
> appears executing a remove with validateOnly actually removes the
> keyword)
> ==========
> [2012-01-17 09:17:15,908::WARNING::AwApi-Python-15.1.4] StartTime:
> 2012-01-17 09:17:15
> *** Outgoing HTTP headers
> **********************************************
> POST /api/adwords/cm/v201101/AdGroupCriterionService HTTP/1.0
> Host:adwords.google.com
> User-agent:SOAPpy 0.12.0 (pywebsvcs.sf.net),gzip
> XML-parser: xml.etree.cElementTree v1.0.6
> Content-type:text/xml; charset="UTF-8"
> Content-length:1762
> SOAPAction:"mutate"
> ************************************************************************
> *** Outgoing SOAP
> ******************************************************
> <?xml version="1.0" encoding="UTF-8"?>
> <SOAP-ENV:Envelope
>   SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
>   xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/";
>   xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";
>   xmlns:xsi3="http://www.w3.org/2001/XMLSchema-instance";
>   >
>   <SOAP-ENV:Header xmlns="https://adwords.google.com/api/adwords/cm/
> v201101" xmlns:cm="https://adwords.google.com/api/adwords/cm/v201101";>
>     <RequestHeader>
>       <cm:developerToken>xxxxxxx</cm:developerToken>
>       <cm:validateOnly>True</cm:validateOnly>
>       <cm:userAgent>AwApi-Python-15.1.4|Test Client</cm:userAgent>
>       <cm:authToken>xxxxxxxx</cm:authToken>
>     </RequestHeader>
>   </SOAP-ENV:Header>
>   <SOAP-ENV:Body>
>     <mutate xmlns="https://adwords.google.com/api/adwords/cm/v201101";
> xmlns:cm="https://adwords.google.com/api/adwords/cm/v201101";>
>       <operations xsi3:type="cm:AdGroupCriterionOperation">
>         <cm:operator>REMOVE</cm:operator>
>         <cm:operand xsi3:type="cm:BiddableAdGroupCriterion">
>           <cm:adGroupId>2737276335</cm:adGroupId>
>           <cm:criterion xsi3:type="cm:Keyword">
>             <cm:id>8713564609</cm:id>
>             <cm:text>drying fresh garlic</cm:text>
>             <cm:matchType>BROAD</cm:matchType>
>           </cm:criterion>
>           <cm:userStatus>ACTIVE</cm:userStatus>
>           <cm:bids xsi3:type="cm:ManualCPCAdGroupCriterionBids">
>             <cm:maxCpc xsi3:type="cm:Bid">
>               <cm:amount xsi3:type="cm:Money">
>                 <cm:microAmount>0</cm:microAmount>
>               </cm:amount>
>             </cm:maxCpc>
>           </cm:bids>
>         </cm:operand>
>       </operations>
>     </mutate>
>   </SOAP-ENV:Body>
> </SOAP-ENV:Envelope>
> ************************************************************************
> *** Incoming HTTP headers
> **********************************************
> HTTP/1.? 200 OK
> Content-Type: text/xml; charset=UTF-8
> Date: Tue, 17 Jan 2012 00:17:25 GMT
> Expires: Tue, 17 Jan 2012 00:17:25 GMT
> Cache-Control: private, max-age=0
> X-Content-Type-Options: nosniff
> X-Frame-Options: SAMEORIGIN
> X-XSS-Protection: 1; mode=block
> Server: GSE
> ************************************************************************
> *** Incoming SOAP
> ******************************************************
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
>   <soap:Header>
>     <ResponseHeader xmlns="https://adwords.google.com/api/adwords/cm/
> v201101">
>       <requestId>0004b6ae4170e4c80a42534200003e73</requestId>
>       <operations>1</operations>
>       <responseTime>344</responseTime>
>       <units>1</units>
>     </ResponseHeader>
>   </soap:Header>
>   <soap:Body>
>     <mutateResponse xmlns="https://adwords.google.com/api/adwords/cm/
> v201101">
>       <rval>
>         <ListReturnValue.Type>AdGroupCriterionReturnValue</
> ListReturnValue.Type>
>         <value xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xsi:type="BiddableAdGroupCriterion">
>           <adGroupId>2737276335</adGroupId>
>           <criterion xsi:type="Keyword">
>             <id>8713564609</id>
>             <Criterion.Type>Keyword</Criterion.Type>
>             <text>drying fresh garlic</text>
>             <matchType>BROAD</matchType>
>           </criterion>
>           <AdGroupCriterion.Type>BiddableAdGroupCriterion</
> AdGroupCriterion.Type>
>         </value>
>       </rval>
>     </mutateResponse>
>   </soap:Body>
> </soap:Envelope>
> ************************************************************************
> EndTime: 2012-01-17 09:17:15
> [2012-01-17 09:17:31,023::WARNING::AwApi-Python-15.1.4] StartTime:
> 2012-01-17 09:17:30
> *** Outgoing HTTP headers
> **********************************************
> POST /api/adwords/cm/v201101/AdGroupCriterionService HTTP/1.0
> Host:adwords.google.com
> User-agent:SOAPpy 0.12.0 (pywebsvcs.sf.net),gzip
> XML-parser: xml.etree.cElementTree v1.0.6
> Content-type:text/xml; charset="UTF-8"
> Content-length:1722
> SOAPAction:"mutate"
> ************************************************************************
> *** Outgoing SOAP
> ******************************************************
> <?xml version="1.0" encoding="UTF-8"?>
> <SOAP-ENV:Envelope
>   SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
>   xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/";
>   xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";
>   xmlns:xsi3="http://www.w3.org/2001/XMLSchema-instance";
>   >
>   <SOAP-ENV:Header xmlns="https://adwords.google.com/api/adwords/cm/
> v201101" xmlns:cm="https://adwords.google.com/api/adwords/cm/v201101";>
>     <RequestHeader>
>       <cm:developerToken>xxxxxxxxx</cm:developerToken>
>       <cm:userAgent>AwApi-Python-15.1.4|Test Client</cm:userAgent>
>       <cm:authToken>xxxxxxxxx</cm:authToken>
>     </RequestHeader>
>   </SOAP-ENV:Header>
>   <SOAP-ENV:Body>
>     <mutate xmlns="https://adwords.google.com/api/adwords/cm/v201101";
> xmlns:cm="https://adwords.google.com/api/adwords/cm/v201101";>
>       <operations xsi3:type="cm:AdGroupCriterionOperation">
>         <cm:operator>REMOVE</cm:operator>
>         <cm:operand xsi3:type="cm:BiddableAdGroupCriterion">
>           <cm:adGroupId>2737276335</cm:adGroupId>
>           <cm:criterion xsi3:type="cm:Keyword">
>             <cm:id>8713564609</cm:id>
>             <cm:text>drying fresh garlic</cm:text>
>             <cm:matchType>BROAD</cm:matchType>
>           </cm:criterion>
>           <cm:userStatus>ACTIVE</cm:userStatus>
>           <cm:bids xsi3:type="cm:ManualCPCAdGroupCriterionBids">
>             <cm:maxCpc xsi3:type="cm:Bid">
>               <cm:amount xsi3:type="cm:Money">
>                 <cm:microAmount>0</cm:microAmount>
>               </cm:amount>
>             </cm:maxCpc>
>           </cm:bids>
>         </cm:operand>
>       </operations>
>     </mutate>
>   </SOAP-ENV:Body>
> </SOAP-ENV:Envelope>
> ************************************************************************
> *** Incoming HTTP headers
> **********************************************
> HTTP/1.? 500 Internal Server Error
> Content-Type: text/xml; charset=UTF-8
> Date: Tue, 17 Jan 2012 00:17:40 GMT
> Expires: Tue, 17 Jan 2012 00:17:40 GMT
> Cache-Control: private, max-age=0
> X-Content-Type-Options: nosniff
> X-Frame-Options: SAMEORIGIN
> X-XSS-Protection: 1; mode=block
> Server: GSE
> ************************************************************************
> *** Incoming SOAP
> ******************************************************
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
>   <soap:Header>
>     <ResponseHeader xmlns="https://adwords.google.com/api/adwords/cm/
> v201101">
>       <requestId>0004b6ae4258c4280a426e69000075a4</requestId>
>       <operations>1</operations>
>       <responseTime>268</responseTime>
>       <units>1</units>
>     </ResponseHeader>
>   </soap:Header>
>   <soap:Body>
>     <soap:Fault>
>       <faultcode>soap:Server</faultcode>
>       <faultstring>[EntityNotFound.INVALID_ID @
> operations[0].operand.criterion.id; trigger:'8713564609']</
> faultstring>
>       <detail>
>         <ApiExceptionFault xmlns="https://adwords.google.com/api/
> adwords/cm/v201101">
>           <message>[EntityNotFound.INVALID_ID @
> operations[0].operand.criterion.id; trigger:'8713564609']</message>
>           <ApplicationException.Type>ApiException</
> ApplicationException.Type>
>           <errors xmlns:xsi="http://www.w3.org/2001/XMLSchema-
> instance" xsi:type="EntityNotFound">
>             <fieldPath>operations[0].operand.criterion.id</fieldPath>
>             <trigger>8713564609</trigger>
>             <errorString>EntityNotFound.INVALID_ID</errorString>
>             <ApiError.Type>EntityNotFound</ApiError.Type>
>             <reason>INVALID_ID</reason>
>           </errors>
> ...
>
> read more »

-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and discussion group:
http://adwordsapi.blogspot.com
http://groups.google.com/group/adwords-api
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

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

Reply via email to