Hi Fred, Currently all UNEXPECTED_INTERNAL_API_ERRORs are classified as server side errors, even if the root cause was bad user input.
Best, - Eric On Dec 2, 12:14 pm, AdWords API Advisor <adwordsapiadvi...@google.com> wrote: > Hi Fred, > > The inconsistent reporting of API units and operations for this error > is another important issue, and I've brought it to the attention of > the core engineering team. I will take a deeper look into how units > are charge for UNEXPECTED_INTERNAL_API_ERRORs and get back to you. > > Best, > - Eric > > On Dec 1, 6:37 pm, fred <dec...@decideinteractive.com> wrote: > > > > > 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 <adwordsapiadvi...@google.com> > > 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 <dec...@decideinteractive.com> 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 <adwordsapiadvi...@google.com> > > > > 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 <dec...@decideinteractive.com> 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 adwords-...@googlegroups.com. To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en.