Connect Google Play
Connect Android apps to RevenueHog with a read-only Google Cloud service account, then route Play real-time developer notifications through Pub/Sub push.
Android apps connect with one Google Cloud service account. Play's real-time developer notifications then feed the same live feed, MRR, alerts, widgets and digest as your App Store apps. No SDK is needed, and the key only reads.
Create a service account
In Google Cloud
Create a service account in any project and download a JSON key for it.
In Play Console
Open Users and permissions, invite the service account's email, and grant it, for the apps you want to track: View app information and download bulk reports, and View financial data, orders and cancellation survey responses.
Read-only by design
Those permissions read orders, subscriptions and the product catalog. They cannot refund, change prices or touch a listing. If a permission is missing, Google's own error says which, and RevenueHog shows it verbatim.
Connect the apps
Under Settings → Connections → GOOGLE PLAY, paste the JSON key into service account key (json) and your package names, one per line (Google has no API that lists your apps). A name after the package is optional; it defaults to the package:
com.example.app
com.example.pro Pro editionPress Connect Google Play → ("Checking with Google…"). RevenueHog checks the key and each package with one read before saving, then creates one Android app per package. Add more packages to a connection at any time ("Added N apps."). An app that sends a notification before you add it appears on its own.
Errors
| Message | Fix |
|---|---|
"<package>" isn't a valid package name (for example com.example.app). | Check the spelling. |
| Add at least one package name. | Enter one per line. |
| Google rejected the key: … | Download a fresh JSON key. |
<package>: the service account can't read this app's orders… | Grant "View financial data, orders and cancellation survey responses" for that app. |
| The stored key can't be read. Disconnect and connect again. | Reconnect. |
Point notifications at RevenueHog
The connection card shows a push url with Copy push URL. Until something arrives it reads "No notification yet. Finish the steps below, then press Send test notification in Play Console."
Create a topic
In Google Cloud, create a Pub/Sub topic and grant google-play-developer-notifications@system.gserviceaccount.com the Pub/Sub Publisher role on it.
Add a push subscription
Add a push subscription with the push URL. Turn on authentication, choose the same service account you pasted, and leave the audience blank.
Connect Play Console
In Play Console, Monetization setup, enter the topic name under Real-time developer notifications. Do this for each app; they can share one topic.
Test
Press Send test notification. The card's line turns green and reads "Last notification …" when it arrives.
RevenueHog accepts a push only when Google signed it (OIDC) as your service account, with the push URL as audience. Your own server can subscribe to the same topic with a second subscription: Pub/Sub delivers to both.
What lands where
| Play event | Badge |
|---|---|
| Purchase | BUY, or TRIAL when it starts a free trial |
| First paid renewal after a trial | CONV |
| Later renewals | RENEW |
| Cancellation, expiry, revocation | CHURN |
| Payment failing in grace or on hold | RISK |
| Refund | RFND |
| Restore before expiry | Nothing (no charge) |
Amounts come from each order: the charge net of tax, and as proceeds the developer share Google reports, so there is no fee estimate where the order is known. A partial refund's fee share is not reported, so it stays unknown. MRR counts active subscriptions, canceled ones until they expire, and those in grace; account hold and pauses are excluded, as in Play Console.
Daily sync
At 08:28 UTC, per connection: refresh product titles and base-plan periods, re-enrich rows recorded while Google was unreachable, import refunds from the last 30 days (as far as Google keeps them), re-read subscriptions whose expiry passed to catch missed renewals and expiries, and roll up recent days. Revenue starts on the day you connect. A 401 or 403 from Google marks the connection revoked; the app page then reads "The service account key no longer works. Paste a new key in Settings to reconnect."
Not in scope for Android apps
App Store reviews, TestFlight, store funnels and version tracking are App Store surfaces; an Android app does not show them.
Disconnect
Press disconnect, then Confirm disconnect. "Disconnected. The apps and their history are kept under Hidden apps."
Related
Last updated on
Event forwarding
RevenueHog relays Apple's exact signed notification payload to your own endpoints, with per-environment URLs, retries, paused dead URLs and verification.
Connect Stripe
Connect a Stripe account to RevenueHog with a read-only restricted key, split products into web apps, import history, and then choose webhook or polling.