Google Play integration · Beta

Google Play revenue and churn, from Play's own reports, for every Android app

Not every app runs through RevenueCat. SoulStack reads the sales and subscription reports Google Play keeps for your developer account, and puts each Android app's revenue and churn next to the rest of your stack.

This connector is in beta. It follows Google Play's documentation and is new, so if a number looks off, tell us and we'll fix it fast.

What SoulStack reads from Google Play

  • Revenue each day from Play's estimated sales report: what buyers paid before tax, for subscriptions, in-app products and paid apps
  • Refunds each day, netted out of revenue
  • Churn rate over the last 30 days, from Play's subscription stats: cancellations over the subscriptions active when those 30 days began
  • Prices in other currencies are converted to US dollars at that day's European Central Bank rate. A currency without a rate is left out, and the connection says what share that was
  • Only the app you name by its package name, even when one account holds several apps
  • Not MRR. Play's reports don't say what each subscriber pays today, so SoulStack doesn't guess. Connect RevenueCat for mobile MRR

How it feeds your health score and alerts

Churn is part of each app's health score, and churn above your limit opens an alert. Revenue is what the cost ratio is measured against. MRR growth needs an MRR source such as RevenueCat or Stripe; without one, the score is worked out from the inputs you have.

Access it needs

A Google Cloud service account's JSON key, your reports bucket ID, and the app's package name. In Play Console the service account gets one account permission: View financial data, orders, and cancellation survey responses. SoulStack only reads the reports bucket with it.

Connect Google Play in a few minutes

  1. In Google Cloud, open IAM → Service accounts, create one, then Keys → Add key → JSON. It needs no Cloud roles.
  2. In Play Console, open Users and permissions → Invite new users, paste the service account's email, and give it View financial data, orders, and cancellation survey responses. Google can take up to a day to apply it.
  3. In Play Console, open Download reports → Financial and press Copy Cloud Storage URI.
  4. Paste the JSON key, that URI and the app's package name into SoulStack when you connect Google Play to an app. SoulStack then reads up to the last 90 days of reports.

Syncs every 6 hours, plus whenever you press Sync now. Play adds sales to its monthly report a few days after they happen, so recent days fill in over the following syncs. Today is never read until it's over.

Questions

Should I connect Google Play if I use RevenueCat?
For MRR, RevenueCat is enough. Google Play adds what RevenueCat doesn't give SoulStack: daily revenue, refunds and churn. Nothing is counted twice.
Why is there no MRR from Google Play?
Play's reports give subscriber counts and today's list prices, not what each subscriber pays. Existing subscribers can keep older prices, some prices include tax, and trials aren't split out. Rather than show a number that could be off, SoulStack shows revenue and churn.
Does it read my customers' details?
It reads Play's sales report, which lists orders with the buyer's city and country. SoulStack only adds up amounts per day and keeps nothing about buyers.

Works well with

Stripe, RevenueCat, App Store Connect, PostHog, Sentry, OpenAI, Anthropic, OpenRouter, Vercel and Supabase. Each one adds another part of the health score, so the more you connect, the more of the picture SoulStack can see.

See which app needs you first.

Free for 1 app. No card needed.

Start free
PACHIFUNK OÜ · Tornimäe tn 5, Tallinn, Harju maakond, 10145, Estonia