Avoid access rate limit - Real time reporting


#1

We are developing an reporting application using the Ads API. The requirement is to show real-time data/statistics from Twitter every time the user access the app.
This application will be accessed by multiple clients, so we are sure that we cannot operate within the rate limit. But as I understand, streaming api does not support Ads API end points.

We have reviewed the analytics best practices suggestions, and have planned to cache the results. But this will not help us in showing the real-time data.

Can you please suggest better ways to handle this requirement?


#2

Hey @Kalaiamuthan_KK,

Good to hear you read our Analytics Best Practices!

At present, your best bet is to cache results as suggested. You can always try and make requests in the background as often as the rate limits allow so you can present your users with the most up to date information possible.

Do you log how often your users access your reporting application? One idea would be to analyze those stats and try and optimize/prioritize when and how often you request stats from the Ads API in relation to that.


#3

I would like to add to this issue. If this is not the correct place and I should make a new topic, then let me know.

We have multi-platform real time reporting application that has thousands of users. The application has the knowledge and access to over a thousand twitter ads accounts. We have a actually 2 main accounts that we grant access to each new ads account when it is being added to our application. When making calls we utilize the token for each of these accounts to maximize our rate limit.

The problem is that the user in our application has access to their twitter accounts and campaigns and then there are superusers who can see every twitter account that we run. When trying to do live reporting on all of these accounts obviously we hit the rate limit very quickly since it only takes one person making a few calls to hit the minute limit.

Is there some way were we can create an access pool for twitter accounts. Ideally we would like to use the individuals twitter account to make the calls, but for users like our staff that need access to over a thousand it will become unmanageable trying to grant them all access to each account as it is created. Is there any way that we can add users to our master account saying they have access to everything that we do?

Or just some way to increase the rate limit based on the size of what is available to this twitter account. The limit is reasonable if there is only one account, since you only need the data for that account so often. The problem comes in when you have thousands of accounts you are trying to manage with a single rate limit.

Any insight on how to manage this many users and accounts would be appreciated.


#4

The key here is that in our current analytics design, we expect that developers will cache and store the results of advertiser performance data on their end for serving to users within your platform/tools. As you noted, the rate limits are reasonable in size when a single token is used to access an account’s stats. It is therefore key that you obtain a single OAuth token for each advertiser account you plan to operate on, as our authentication today does all rate limiting at the user token level.

We are exploring what it would take for us to handle rate limiting within the Ads API on the ads account level, rather than the authenticated user level, but that is not on our current roadmap.

More on rate limiting here: