Gmail API quota units cost - gmail-api

We are building a service that utilizes the Gmail API. In order to understand our costs as we scale, I would like to know how much it costs to use the Gmail API. I've followed the instructions at https://developers.google.com/gmail/api/v1/reference/quota through to the point at which it says:
If you have enabled billing for your project [we have], clicking Quota
takes you to a page where you can view and change quota-related
settings.
The only option on that page for changing our daily quota is to "Apply for higher quota"; however, clicking that opens a window that says:
Please be sure to review the existing quota limits to confirm you need
more than the daily default.... If you simply have a question on limits, please ask it on the Stack
Overflow forum
Thus, I am asking here: what is the cost per API unit when one's needs exceed the daily free quota?

The API isn't marked as "billable" meaning it's free up to a limit and there's no set/published pricing above that. If you are using your existing quota or are getting close and want to ask for more, I think best place is to ask on the quota request form. It's quite reasonable to ask for quota to provision for a few quarters of growth IMO and if you're migrating from some other API (e.g. IMAP, atom feed, DOM hacking) then obviously that should be quite reasonable to provision all that beforehand as well.

Related

"Daily Usage" Quota is a per-project limit?

I have a question about Gmail API limit.
About "Daily Usage" Quota of the URL below, Is this a per-project limit?
Is there a way to relax this limitation?
https://developers.google.com/gmail/api/v1/reference/quota
We currently develop services using the Gmail API for multiple Bussiness companies.
There is concern that it will exceed when the assumed total number of users becomes large, and I am asking such a question.
Is it possible to create different project for each customer and avoid the limit?
In that case, do I have to apply "OAuth Developer Verification" for each project?
https://support.google.com/code/contact/oauth_app_verification
Understanding the quotas can be a little hard. The way i remember is if the name has user in it its a user quota
This one is project based.
Daily Usage 1,000,000,000 quota units per day
This one is user based.
Per User Rate Limit 250 quota units per user per second, moving average (allows short bursts)
Some quotas can be increased you should check the quota section of the google developers console. under Enabled APIs and services click the api in question and go to the quotas tab in the new window. if there is a pencil icon you can increase it.

Datastore Quota Reached: Project quota page shows none reached

I'm receiving this error on our App:
The API call datastore_v3.Put() required more quota than is available.
However when I check out our quotas page, nothing is flagging as being over quota (or even close). We have billing enabled, we're not at our daily budget ($2 to test that it's not that - although normally $0) and these errors have been showing for over a minute (so I don't expect that it's the per-minute limits).
How can an API call fail due to being over quota, if everything seems to show that we're not over quota?
Budgets for API calls take a while to kick in. In this case, the project had hit the free limit for datastore operations (0.05M), however the increased daily budget had only just been enabled and so the app was still unable to use more of the operations.
This problem solved was solved after a couple of hours.
For others experiencing this issue, you can find the datastore free quotas here. Compare your current usage on the view in the question to these limits. If it looks like you've gone over then re-assess where your daily budget is (or whether you need so many datastore calls!).

Passing on goog-app-engine costs to the client

I have a google app engine application that uses the cloud datastore. My application usage is increasing, I cannot maintain it as “free” since I am paying
for the read/write operations to the datastore
the storage of data in the cloud
instance hours
I plan to charge “by the drink.” In other words, as I am charged for application usage, I will pass on that charge on to my clients. Before developing my own solution to do this, I realize that there must be countless others who have solved this problem. If so, what technique(s) have you employed?
Thank you in advance for your suggestions.
Unfortunately there is no silver bullet for this situation. Be advised, unless you really think this through keeping track of your users consumption might end up costing as much as the actual usage.
Without knowing anything else about your app its hard to help but my advice would be to use appstats to figure out the actual cost of a given service and charge the user per time accessed.
Most users do not like (actually, hate) to be charged for something they (a) do not understand, and (b) have no control over. If a phone company tells its customers to go ahead and use their service without telling them how much - exactly - they are going to pay, it will lose all customers in no time. How are you going to explain read/write datastore costs to your users, with indexed properties and all? How about query costs and instance hours? It's a difficult task even if all of your customers are software engineers.
I recommend charging users for something they understand, like creating a free and a premium version of your app with additional features, or charging per game, or per document processed (you did not tell us what your app is doing), etc.

