RateExceededError rateName=RATE_LIMIT

952 views
Skip to first unread message

koko...@gmail.com

unread,
Apr 10, 2014, 9:50:24 AM4/10/14
to adwor...@googlegroups.com
Hi.
I cautch exception  "RateExceededError  rateName=RATE_LIMIT " when use adwords api

exactly what we have exceeded the limits of?

the daily limit?
request per minute?

thanks 

Ray Tsang (AdWords API Team)

unread,
Apr 10, 2014, 6:12:23 PM4/10/14
to adwor...@googlegroups.com
Hi,

Please review our AdWords API Rate Limits guide.  There should be more information associated w/ the exception and you have to access it via additional methods.

Cheers,

Ray

Pearl Jam

unread,
Apr 11, 2014, 3:51:54 AM4/11/14
to adwor...@googlegroups.com

... what a meaningful answer! thanks!

we have seen these rateName too, and dont know for what it stands.

at AdWords API Rate Limits guide is written:
Rate name and why it matters?
In addition to understanding Rate Scope, it’s also IMPORTANT to understand the type of Rate Limit that was exceeded.
...blabla...
Edge Cases

While the above Rate Names are more common, it’s important to keep in mind there may be other types of rate limits that you can exceed. If you do experience those issues, PLEASE LET US KNOW in the forum.


sorry, but sometimes it is annoying that just a link is specified, instead of responding to the actual question


Jam

Ray Tsang (AdWords API Team)

unread,
Apr 11, 2014, 11:59:39 AM4/11/14
to adwor...@googlegroups.com
Jam,

Please get the additional informationso that we can see the rateScope and retryAfterSeconds as well.  Those are just as important as the rateName.  Secondly, please provide the full request/response log.

Thanks,

Ray

gianluc...@boraso.com

unread,
Aug 4, 2016, 9:48:07 AM8/4/16
to AdWords API Forum
Same problem here. This is the messagge I got (mine is a Python script):

No handlers could be found for logger "suds.client"
Traceback (most recent call last):
  File "C:\Users\gianluca.campo\Google Drive\Gianluca\Scripts\Python\Adwords-API-Python\get-search-volumes-of-kwds\getSearchVolumesOfKwds-v1.py", line 131, in <module>
    main_funct = main(adwords_client, item)
  File "C:\Users\gianluca.campo\Google Drive\Gianluca\Scripts\Python\Adwords-API-Python\get-search-volumes-of-kwds\getSearchVolumesOfKwds-v1.py", line 84, in main
    page = targeting_idea_service.get(selector)
  File "C:\Python27\lib\site-packages\googleads\common.py", line 296, in MakeSoapRequest
    for arg in args])
  File "C:\Python27\lib\site-packages\suds\client.py", line 521, in __call__
    return client.invoke(args, kwargs)
  File "C:\Python27\lib\site-packages\suds\client.py", line 581, in invoke
    result = self.send(soapenv)
  File "C:\Python27\lib\site-packages\suds\client.py", line 619, in send
    description=tostr(e), original_soapenv=original_soapenv)
  File "C:\Python27\lib\site-packages\suds\client.py", line 670, in process_reply
    raise WebFault(fault, replyroot)
suds.WebFault: Server raised fault: '[RateExceededError <rateName=RATE_LIMIT, rateKey=null, rateScope=ACCOUNT, retryAfterSeconds=30>]'

Please provide feedback since this is getting annoying.
Thanks in advance. 

Shwetha Vastrad (AdWords API Team)

unread,
Aug 4, 2016, 2:46:11 PM8/4/16
to AdWords API Forum
Hi,

If an application makes a high number of requests per second on a single AdWords account, then the AdWords API server may return a RateExceededError within the Account scope. The RateExceededError will contain the retryAfterSeconds field which is the suggested number of seconds the application should wait before retrying the request. In most cases, retrying the request based on RetryAfterSeconds is enough to recover from the RateExceededError.

This article provides more details on Rate limits and how to handle the RateExceededError. If you continue to encounter this error even after implementing a throttling mechanism, please provide the customer ID (xxx-xxx-xxxx) which is encountering this error and I'll further investigate.

Thanks,
Shwetha, AdWords API Team.

Andreas Toresäter

