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.
