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>
</ApiExceptionFault>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
************************************************************************
EndTime: 2012-01-17 09:17:31
Update Operation Set Paused (first with validateOnly then without
validate, it appears executing an update with validateOnly actually
updates the keyword)
==========
[2012-01-17 09:22:02,282::WARNING::AwApi-Python-15.1.4] StartTime:
2012-01-17 09:22:01
*** 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:1770
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>xxxxxxxxxxxxxxxxxxxxxxx</cm:developerToken>
<cm:validateOnly>True</cm:validateOnly>
<cm:userAgent>AwApi-Python-15.1.4|Test Client</cm:userAgent>
<cm:authToken>xxxxxxxxxxxxxxxxxxxxxx</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>SET</cm:operator>
<cm:operand xsi3:type="cm:BiddableAdGroupCriterion">
<cm:adGroupId>2737276335</cm:adGroupId>
<cm:criterion xsi3:type="cm:Keyword">
<cm:id>31157366535</cm:id>
<cm:text>how do you dry fresh tarragon</cm:text>
<cm:matchType>BROAD</cm:matchType>
</cm:criterion>
<cm:userStatus>PAUSED</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:22:12 GMT
Expires: Tue, 17 Jan 2012 00:22:12 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>0004b6ae527edc480a42488700006fee</requestId>
<operations>1</operations>
<responseTime>452</responseTime>
<units>3</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>31157366535</id>
<Criterion.Type>Keyword</Criterion.Type>
<text>how do you dry fresh tarragon</text>
<matchType>BROAD</matchType>
</criterion>
<AdGroupCriterion.Type>BiddableAdGroupCriterion</
AdGroupCriterion.Type>
<userStatus>PAUSED</userStatus>
<systemServingStatus>RARELY_SERVED</systemServingStatus>
<approvalStatus>PENDING_REVIEW</approvalStatus>
<bids xsi:type="ManualCPCAdGroupCriterionBids">
<AdGroupCriterionBids.Type>ManualCPCAdGroupCriterionBids</
AdGroupCriterionBids.Type>
<maxCpc>
<amount>
<ComparableValue.Type>Money</ComparableValue.Type>
<microAmount>1000000</microAmount>
</amount>
</maxCpc>
<bidSource>ADGROUP</bidSource>
</bids>
<firstPageCpc>
<amount>
<ComparableValue.Type>Money</ComparableValue.Type>
<microAmount>450000</microAmount>
</amount>
</firstPageCpc>
<qualityInfo>
<qualityScore>4</qualityScore>
</qualityInfo>
</value>
</rval>
</mutateResponse>
</soap:Body>
</soap:Envelope>
************************************************************************
EndTime: 2012-01-17 09:22:02
[2012-01-17 09:23:22,565::WARNING::AwApi-Python-15.1.4] StartTime:
2012-01-17 09:23:21
*** 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:1730
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>xxxxxxxxxxxxxxxxxx</cm:developerToken>
<cm:userAgent>AwApi-Python-15.1.4|Test Client</cm:userAgent>
<cm:authToken>xxxxxxxxxxxxxxxxxxx</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>SET</cm:operator>
<cm:operand xsi3:type="cm:BiddableAdGroupCriterion">
<cm:adGroupId>2737276335</cm:adGroupId>
<cm:criterion xsi3:type="cm:Keyword">
<cm:id>31157366535</cm:id>
<cm:text>how do you dry fresh tarragon</cm:text>
<cm:matchType>BROAD</cm:matchType>
</cm:criterion>
<cm:userStatus>PAUSED</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:23:32 GMT
Expires: Tue, 17 Jan 2012 00:23:32 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>0004b6ae574d50600a42664800005cdf</requestId>
<operations>1</operations>
<responseTime>252</responseTime>
<units>3</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>31157366535</id>
<Criterion.Type>Keyword</Criterion.Type>
<text>how do you dry fresh tarragon</text>
<matchType>BROAD</matchType>
</criterion>
<AdGroupCriterion.Type>BiddableAdGroupCriterion</
AdGroupCriterion.Type>
<userStatus>PAUSED</userStatus>
<systemServingStatus>RARELY_SERVED</systemServingStatus>
<approvalStatus>PENDING_REVIEW</approvalStatus>
<bids xsi:type="ManualCPCAdGroupCriterionBids">
<AdGroupCriterionBids.Type>ManualCPCAdGroupCriterionBids</
AdGroupCriterionBids.Type>
<maxCpc>
<amount>
<ComparableValue.Type>Money</ComparableValue.Type>
<microAmount>1000000</microAmount>
</amount>
</maxCpc>
<bidSource>ADGROUP</bidSource>
</bids>
<firstPageCpc>
<amount>
<ComparableValue.Type>Money</ComparableValue.Type>
<microAmount>450000</microAmount>
</amount>
</firstPageCpc>
<qualityInfo>
<qualityScore>4</qualityScore>
</qualityInfo>
</value>
</rval>
</mutateResponse>
</soap:Body>
</soap:Envelope>
************************************************************************
EndTime: 2012-01-17 09:23:22
Add Operation (first with validateOnly then without validate, it
appears executing an add with validateOnly actually adds the keyword)
[2012-01-17 09:30:49,280::WARNING::AwApi-Python-15.1.4] StartTime:
2012-01-17 09:30:48
*** 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:1753
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>xxxxxxxxxxxxxxx</cm:developerToken>
<cm:validateOnly>True</cm:validateOnly>
<cm:userAgent>AwApi-Python-15.1.4|Test Client</cm:userAgent>
<cm:authToken>xxxxxxxxxxxxxxxx</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>ADD</cm:operator>
<cm:operand xsi3:type="cm:BiddableAdGroupCriterion">
<cm:adGroupId>2737276335</cm:adGroupId>
<cm:criterion xsi3:type="cm:Keyword">
<cm:text>how to dry your own fresh tomatos</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>1000000</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:30:59 GMT
Expires: Tue, 17 Jan 2012 00:30:59 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>0004b6ae71e953600a426e69000075a4</requestId>
<operations>1</operations>
<responseTime>494</responseTime>
<units>15</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>31186729935</id>
<Criterion.Type>Keyword</Criterion.Type>
<text>how to dry your own fresh tomatos</text>
<matchType>BROAD</matchType>
</criterion>
<AdGroupCriterion.Type>BiddableAdGroupCriterion</
AdGroupCriterion.Type>
<userStatus>ACTIVE</userStatus>
<systemServingStatus>RARELY_SERVED</systemServingStatus>
<approvalStatus>PENDING_REVIEW</approvalStatus>
<bids xsi:type="ManualCPCAdGroupCriterionBids">
<AdGroupCriterionBids.Type>ManualCPCAdGroupCriterionBids</
AdGroupCriterionBids.Type>
<maxCpc>
<amount>
<ComparableValue.Type>Money</ComparableValue.Type>
<microAmount>1000000</microAmount>
</amount>
</maxCpc>
<bidSource>CRITERION</bidSource>
<enhancedCpcEnabled>false</enhancedCpcEnabled>
</bids>
<firstPageCpc>
<amount>
<ComparableValue.Type>Money</ComparableValue.Type>
<microAmount>550000</microAmount>
</amount>
</firstPageCpc>
<qualityInfo>
<qualityScore>4</qualityScore>
</qualityInfo>
</value>
</rval>
</mutateResponse>
</soap:Body>
</soap:Envelope>
************************************************************************
EndTime: 2012-01-17 09:30:49
[2012-01-17 09:33:37,711::WARNING::AwApi-Python-15.1.4] StartTime:
2012-01-17 09:32:49
*** 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:1692
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>xxxxxxxxxxxxxx</cm:developerToken>
<cm:userAgent>AwApi-Python-15.1.4|Test Client</cm:userAgent>
<cm:authToken>xxxxxxxxxxxxxx</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>ADD</cm:operator>
<cm:operand xsi3:type="cm:BiddableAdGroupCriterion">
<cm:adGroupId>2737276335</cm:adGroupId>
<cm:criterion xsi3:type="cm:Keyword">
<cm:text>how to dry your own fresh tomatos</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>1000000</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:33:00 GMT
Expires: Tue, 17 Jan 2012 00:33:00 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>0004b6ae792671d00a42292c00004135</requestId>
<operations>1</operations>
<responseTime>312</responseTime>
<units>15</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>31186729935</id>
<Criterion.Type>Keyword</Criterion.Type>
<text>how to dry your own fresh tomatos</text>
<matchType>BROAD</matchType>
</criterion>
<AdGroupCriterion.Type>BiddableAdGroupCriterion</
AdGroupCriterion.Type>
<userStatus>ACTIVE</userStatus>
<systemServingStatus>RARELY_SERVED</systemServingStatus>
<approvalStatus>PENDING_REVIEW</approvalStatus>
<bids xsi:type="ManualCPCAdGroupCriterionBids">
<AdGroupCriterionBids.Type>ManualCPCAdGroupCriterionBids</
AdGroupCriterionBids.Type>
<maxCpc>
<amount>
<ComparableValue.Type>Money</ComparableValue.Type>
<microAmount>1000000</microAmount>
</amount>
</maxCpc>
<bidSource>CRITERION</bidSource>
<enhancedCpcEnabled>false</enhancedCpcEnabled>
</bids>
<firstPageCpc>
<amount>
<ComparableValue.Type>Money</ComparableValue.Type>
<microAmount>550000</microAmount>
</amount>
</firstPageCpc>
<qualityInfo>
<qualityScore>4</qualityScore>
</qualityInfo>
</value>
</rval>
</mutateResponse>
</soap:Body>
</soap:Envelope>
************************************************************************
EndTime: 2012-01-17 09:32:50
On Jan 17, 8:00 am, mm <[email protected]> wrote:
> Peter -
> I've been using this same paradigm for the past year or so with fine
> results. However, I only use it for updates of Keywords. Did this
> previously work for you with removes? I would expect that on a remove
> the only exception that might be thrown would be a "Not Found", rather
> than a policy exception, so I would probably just perform those
> allowing for partial failures and then noting the failures. Agree that
> if it is "validate only", it should be... just looking to work around
> it...
>
> HTH -
> mm
>
> On Jan 15, 9:19 pm, Peter <[email protected]> wrote:
>
> > Hey AdWords Team,
>
> > The software I'm working on attempts to test changes to keywords using
> > validateOnly before making the real operation. This way if any of the
> > operations fail with policy violation errors the proper exemption
> > requests can be supplied. I noticed that something strange was
> > happening and it appeared that validateOnly did not have any effect.
> > So I put together a simple example for you guys. The operation
> > attempts to remove one keyword with validate only. Then it attempts a
> > second remove operation without validate only. The first operation
> > actually removes the keyword, whilst the second one fails because the
> > first removed it. Perhaps I am misunderstanding the purpose of
> > validateOnly. I had assumed if it was used any and all operations
> > supplied would only be tested and not executed. I've provided below
> > the soap_xml.log data. If you could let me know if this is an issue on
> > your end that will be resolved or if I need to change what I am doing
> > I would be very grateful.
>
> > Thanks,
>
> > Peter
>
> > [2012-01-16 11:45:51,862::WARNING::AwApi-Python-15.1.4] StartTime:
> > 2012-01-16 11:45:50
> > *** 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:2356
> > 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>xxxxxxxxxxxxxxxxxxxxx</cm:developerToken>
> > <cm:validateOnly>True</cm:validateOnly>
> > <cm:userAgent>AwApi-Python-15.1.4|Test Client</cm:userAgent>
> > <cm:authToken>xxxxxxxxxxxxxxxxxxxx</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>ADD</cm:operator>
> > <cm:operand xsi3:type="cm:BiddableAdGroupCriterion">
> > <cm:adGroupId>2737275975</cm:adGroupId>
> > <cm:criterion xsi3:type="cm:Keyword">
> > <cm:id>2908392767</cm:id>
> > <cm:text>storing fresh basil food</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>
> > <operations xsi3:type="cm:AdGroupCriterionOperation">
> > <cm:operator>REMOVE</cm:operator>
> > <cm:operand xsi3:type="cm:BiddableAdGroupCriterion">
> > <cm:adGroupId>2737275975</cm:adGroupId>
> > <cm:criterion xsi3:type="cm:Keyword">
> > <cm:id>2908392767</cm:id>
> > <cm:text>storing fresh basil</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: Mon, 16 Jan 2012 02:46:02 GMT
> > Expires: Mon, 16 Jan 2012 02:46:02 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>0004b69c3716f3580a42534200003e73</requestId>
> > <operations>2</operations>
> > <responseTime>378</responseTime>
> > <units>16</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>2737275975</adGroupId>
> > <criterion xsi:type="Keyword">
> > <id>31158801615</id>
> > <Criterion.Type>Keyword</Criterion.Type>
> > <text>storing fresh basil food</text>
> > <matchType>BROAD</matchType>
> > </criterion>
> > <AdGroupCriterion.Type>BiddableAdGroupCriterion</
> > AdGroupCriterion.Type>
> > <userStatus>ACTIVE</userStatus>
> > <systemServingStatus>RARELY_SERVED</systemServingStatus>
> > <approvalStatus>PENDING_REVIEW</approvalStatus>
> > <bids xsi:type="ManualCPCAdGroupCriterionBids">
> > <AdGroupCriterionBids.Type>ManualCPCAdGroupCriterionBids</
> > AdGroupCriterionBids.Type>
> > <maxCpc>
> > <amount>
> > <ComparableValue.Type>Money</ComparableValue.Type>
> > <microAmount>1000000</microAmount>
> > </amount>
> > </maxCpc>
> > <bidSource>ADGROUP</bidSource>
> > </bids>
> > <firstPageCpc>
> > <amount>
> > <ComparableValue.Type>Money</ComparableValue.Type>
> > <microAmount>450000</microAmount>
> > </amount>
> > </firstPageCpc>
> > <qualityInfo>
> > <qualityScore>4</qualityScore>
> > </qualityInfo>
> > </value>
> > <value xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> > xsi:type="BiddableAdGroupCriterion">
> > <adGroupId>2737275975</adGroupId>
> > <criterion xsi:type="Keyword">
> > <id>2908392767</id>
> > <Criterion.Type>Keyword</Criterion.Type>
> > <text>storing fresh basil</text>
> > <matchType>BROAD</matchType>
> > </criterion>
> > <AdGroupCriterion.Type>BiddableAdGroupCriterion</
> > AdGroupCriterion.Type>
> > </value>
> > </rval>
> > </mutateResponse>
> > </soap:Body>
> > </soap:Envelope>
> > ************************************************************************
> > EndTime: 2012-01-16 11:45:51
> > [2012-01-16 11:49:05,164::WARNING::AwApi-Python-15.1.4] StartTime:
> > 2012-01-16 11:49:04
> > *** 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:2295
> > 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>
> >
>
> ...
>
> 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