unread,
Mar 4, 2019, 5:55:02 AM3/4/19
to AdWords API and Google Ads API Forum
Hi,
I am getting this error too. I just started developing with the API, new dev token approved yesterday. First two request I got this error so I find it very strange that the limit should be exceeded. A don't do many requests a minute since I am doing them manually trying to figure out what is wrong. Minutes apart sometimes hours and I still get this error 50% of the times. When I get them I always wait for ~45s. I tried it against other customer IDs too, but same error.

Please advise, see req/resp below:

[main] WARN com.google.api.ads.adwords.lib.client.AdWordsServiceClient.requestInfoLogger - Request made: Service: TargetingIdeaService Method: get clientCustomerId: 723-498-3557 URL: https://adwords.google.com/api/adwords/o/v201806/TargetingIdeaService Request ID: 0005831bf3fc5c450ac540caca0c4977 ResponseTime(ms): 67 OperationsCount: 1 IsFault: true FaultMessage: ApiException{applicationExceptionType=ApiException, errors=[RateExceededError{apiErrorType=RateExceededError, errorString=RateExceededError.RATE_EXCEEDED, fieldPath=, rateName=RATE_LIMIT, rateScope=ACCOUNT, reason=RATE_EXCEEDED, retryAfterSeconds=30, trigger=}]}
[main] INFO com.google.api.ads.adwords.lib.client.AdWordsServiceClient.soapXmlLogger - SOAP request:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <soapenv:Header>
        <ns1:RequestHeader xmlns:ns1="https://adwords.google.com/api/adwords/o/v201806" soapenv:mustUnderstand="0">
            <ns2:clientCustomerId xmlns:ns2="https://adwords.google.com/api/adwords/cm/v201806">723-498-3557</ns2:clientCustomerId>
            <ns3:developerToken xmlns:ns3="https://adwords.google.com/api/adwords/cm/v201806">REDACTED</ns3:developerToken>
            <ns4:userAgent xmlns:ns4="https://adwords.google.com/api/adwords/cm/v201806">Aperico (AwApi-Java, AdWords-Axis/4.4.0, Common-Java/4.4.0, Axis/1.4, Java/1.8.0_191, maven)</ns4:userAgent>
            <ns5:validateOnly xmlns:ns5="https://adwords.google.com/api/adwords/cm/v201806">false</ns5:validateOnly>
            <ns6:partialFailure xmlns:ns6="https://adwords.google.com/api/adwords/cm/v201806">false</ns6:partialFailure>
        </ns1:RequestHeader>
    </soapenv:Header>
    <soapenv:Body>
            <selector>
                <searchParameters xmlns:ns7="https://adwords.google.com/api/adwords/o/v201806" xsi:type="ns7:RelatedToQuerySearchParameter">
                    <ns7:queries>portable solar charger</ns7:queries>
                    <ns7:queries>amazon services llc associates program</ns7:queries>
                    <ns7:queries>best mppt charge controllers</ns7:queries>
                </searchParameters>
                <searchParameters xmlns:ns8="https://adwords.google.com/api/adwords/o/v201806" xsi:type="ns8:LanguageSearchParameter">
                    <ns8:languages>
                        <ns9:id xmlns:ns9="https://adwords.google.com/api/adwords/cm/v201806">1000</ns9:id>
                    </ns8:languages>
                </searchParameters>
                <searchParameters xmlns:ns10="https://adwords.google.com/api/adwords/o/v201806" xsi:type="ns10:NetworkSearchParameter">
                    <ns10:networkSetting>
                        <ns11:targetGoogleSearch xmlns:ns11="https://adwords.google.com/api/adwords/cm/v201806">true</ns11:targetGoogleSearch>
                        <ns12:targetSearchNetwork xmlns:ns12="https://adwords.google.com/api/adwords/cm/v201806">false</ns12:targetSearchNetwork>
                        <ns13:targetContentNetwork xmlns:ns13="https://adwords.google.com/api/adwords/cm/v201806">false</ns13:targetContentNetwork>
                        <ns14:targetPartnerSearchNetwork xmlns:ns14="https://adwords.google.com/api/adwords/cm/v201806">false</ns14:targetPartnerSearchNetwork>
                    </ns10:networkSetting>
                </searchParameters>
                <ideaType>KEYWORD</ideaType>
                <requestType>IDEAS</requestType>
                <requestedAttributeTypes>KEYWORD_TEXT</requestedAttributeTypes>
                <requestedAttributeTypes>SEARCH_VOLUME</requestedAttributeTypes>
                <requestedAttributeTypes>AVERAGE_CPC</requestedAttributeTypes>
                <requestedAttributeTypes>COMPETITION</requestedAttributeTypes>
                <requestedAttributeTypes>TARGETED_MONTHLY_SEARCHES</requestedAttributeTypes>
                <paging>
                    <ns15:startIndex xmlns:ns15="https://adwords.google.com/api/adwords/cm/v201806">0</ns15:startIndex>
                    <ns16:numberResults xmlns:ns16="https://adwords.google.com/api/adwords/cm/v201806">100</ns16:numberResults>
                </paging>
            </selector>
        </get>
    </soapenv:Body>
