I am working on an application that access data from the users Google analytic account using Google Analytics API v3 and generated different reports. The application will generate around 30 API calls per day per user using a cron script and update our database.

The problem is the Quota limit of 10,000 requests per profile per day that we have on Core Reporting API. With this limit we can not go beyond 10000/30 ie. 333 users. This is a key factor in deciding the feasibility of a project. I have seen similar application working on the same concept but have a very large user base.

I realize this is an old question, but one approach is to track your user IDs with a custom metric, dimension, or variable. This allows you to return data for all users simultaneously in one request (max 10,000 rows per request). Your cron job would simply need to collate all of the results by this custom parameter (the user ID). I've tested this with a custom dimension, and it works great!
–
rinogoFeb 26 at 20:44

3 Answers
3

You will need to create more profiles for each account and hit each of them as well. 2 profiles increase your quota to 20,000 and so on as you add profiles. Write the cron job to switch to a different profiles as it approaches the quota or after a certain number of runs.

Alternatively, you could ask Google to increase the quota:

If you think that your application needs additional daily quota, you can request more quota using the "Request more" link in the APIs Console. Please provide a brief explanation of why you need this additional quota. For more details on quota management and how to fine-tune your application for quota usage, see Monitoring, Filtering, and Capping Usage section.

If you need this much access this frequently to analytics data, you may want to consider using a service other than Google Analytics or use Google Analytics Premium passing the cost of $150,000 USD per year on to your customers.

Basic Google Analytics is free and Google is trying to keep people from abusing it and steer heavy users to its premium service. What you're asking is more than GA is willing to offer at no charge.

UPDATE (06Mar2013):

The requests per day can be increased but the requests per profile cannot according to Google's quota increase request form (Thanks @fuzzybee for the clarification):

This form is to request an increase to the requests per project per day limit (default is 50,000 requests/day).

The following quotas cannot be increased: The daily per profile limit (10,000 requests/day), 10 QPS per IP, and 10 concurrent requests per profile.

Please edit your answer to remove the comment about trying it out yourself and the request for others to help you. Only the first paragraph of your answer is really relevant to the question asked. Once you have tried it out, feel free to update your answer with further information however.
–
RenApr 8 '13 at 15:15

I had a similar problem while using the API for displaying my company's analytics data to multiple users. This is how I solved the problem.

Set up the cron task to add data to your database and all your users can query the database to get the latest data. In this way, the users won't be making direct calls to the API. Thus, the number of API calls will be not be dependent on number of users trying to access the data.