Skip to main content
Question

Google Play rejection — how can I give reviewers free Pro access with anonymous RevenueCat users?


Forum|alt.badge.img

Hi everyone,

I'm an independent developer building a health companion app with Expo/React Native and RevenueCat.

My Android update has been rejected by Google Play because reviewers cannot access the full app without going through the subscription paywall.

Here's my setup:

  • RevenueCat SDK 10.4.4

  • No user accounts or login

  • Anonymous RevenueCat customer IDs

  • Google Play subscriptions with a 14-day free trial

  • Premium features behind a mandatory paywall

  • The app already supports RevenueCat promotional entitlements

Google requires reviewers to access all premium features without entering payment details or making a purchase.

I'm looking for the simplest solution that doesn't require maintaining a separate backend, ideally using RevenueCat itself.

My questions:

  1. Is there a RevenueCat-native way to provide Google reviewers with complimentary Pro access when their anonymous customer ID isn't known beforehand?

  2. Could RevenueCat Offering Metadata be used to enable/disable reviewer access remotely?

  3. Is there a secure way to implement an access code without exposing it in client-readable metadata?

  4. Could promotional entitlements be granted automatically to reviewers without linking them to a shared RevenueCat customer ID?

  5. Has anyone successfully solved this particular Google Play rejection, and what approach did Google accept?

Ideally, I'd like to implement the solution once and then switch reviewer access on or off for future app reviews without releasing another build.

I'd really appreciate hearing from anyone who has dealt with this exact situation.

Thanks!
Julia

4 replies

Forum|alt.badge.img+5
  • Active Helper
  • October 27, 2026

Offering Metadata can control a flag your app already handles, but the metadata is readable through the SDK. It won’t identify Google reviewers or keep an access code secret.

Promotional entitlements need a specific App User ID. A manual grant works once you know that ID, but not for an unknown reviewer’s fresh install. Anonymous IDs can also change after reinstalling.

For automatic grants without a shared customer ID, one option is a small serverless endpoint that validates a reusable reviewer code and grants Pro to that installation’s current RevenueCat App User ID using the grant API. Keep the RevenueCat secret API key on the server. That still needs a backend component; Offering Metadata alone cannot securely validate the code.

One important catch: Google’s requirements explicitly cover apps with no login but a subscription paywall. Add clear instructions under App access and keep the reviewer access working for future reviews, rather than switching it off after approval. They require reusable access available at all times. This setup isn’t a guarantee of approval.


Forum|alt.badge.img
  • Author
  • New Member
  • October 27, 2026

Thank you so much for your detailed explanation — it`s very helpful!

I'm considering a hidden access-code option that would grant Google reviewers 30 days of complimentary Pro access through RevenueCat, with automatic expiry.

The code itself would remain valid for future reviews, and I'd be able to change it when necessary.

Do you think this would satisfy Google's review requirements? And is there anything I should watch out for with repeated redemptions or entitlement expiry?

Thanks again for your help!


Forum|alt.badge.img+5
  • Active Helper
  • October 27, 2026

I wouldn’t treat a 30-day grant as a guarantee of approval. Google requires reusable review access available at all times. If you use an expiry, make sure reviewers can redeem again after it expires, on the same installation and on fresh installs. Keep the code working and explain exactly how to reach the code-entry screen in App access.

RevenueCat promotional grants expire automatically and don’t turn into paid subscriptions. Use an explicit end_time_ms for the expiry. Repeat grants don’t simply stack another 30 days: later grants can extend access to the latest expiry, and the grant API treats requested expiry times within two hours of an active promotional grant’s expiry as duplicates.

Keep code validation and the secret API key on your server. Make retries safe without making the reviewer code single use. After a successful grant, invalidate the CustomerInfo cache, fetch CustomerInfo again and unlock based on the active Pro entitlement.

Before resubmitting, test redemption while access is active, after it expires, and on a fresh install with a new anonymous ID.


Forum|alt.badge.img
  • Author
  • New Member
  • October 27, 2026

Thank you so much!