</soapenv:Envelope>

[main] INFO com.google.api.ads.adwords.lib.client.AdWordsServiceClient.soapXmlLogger - SOAP response:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Header>
            <ns2:requestId>0005831bf3fc5c450ac540caca0c4977</ns2:requestId>
            <ns2:serviceName>TargetingIdeaService</ns2:serviceName>
            <ns2:methodName>get</ns2:methodName>
            <ns2:operations>1</ns2:operations>
            <ns2:responseTime>67</ns2:responseTime>
        </ResponseHeader>
    </soap:Header>
    <soap:Body>
        <soap:Fault>
            <faultcode>soap:Server</faultcode>
            <faultstring>[RateExceededError &lt;rateName=RATE_LIMIT, rateKey=null, rateScope=ACCOUNT, retryAfterSeconds=30&gt;]</faultstring>
            <detail>
                <ApiExceptionFault xmlns="https://adwords.google.com/api/adwords/o/v201806" xmlns:ns2="https://adwords.google.com/api/adwords/cm/v201806">
                    <ns2:message>[RateExceededError &lt;rateName=RATE_LIMIT, rateKey=null, rateScope=ACCOUNT, retryAfterSeconds=30&gt;]</ns2:message>
                    <ns2:ApplicationException.Type>ApiException</ns2:ApplicationException.Type>
                    <ns2:errors xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:RateExceededError">
                        <ns2:fieldPath/>
                        <ns2:trigger/>
                        <ns2:errorString>RateExceededError.RATE_EXCEEDED</ns2:errorString>
                        <ns2:ApiError.Type>RateExceededError</ns2:ApiError.Type>
                        <ns2:reason>RATE_EXCEEDED</ns2:reason>
                        <ns2:rateName>RATE_LIMIT</ns2:rateName>
                        <ns2:rateScope>ACCOUNT</ns2:rateScope>
                        <ns2:retryAfterSeconds>30</ns2:retryAfterSeconds>
                    </ns2:errors>
                </ApiExceptionFault>
            </detail>
        </soap:Fault>
    </soap:Body>
</soap:Envelope>

Request failed due to ApiException. Underlying ApiErrors:
  Error 0: RateExceededError{apiErrorType=RateExceededError, errorString=RateExceededError.RATE_EXCEEDED, fieldPath=, rateName=RATE_LIMIT, rateScope=ACCOUNT, reason=RATE_EXCEEDED, retryAfterSeconds=30, trigger=}

googleadsapi...@google.com

unread,
Mar 4, 2019, 11:37:06 AM3/4/19
to AdWords API and Google Ads API Forum
Hi, 

I see that you are getting rate limit with ACCOUNT scope. This means that the number of calls against the specific account is high in the short interval of time. You will need to slow down and wait atleast the time specified in the retryAfterSeconds parameter in the error and retry the request. Also, the rate limit across Account rate scope is metered on all requests to a single Google Ads account--no matter which developer token was used to make the request. You could also take a look at the recommended practices to mitigate RateExceededError. You can take control of your application and mitigate RateExceededError as much as possible by both actively reducing the number of requests and throttling QPS from the client side.

We recognize that your AdWords API client application may sometimes exceed the limit and receive a RateExceededError due to factors not fully in your control. It's important to note that there is no penalty for doing so. RateExceededError is usually transient and automatically resolves after 30 seconds of inactivity.

Thanks,
Sreelakshmi, AdWords API Team

=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and discussion group:
    http://googleadsdeveloper.blogspot.com/search/label/adwords_api
    https://developers.google.com/adwords/api/community/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

Was your question answered? Please rate your experience with us by taking a short survey.
If not -- reply to this email and tell us what else we can do to help.

Take Survey

Also find us on our blog and discussion group:
http://googleadsdeveloper.blogspot.com/search/label/adwords_api
https://developers.google.com/adwords/api/community/

Reply all
Reply to author
Forward
0 new messages