Connect Google Play

Connecting Google Play gives Pulse your Android subscription revenue and the events behind MRR and LTV. It needs a Google Cloudservice account that Play Console recognises, plus a Pub/Subsubscription if you want events in real time.

Pulse only reads. It does not change prices, publish releases, alter subscriptions or acknowledge purchases on your behalf.

1. Create a service account

In the Google Cloud console, create a service account and download its JSON key(it must contain client_email and private_key).

2. Grant it access in Play Console

Play Console → Users and permissions → invite the service account’sclient_email and grant View financial data andView app information. These two are what the revenue and subscription reads need; anything broader is unnecessary.

A note on honesty about scopes: the service account authenticates with Google’sandroidpublisher and pubsub scopes, which are not themselves “read-only” scopes — Google does not offer read-only variants. What actually bounds access is the permission set you grant in Play Console above, so keep it to those two.

3. Optional: real-time developer notifications

For subscription events as they happen rather than at the next sync:

  1. Create a Pub/Sub topic in your Google Cloud project.
  2. Grant google-play-developer-notifications@system.gserviceaccount.com thePub/Sub Publisher role on that topic — this is how Google is allowed to publish to it.
  3. Play Console → Monetization setup → set the topic name.
  4. Create a pull subscription on the topic and give your service account access to it. Pulse pulls; it does not need a public endpoint.

4. Paste it into Pulse

Open Connections → Google Play and paste the service-account JSON, your package name and the Pub/Sub subscription if you created one. The JSON is stored in Google Secret Manager; the database keeps only a reference.

5. Verify

Ask “verify my data sources” in chat, or run pulse_verify from your agent. If the connection reports an authorization error, it is almost always the Play Console invitation from step 2 — a service account with a valid key but no Play permissions authenticates fine and then reads nothing.

Related