Problem
Google Play Billing Library exposes BillingClient.showInAppMessages(), which displays a Google-rendered snackbar to subscribers in grace period or account hold. The snackbar contains a deep link to fix the payment method directly in Google Play.
According to Google's data, this single call produces a 2x increase in user recovery and growth in subscriber spend. It's one of the highest-ROI tools for reducing involuntary churn.
Currently, Adapty Android SDK doesn't call this API. As a developer using Adapty, I'd have to instantiate a second BillingClient myself just to make this one call — which feels like duplication of what the SDK should reasonably do for me.
Comparison
RevenueCat ships this since SDK v7 — they show Google Play's in-app messages automatically, with .showInAppMessagesAutomatically(false) to opt out. See their blog post.
Proposed API
An opt-in (or opt-out, your call) configuration on AdaptyConfig:
Adapty.activate(
this,
AdaptyConfig.Builder("PUBLIC_SDK_KEY")
.withInAppMessagesEnabled(true) // or default true with .withInAppMessagesEnabled(false) to disable
.build()
)
The SDK would then call showInAppMessages() on a suitable lifecycle event (e.g. when the host Activity resumes), using the TRANSACTIONAL category. Google handles the once-per-day cadence internally.
Why this fits Adapty
- It directly improves the metrics Adapty already optimizes for (recovered subscriptions, reduced involuntary churn).
- The
billing_issue_detected_at profile field already exposes the same state — adding the recovery UI piece closes the loop.
- It's a few lines of code, no UI to design (Google renders the snackbar).
Happy to discuss the API shape if useful.
Problem
Google Play Billing Library exposes
BillingClient.showInAppMessages(), which displays a Google-rendered snackbar to subscribers in grace period or account hold. The snackbar contains a deep link to fix the payment method directly in Google Play.According to Google's data, this single call produces a 2x increase in user recovery and growth in subscriber spend. It's one of the highest-ROI tools for reducing involuntary churn.
Currently, Adapty Android SDK doesn't call this API. As a developer using Adapty, I'd have to instantiate a second
BillingClientmyself just to make this one call — which feels like duplication of what the SDK should reasonably do for me.Comparison
RevenueCat ships this since SDK v7 — they show Google Play's in-app messages automatically, with
.showInAppMessagesAutomatically(false)to opt out. See their blog post.Proposed API
An opt-in (or opt-out, your call) configuration on
AdaptyConfig:The SDK would then call
showInAppMessages()on a suitable lifecycle event (e.g. when the host Activity resumes), using theTRANSACTIONALcategory. Google handles the once-per-day cadence internally.Why this fits Adapty
billing_issue_detected_atprofile field already exposes the same state — adding the recovery UI piece closes the loop.Happy to discuss the API shape if useful.