RevGlanceDocs

Google Play

Connect Google Play with a service account that reads your Play Console reports and the Play Developer API.

RevGlance reads the monthly sales and earnings reports in your Play Console's Cloud Storage bucket, and asks the Play Developer API about billing periods, refunds and, with real-time notifications, trials and cancels.

Connect

  1. In Google Cloud, create a service account in a project, add a JSON key and download it. Turn on the Google Play Android Developer API for the project.
  2. In Play Console, open Users and permissions, invite the service account's email and give it View financial data for your app.
  3. Copy your reports bucket from Download reports › Financial: the pubsite_prod_rev_… part of the Cloud Storage URI.
  4. Fill in the bucket, your app's package name (com.example.app) and the whole JSON key, then choose Connect Google Play. A new invite can take up to a day to reach the reports.

What the form asks for

FieldLooks like
Reports bucketpubsite_prod_rev_01234567890987654321
Package namecom.example.app
Service account JSONStored encrypted{ "type": "service_account", … }

The service account signs in with read-only access to Cloud Storage (devstorage.read_only) and the Android Publisher API.

Add the webhook

Without them, trials are invisible and a cancel only shows once a renewal is three days overdue. With them, RevGlance learns each subscription's purchase token and asks Play for its live state.

  1. In RevGlance, open Settings › Sources, open the Google Play source's menu and choose Webhook. Save a long random secret under Signing secret.
  2. In Google Cloud, create a Pub/Sub topic and allow Google Play to publish to it, as Play Console's Monetization setup page explains.
  3. Add a push subscription to the topic. Its endpoint is the webhook URL with ?token= and your secret on the end.
  4. In Play Console, open Monetization setup, enter the topic and send a test notification. RevGlance acknowledges tests and notifications for other apps without acting on them.

What to expect

  • Reports run late. Google posts them three to seven days after the sale. Sales come first; earnings replace them later with what Google paid you.
  • Anonymous customers. Play names no buyers. Orders of one subscription share an ID root (GPA.1234…), which becomes one anonymous customer. One-time purchases have no customer.
  • Refunds through the API reach back 30 days. Older refunds arrive with the earnings report.

How Google Play is counted

  • Google posts reports three to seven days late. Sales come first; earnings later replace them with what Google paid you, after its fee. Charges count before tax.
  • Each refund line is kept, partial ones too. Two partial refunds of one order spread over two monthly reports can collide, and one may be missed. Google does not say whether refunds are negative in its reports, so they are read as amounts refunded.
  • Refunds through the Play API reach back 30 days only. Older ones arrive with the earnings report.
  • Without real-time notifications, a cancel shows only as a renewal three days overdue, counted once the reports cover that day.
  • Test purchases are left out. A subscription on hold keeps counting; a paused one counts as churn until it resumes.
  • MRR is the latest order, before tax. An introductory offer counts at its offer price, and the regular price then shows as an expansion.
  • Failed charges are not reported, so that figure stays at zero.