10 messages in com.googlegroups.adwords-apiRe: AdWords API Re: CriterionService ...
FromSent OnAttachments
PPCBidTracker10 May 2006 16:17 
Richard Jones11 May 2006 02:47 
Tomac11 May 2006 07:57 
Richard Jones11 May 2006 09:15 
PPCBidTracker11 May 2006 16:46 
PPCBidTracker11 May 2006 16:52 
Richard Jones22 May 2006 08:35 
PPCBidTracker25 May 2006 17:03 
PPCBidTracker25 May 2006 17:04 
Richard Jones26 May 2006 07:24 
Subject:Re: AdWords API Re: CriterionService -> updateCriteria (Error)
From:Richard Jones (r.@annexia.org)
Date:05/26/2006 07:24:51 AM
List:com.googlegroups.adwords-api

On Thu, May 25, 2006 at 05:05:18PM -0700, PPCBidTracker wrote:

Here is the SOAP Packet we are sending:

<?xml version="1.0" encoding="utf-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Header><email>xxxxxxxx</email><clientEmail>xxxxxxxxxxxx</clientEmail><password>xxxxxxxxx</password><useragent>RedZoneGlobal</useragent><token>xxxxxxxxxxxxx</token></SOAP-ENV:Header><SOAP-ENV:Body><m:updateCriteria xmlns:m="https://adwords.google.com/api/adwords/v3"><criterionType>Keyword</criterionType><adGroupId>230537401</adGroupId><id>1764108421</id><maxCpc>2500000</maxCpc></m:updateCriteria></SOAP-ENV:Body></SOAP-ENV:Envelope>

I've just done an updateCriteria here and traced what we send. Here I was just updating the maxCpc of the criterion:

<?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:fn="https://adwords.google.com/api/adwords/v4" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

<soap:Header> <fn:clientEmail>***</fn:clientEmail> <fn:email>***</fn:email> <fn:password>***</fn:password> <fn:token>***</fn:token> <fn:useragent>Merjis client</fn:useragent> </soap:Header> <soap:Body> <fn:updateCriteria> <fn:Criteria xsi:type="fn:Keyword"> <fn:adGroupId>219085826</fn:adGroupId> <fn:criterionType>Keyword</fn:criterionType> <fn:id>867233156</fn:id> <fn:language></fn:language> <fn:negative>false</fn:negative> <fn:status>Normal</fn:status> <fn:maxCpc>340000</fn:maxCpc> <fn:minCpc>10000</fn:minCpc> <fn:text>mortgages</fn:text> <fn:type>Exact</fn:type> </fn:Criteria> </fn:updateCriteria> </soap:Body> </soap:Envelope>

I don't know which of those fields is absolutely essential. In this case we happen to be sending more fields than are strictly necessary because I'm just sending back the structure which I got from Google (from a getAllCriteria call in this case).

Actually, I can see your problem. You're missing the inner <Criteria> element (or at least an inner element - remember that updateCriteria can update more than one criterion, so you need an extra block in there).

This is what we got back from Google:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Header> <responseTime soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next"
soapenv:mustUnderstand="0"
xmlns="https://adwords.google.com/api/adwords/v4">231</responseTime> <operations soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next"
soapenv:mustUnderstand="0"
xmlns="https://adwords.google.com/api/adwords/v4">1</operations> <units soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next"
soapenv:mustUnderstand="0"
xmlns="https://adwords.google.com/api/adwords/v4">10</units> <requestId soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next"
soapenv:mustUnderstand="0"
xmlns="https://adwords.google.com/api/adwords/v4">d4e3a42063aec7d3917f3011187ec010</requestId> </soapenv:Header> <soapenv:Body> <updateCriteriaResponse xmlns="https://adwords.google.com/api/adwords/v4"/> </soapenv:Body> </soapenv:Envelope>

Rich.