Google App Engine, Billing "Minimum Spend $2.10 Per Week"?

When I try to enable billing in app engine for using blob store, I found a notice for Minimum Spend $2.10 Per Week.
The Minimum spend subtotal is in support of our new pricing model. The new model requires that you spend at least $2.10/week. This subtotal indicates the value beyond your other spend that we need to add to your contract. To make the transition to the new model smoother we are beginning to account for this minimum when we authorize new budget changes. Please note that you will not be charged for the minimum spend until our new model takes effect.
I search online and found no one ask about it. I use app engine just for a school assignment, so the usage won't be excess free quota. So, Must I pay $2.10 per week even I do not excess free quota? It sounds unreasonable.
As of April 2013, "We’re happy to announce that billing-enabled applications will no longer be required to spend a minimum of $2.10 per week. This means that you can enable billing for a free tier application and continue running within the free tier without concern that a spike in traffic will terminate serving (note that you can always specify a daily dollar budget). The minimum spend was originally intended to prevent abuse and ensure that we can offer a stable, reliable system with a free tier. We have determined that we can continue to support the free tier, without relying on the minimum spend. So, goodbye $2.10!"
Google has removed the $2.10/week for billing-enabled application from now onwards. You can enable billing for a free tier application and continue running within the free tier without concern that a spike in traffic will terminate serving.
http://googleappengine.blogspot.com/2013/04/app-engine-177-released.html
I enabled billing because I needed to add Google Cloud SQL. The notice said that minimal Cloud SQL was free for now. We're still in early development and aren't using any resources, so we're not over the quota for anything. I don't think I was ever advised by any page that I'd be billed even if under the free thresholds. In fact, I think one of the pages explicitly said I would not be.
It really isn't a lot of money. Probably not even if you add all the users who have been deceptively billed together, so it probably won't attract any lawyers. But unless I missed some notice (and even if I did if that notice was intentionally hidden) this is legally wrong, as well as ethically so.
It appears that their "new" system hasn't gone into effect yet so I would go ahead and use it. Besides, $2/week compared to the $150/book that I just spend isn't that bad. =/
As for enabling billing it appears that unless you need the new (per 1.5.3 version) unlimited blobstore then you should be fine with the free limits.

how is Billing for Channel API done?

I've chosen google-app-engine because of its scalability, and now I try to understand how much I will have to pay once I release the product.
I've looked back and forth in the google app engine documentation to find an answer for question and couldn't find. I found few details in the "Quotas" page, I found how much I can get for free and how much is the Billing Default Quota.
In Billing Page there are number for CPU, etc with Resource and Unit and how much it cost. But no where could I find how much will it cost me per channel calls/created, etc.
I can't even try to make calculations with what's in the Admin console, because the current numbers there now are 0 (since there are 2 users which are the programmers).
How can I be ready for the releasing of the product that (hopefully) will have a huge number of channels created daily?
Is there a page I missed, or is there a tool for calculating?
Thanks!
EDIT:
Moishe, thanks for the quick and readable answer. So here are some more questions:
1. Do you think - if needed - that I will be able to get even more quota for the number of channels? I saw there's a special form to ask for more quotas, but I'm not sure that includes the Channel-API feature...
2. Are there any posts you've made for "how to use channel-API efficiently"? I saw some stuff about reusing the tokens per user. Is there more?
Thanks again.
Creating a channel costs about 2.7 CPU-seconds. A CPU-hour costs $0.10. So, each channel created costs
(2.7 / 3 600) * $0.10 = $7.5 × 10^-5
So creating 1000 channels will cost $0.075, or 7.5 cents.
You'll also get charged the normal outgoing bandwidth costs for any data sent over a channel.
The CPU cost probably isn't the biggest concern; you're more likely to run into quota caps then running out of money. Paid apps are limited to 86400 channel creations/day (1/second).

Resources