Google Play
Connect your Google Play catalog, purchases, and real-time notifications.
The Google Play integration gives Nuxie access to subscriptions, one-time products, and purchase state. Real-time Developer Notifications (RTDN) tell Nuxie when a purchase changes; Nuxie then reads its current state through the Developer API.
Credentials
Prepare the service account
Create a Google Cloud service account, enable the Google Play Android Developer API, and grant the account access to your app in Play Console. Follow Google’s API setup for permissions.
The service account needs access in Play Console as well as Google Cloud; creating a Cloud credential alone does not grant access to Play purchase data.
Enter the connection details
In the app’s settings, choose Manage under Google Play to open the connection form. Enter:
| Field | Value |
|---|---|
| Package name | The app’s Android package name. |
| Service account JSON | The downloaded service account credential. |
| Google Cloud project ID | The project used for the connection. |
| Pub/Sub topic | Optional. The full RTDN topic name for notification delivery. |
| Pub/Sub push service account | Optional. The service account used to authenticate notification delivery when it differs from the API credential. |
The package name must match the Android app in Nuxie and the app making purchases.
Connect and sync
Choose Connect Account to save the connection, then sync the catalog under Products.
The topic and push-account fields configure notification delivery. The Developer API credential supplies catalog and purchase lookups. Connection management covers updating the account and credentials.
Real-time notifications
Google Play sends notifications through Pub/Sub. The Play Console topic, Google’s publisher permission, and an authenticated push subscription determine how those messages reach Nuxie. Saving a service-account credential does not create the topic or subscription in Google Cloud.
Nuxie creates a notification target when the connection’s package name matches the Android app. The endpoint has this path:
/connector-webhooks/google_play/{endpointId}
The endpoint belongs to the connection. It does not contain an app ID or a test/live suffix. Google Play’s purchase data determines whether an update belongs in test or live.
See Google’s RTDN setup for topic and publisher settings, and authenticated push configuration for subscription authentication. Include one-time product and voided-purchase notifications when they apply to your catalog.
Push authentication
Nuxie verifies the Google-signed identity token’s service account and audience. Without a separate push account, it expects the service account from the JSON credential.
If you also configure Pub/Sub verification token, append it as the token query parameter to the push URL. Keep the identity-token audience set to the original generated URL.
Supported notifications
RTDN includes purchases, renewals, cancellations, billing recovery, expiration, and voided purchases. Access follows the verified purchase state. A cancelled subscription can retain access until its paid period ends; a pending purchase does not grant paid access.
See Purchases and subscriptions and Google’s event reference.
Product sync
Open Products for the app platform and environment, then choose Sync Products. When the sync finishes, open a Product to review its store identifier, prices, and grants. Run the sync again after changing your Play catalog. Products and prices covers the next steps.
One Google product can contain multiple subscription base plans. Keep the monthly and annual choices distinct when configuring the offer, even when they grant the same Feature.
The connection can read subscription base plans and offers, one-time products and purchase options, regional prices, and purchase state. Ask Nuxie to inspect the catalog or a specific purchase when investigating an offer:
Show the base plans and introductory offers for our premium subscription. Compare the monthly and annual choices.
The store remains the source of the offer’s purchase terms. Nuxie’s Product-to-Feature mapping determines what the verified purchase grants.
Purchase sync
To report a purchase directly, send its token and customer identity to POST /purchase:
{
"apiKey": "pk_test_example",
"type": "playstore",
"distinct_id": "customer_123",
"purchase_token": "google-play-purchase-token",
"product_id": "premium",
"base_plan_id": "monthly",
"product_type": "subscription",
"reason": "purchase",
"customer_kind": "identified"
}
Use the app’s publishable SDK key and the same customer ID as its integration. The key’s environment must match the purchase. Nuxie verifies the token with Google before applying the result. See App API purchase reporting.
For one-time products, use product_type: "one_time" and the matching product identifier. A purchase option or offer should identify the offer that was actually purchased. Do not substitute an order number for purchase_token.
Purchase reporting associates the verified purchase with the customer. RTDN then keeps that state current when the store reports later changes. Your SDK integration also owns the app’s checkout and purchase lifecycle.
Refunds and voided purchases
Include voided purchase notifications in the RTDN configuration so Nuxie receives refund and revocation changes. The resulting access depends on the provider’s verified state and the Product’s entitlements.
Testing
Use license testers and a test track for purchase tests. A Play Console test notification checks message delivery without creating a purchase.
Nuxie determines the environment from Google’s purchase data: subscription testPurchase and one-time product testPurchaseContext identify test purchases. The webhook URL does not select the environment.
Troubleshooting
| Symptom | Check |
|---|---|
| Catalog or purchase lookups fail | Developer API enablement, service-account credentials, Play Console app permissions, and package name. |
| No notifications arrive | The topic in Play Console, Google’s publisher permission, the push subscription, and its generated endpoint. |
| Push delivery is rejected | Authenticated push, the configured service-account email, and the token audience. If a verification token is configured, include its token query parameter. |
| A test message succeeds but no purchase appears | Play Console test messages check delivery only. Make a license-tester purchase. |
| Direct purchase reporting rejects the environment | Match the public SDK key to Google’s verified test or live purchase environment. |
| A paid customer lacks access | Check customer identity, verified purchase state, and the Product’s Feature mapping. |
Use the purchase token, package name, customer identity, and environment together when investigating a transaction. The same Product name can appear in several plans or environments.
Related guides
Paywalls connects the catalog to an offer. Webhooks explains notification delivery and processing.