Thanks for following this up Eric. I will make sure we account for
quota on faults to.
When you say "where the error was due to a problem on Google's
servers" does that mean whenever the error is internal error?

In the example I posted (reported as 787 quota) it was reported as an
INTERNAL_API_ERROR, but was due to me deliberately using a bad adgroup
ID. Is this considered a server error or input error? i.e. Would this
be charged or not?
Interstingly most of the time it was only 1 quota, but when I added a
few more 0's to the invalid adgroup id it gave the 787

On Dec 2, 3:53 am, AdWords API Advisor <[email protected]>
wrote:
> Hi Fred,
>
> Thank you for the follow up information.  The API units reported in
> the SOAP header are billed to your account, even if the request
> resulted in an error.  In cases where the error was due to a problem
> on Google's servers and not user input the units will not be charged
> to your account.
>
> Because of the cost associated with errors, we recommend using the new
> validateOnly header to check your request for errors before you
> actually run them.  A blog post on this header will be published later
> this week.
>
> Best,
> - Eric
>
> On Nov 30, 7:27 pm, fred <[email protected]> wrote:
>
>
>
> > I assume you want the SOAP from the delete call which had the dodgy
> > operations header. Unfortunately I did not save the XML last week, but
> > was getting that behaviour consistently on Friday (Thursday evening in
> > the US)
> > This week I am unable to reproduce this issue. When deleting keywords
> > with an invalid adgroup ID it still gives an INTERNAL ERROR but now
> > returns a response with headers of 1 operation and one 1 unit. Most of
> > the time. On one occasion I did get a very different operation/unit
> > count (but still only 1 unit per operation). The SOAP is below.
>
> > I will keep an eye on it, and will save the XML if I do get the issue
> > again. If you wanted other SOAP (e.g. the 15 quota per invalid keyword
> > in an Add operation) then I can still reproduce that.
>
> > Do we actually get charged the quota reported in the headers of SOAP
> > Faults?
>
> > 1201-112153 W P4PGoogle.pm/2241 ERROR REQUEST:
> > POSThttps://adwords.google.com/api/adwords/cm/v200909/AdGroupCriterionSer...
> > HTTP/1.1
> > Accept: text/xml
> > Accept: multipart/*
> > Content-Length: 2032
> > Content-Type: text/xml; charset=utf-8
> > SOAPAction: "https://adwords.google.com/api/adwords/cm/v200909#mutate";
>
> > <?xml version="1.0" encoding="UTF-8"?>
> > <SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-
> > instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/";
> > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";
> > xmlns:xsd="http://www.w3.org/2001/XMLSchema"; SOAP-
> > ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";>
> > <SOAP-ENV:Header>
> > <RequestHeader xmlns="https://adwords.google.com/api/adwords/cm/
> > v200909" SOAP-ENC:arrayType="xsd:string[4]">
> > <authToken xsi:type="xsd:string">something1</authToken>
> > <useragent xsi:type="xsd:string">something2</useragent>
> > <developerToken xsi:type="xsd:string">something3</developerToken>
> > <applicationToken xsi:type="xsd:string">something4</applicationToken>
> > </RequestHeader>
> > </SOAP-ENV:Header>
> > <SOAP-ENV:Body>
> > <mutate xmlns="https://adwords.google.com/api/adwords/cm/v200909";>
> > <operations>
> > <operator>REMOVE</operator>
> > <operand xsi:type="BiddableAdGroupCriterion">
> > <bids xsi:type="ManualCPCAdGroupCriterionBids" SOAP-
> > ENC:arrayType="xsd:anyType[1]">
> > <maxCpc>
> > <amount>
> > <microAmount xsi:nil="true"/>
> > </amount>
> > </maxCpc>
> > </bids>
> > <adGroupId>36907795200000</adGroupId>
> > <userStatus xsi:nil="true"/>
> > <criterion xsi:type="Keyword">
> > <text xsi:nil="true"/>
> > <id>14899356282</id>
> > <matchType>BROAD</matchType>
> > </criterion>
> > <destinationUrl xsi:nil="true"/>
> > </operand>
> > </operations>
> > <operations>
> > <operator>REMOVE</operator>
> > <operand xsi:type="BiddableAdGroupCriterion">
> > <bids xsi:type="ManualCPCAdGroupCriterionBids" SOAP-
> > ENC:arrayType="xsd:anyType[1]">
> > <maxCpc>
> > <amount>
> > <microAmount xsi:nil="true"/>
> > </amount>
> > </maxCpc>
> > </bids>
> > <adGroupId>36907795200000</adGroupId>
> > <userStatus xsi:nil="true"/>
> > <criterion xsi:type="Keyword">
> > <text xsi:nil="true"/>
> > <id>14899572282</id>
> > <matchType>BROAD</matchType>
> > </criterion>
> > <destinationUrl xsi:nil="true"/>
> > </operand>
> > </operations>
> > </mutate>
> > </SOAP-ENV:Body>
> > </SOAP-ENV:Envelope>
>
> > 1201-112153 W P4PGoogle.pm/2243 ERROR RESPONSE:
> > HTTP/1.1 200 OK
> > Cache-Control: private, max-age=0
> > Connection: close
> > Date: Tue, 01 Dec 2009 00:21:53 GMT
> > Server: GFE/2.0
> > Content-Type: text/xml; charset=UTF-8
> > Expires: Tue, 01 Dec 2009 00:21:53 GMT
> > Client-Date: Tue, 01 Dec 2009 00:21:53 GMT
> > Client-Response-Num: 1
> > Client-SSL-Cert-Issuer: /C=US/O=Equifax/OU=Equifax Secure Certificate
> > Authority
> > Client-SSL-Cert-Subject: /C=US/ST=California/L=Mountain View/O=Google
> > Inc./CN=adwords.google.com
> > Client-SSL-Cipher: AES256-SHA
> > Client-SSL-Warning: Peer certificate not verified
> > Client-Transfer-Encoding: chunked
> > X-Content-Type-Options: nosniff
> > X-Frame-Options: SAMEORIGIN
> > X-XSS-Protection: 0
>
> > <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
> > <soap:Header>
> > <ResponseHeader xmlns="https://adwords.google.com/api/adwords/cm/
> > v200909">
> > <requestId>5e72e19c21b7d51ee7e7304b27770e16</requestId>
> > <operations>787</operations>
> > <responseTime>172</responseTime>
> > <units>787</units>
> > </ResponseHeader>
> > </soap:Header>
> > <soap:Body>
> > <soap:Fault>
> > <faultcode>soap:Server</faultcode>
> > <faultstring>InternalApiError.UNEXPECTED_INTERNAL_API_ERROR @ </
> > faultstring>
> > <detail>
> > <ApiExceptionFault xmlns="https://adwords.google.com/api/adwords/cm/
> > v200909">
> > <message>InternalApiError.UNEXPECTED_INTERNAL_API_ERROR @ </message>
> > <ApplicationException.Type>ApiException</ApplicationException.Type>
> > <errors xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> > xsi:type="InternalApiError">
> > <fieldPath>
> > </fieldPath>
> > <trigger>
> > </trigger>
> > <ApiError.Type>InternalApiError</ApiError.Type>
> > <reason>UNEXPECTED_INTERNAL_API_ERROR</reason>
> > </errors>
> > </ApiExceptionFault>
> > </detail>
> > </soap:Fault>
> > </soap:Body>
> > </soap:Envelope>
>
> > On Dec 1, 5:43 am, AdWords API Advisor <[email protected]>
> > wrote:
>
> > > Hi Fred,
>
> > > Do you have the SOAP XML request and response that shows this
> > > behavior?  The request ID would also suffice.
>
> > > Best,
> > > - Eric Koleda, AdWords API Team
>
> > > On Nov 27, 12:45 am, fred <[email protected]> wrote:
>
> > > > Hello,
> > > > While developing our client for the v2009 API I have been doing some
> > > > error condition tests.
> > > > I have noticed that the 'operations' and 'units' headers come back
> > > > even when requests fail.
>
> > > > Some times this looks like its properly calculated. e.g. If the error
> > > > is in a mutate call which adds keywords then the 'operations' matches
> > > > the number of keyword objects which had the error, and the units is 15
> > > > per operation. So when I submit a mutate to add 5 keywords but 2 are
> > > > missing match types, then it says that 30 units were used.
>
> > > > But some times it looks completely random. e.g. I submit a mutate call
> > > > which deletes 3 keywords each with the same invalid adgroup id, then
> > > > the error is INTERNAL ERROR and I get different values for
> > > > 'operations' and 'units'. Once was 22/330, another was 14/210. So 15
> > > > units per operataion, but operation count is just crud.
>
> > > > So my main question is:
> > > > - Are the quota 'units' reported in the header of a SOAP::Fault
> > > > actually charged to our account?
>
> > > > And if so, what about the buggy looking situations as shown in my
> > > > second example?- Hide quoted text -
>
> > > - Show quoted text -- Hide quoted text -
>
> - Show quoted text -

--

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