Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

There have been too many calls from this ad-account. Wait a bit and try again

I am trying to fetch the reportstats from our account. I need to make async calls because otherwise I would get and error that the data is to old.

When I create multiple requests I will get the error: "There have been too many calls from this ad-account. Wait a bit and try again."

I have only made about 30 request in a small time because of the way the async reports work. Is there a better way to fetch te reporting data? And if there is not is there a way to see the request score that is mentioned in the documentation?

And an other question will be, is there a difference in the amount of request when your app is on development access?

Thanks in advance, Jorik

like image 758
Jostcrow Avatar asked Sep 29 '14 08:09

Jostcrow


1 Answers

First point, according to access level docs here there is heavy rate limiting on the apps that are in development stage.

Second, To fetch reports there are multiple endpoints that, such as ad account wise reports, campaign wise reports, ad wise reports, here is a link to the docs for Insights API available params are :

  1. act_AD_ACCOUNT_ID/insights
  2. CAMPAIGN_ID/insights
  3. ADSET_ID/insights
  4. AD_ID/insights

Lastly, about rate limiting in marketing api. It is done as a sliding window method which means there is no actual track of number of requests per day or something, its just that a lot of requests in short amount of time is not allowed.

two things you can do are, first see the response of api and if the response is ratelimit error, stop the request. second, use batch requests

Here is a gist from troubleshooting guide on limits Troubleshooting

Timeouts

The most common issues causing failure at this endpoint are too many requests and time outs:

On /GET or synchronous requests, you can get out-of-memory or timeout errors. On /POST or asynchronous requests, you can possibly get timeout errors. For asynchronous requests, it can take up to an hour to complete a request including retry attempts. For example if you make a query that tries to fetch large volume of data for many ad level objects. Recommendations

There is no explicit limit for when a query will fail. When it times out, try to break down the query into smaller queries by putting in filters like date range. Unique metrics are time consuming to compute. Try to query unique metrics in a separate call to improve performance of non-unique metrics. Rate Limiting

The Facebook Insights API utilizes rate limiting to ensure an optimal reporting experience for all of our partners. For more information and suggestions, see our Insights API Limits & Best Practices.

like image 161
Rishiraj Purohit Avatar answered Nov 15 '22 08:11

Rishiraj Purohit