In case it's helpful to anyone, https://openrouter.ai/google/gemini-3-pro-preview is useful to know about.
Adding another layer on top of Google's own APIs adds latency, lowers reliability, and (AFAIK) doesn't allow batch mode - but if that's tolerable, it avoids the mess that is Google Service Account JSON and Cloud Billing.
(I work at OpenRouter) We add about 15ms of latency once the cache is warm (e.g. on subsequent requests) -- and if there are reliability problems, please let us know! OpenRouter should be more reliable as we will load balance and fall back between different Gemini endpoints.