Solved

Users often lose subscription when logging into an existing account

  • 27 January 2023
  • 2 replies
  • 223 views

Badge +6

My project offers a website and an app. Most users start on the web, then later download the app. They frequently encounter a problem in the following scenario.

Steps

  1. Website: Create an account. Upon login, the site asks the RevenueCat REST API if the user has an existing subscription. Since the account doesn’t exist in this scenario, RevenueCat creates it, according to the documentation.
  2. Device A: Install the app and receive an anonymous RevenueCat ID. Log into the account previously created on the web. As mentioned in this table, RevenueCat automatically merges the anonymous ID with the app ID. The user’s one alias slot is now used up.
  3. Device A after logout/reinstall, or on Device B: Receive a new anonymous RevenueCat ID. See an offer to upgrade (usually during app onboarding) and subscribe. Later, log into the existing account to access user data. RevenueCat does not merge the anonymous ID with the existing app user ID, so it now reports that the user does not have an active subscription. The user must “restore purchases” to unlock Premium again.

This affects a small percentage of my users, but enough of them that it is my most frequent customer support issue. For my most valuable customers, it’s a confusing and poor experience.


Possible solutions I’ve considered:

  • I could require sign-in before purchases are allowed. My testing has shown that this significantly reduces the number of new subscriptions, so this is very undesirable. Many users subscribe without ever logging in.
  • RevenueCat could change the behavior of ID merging/aliasing. It’s not clear to me why an anonymous ID wouldn’t be merged with an app user ID just because one other alias already exists.
  • I could manually merge the IDs, since RevenueCat doesn’t do it automatically in this scenario. In another thread, someone referenced a REST API method that can manually merge accounts, but I don’t see this documented anywhere.
  • Programmatically call “restore purchases” when the user logs in and loses their subscription. However, the documentation discourages this because it sometimes presents OS-level UI.
     

I could really use some help here. I’d love to address my #1 customer support problem without negatively impacting revenue. Thanks!

icon

Best answer by sharif 1 February 2023, 23:46

View original

2 replies

Userlevel 5
Badge +9

Hey Bryson!

In this case where you allow anonymous users to make purchases we usually recommend having a “restore purchases” button in your app that users can press themselves. This is similar to Apple’s recommendation, mainly because you don’t know who your users are at all times of the app lifecycle. You could even build in some special logic, for example if the user that logged out had purchases and was anonymous and the user that logged in does not have purchases and is not anonymous, you can offer to restore purchases.

I wouldn’t recommend calling restore purchases automatically whenever a user logs in because you would always be restoring purchases for customers who are simply logging in/out between different accounts.

Badge +6

Thanks for the suggestions, Sharif.

Reply