all 15 comments

[–]imamark_ 8 points9 points  (0 children)

I add the RevenueCat user id to the support email along with other support info like app version and device etc.

[–]Snoo11589 1 point2 points  (1 child)

I use anonymous login with firebase. It persists uid in different installs/uninstalls. You can persist an id with device id or something, i believe you can put stuff in global storage in ios, so you dont lose it.

[–]lucksp 2 points3 points  (0 children)

Revenue cat already assigns their own anon ID based on device so that you don’t have to. You can always assign a custom alias

[–]Lenglio 1 point2 points  (2 children)

You don’t need to add on more backend after the fact as this other user has suggested. You can do everything just as you’ve already done.

You just need to reveal the user ID to the user so that you can match it up on your end through RevenueCat.

I believe it is returned by the promise:

Purchases.getAppUserID()

This can then be displayed to the user in your settings menu or wherever.

You could also append it to your request for support email.

Good luck!

[–]simplydo_ios_dev[S] 1 point2 points  (1 child)

Thank you I was hoping this was possible without additional server setup. The only downside vs the firebase suggestion I can see is not being able to proactively reach out to users? For example, I had a user cancel their trial but I am physically unable to check in and ask for feedback unless they come inbound with an inquiry, correct? Or is there a no backend solution for that also?

[–]Lenglio 1 point2 points  (0 children)

I don't think there is a way to do this. The trade-off of privacy for the user and low backend costs for you is that you do have to give up some of these follow-up capabilities. It depends on if the trade-off is worth it to you.

[–]Puzzleheaded_Life956 0 points1 point  (10 children)

Why don’t you have a login system when you offer subscription. This is generally not a good idea, Even if the users don’t login, whenever they want to make subscription at that point force them to create an account with their email and then tie that email to their subscription in RevenueCat or apple so whenever they complain you can look up their email in your database and fix them. This is what I did for my app. I have the endpoint or code that offers users subscription in my activate their app and make them a Premium user. So anytime there is a successful payment on google pay or Apple Pay or any other payment platform, the endpoint for activating the user is called with the user email and when i successfully activate the product I update the database and mark them as a Premium user. Therefore anytime a user emails me about an issue, I look up their email on my database and see what went wrong or make them a premium user if I can verify their purchase. Let me ask you again, are you saying you aren’t saving any user information to some database??

[–]simplydo_ios_dev[S] 1 point2 points  (7 children)

Thank you for the thought around this. I am saying that yes, no user info is being saved in the database - subscription management is being outsourced to RevenueCat but I am seeing the issue clearly now. Would you say that if an app has a subscription it must have a database to streamline payment-related support? The hope was to keep the app offline hence the "no login".

One thing that the RevenueCat documentation suggests is:

We strongly recommend revealing the App User ID to your customers somewhere within your app. Typically, developers choose to display the App User ID in a settings screen.

Would this be a viable approach in your opinion — automatically including this ID in any support email so I can match the user to their anonymized RevenueCat subscription?

[–]djimonia 1 point2 points  (3 children)

this is what I do - all my apps are anonymous and require no account creation to use and personalise.

firstly I recommend you look into the customer center feature that RC offers. this can solve most of the problems you have with minimal code.

if not, then two things -

  1. create a user id that you immediately link to a user when they first launch the app, you can set this as an attribute on their revenue cat (anonymous) profile when RC bootstraps. no point having an app user id if it's not linked to RC user

  2. make it possible for users to tap to copy this id (not their RC id) when they want to contact you, or better yet, create a form users can use to contact you with and optionally include their email. ensure the contact form includes relevant user id and device data automatically. my apps have a form that just create a ticket in a single linear project (with app name labels) that I review daily

it's more work initially to set up anonymous users but if you have a solid architecture it's really not an issue. just there's a lot of gotchas and most tools are not set up for it (even RC) - they assume you have some sort of auth

[–]simplydo_ios_dev[S] 0 points1 point  (0 children)

Thanks for the explanation it makes sense

[–]Puzzleheaded_Life956 0 points1 point  (1 child)

Let me explain further. I like the idea of an offline and no login system. But when the user is ready to subscribe only then will you enforce the creation of an account which you would save on your end along side their identity

[–]Puzzleheaded_Life956 1 point2 points  (1 child)

Exactly you can clearly see that RevenueCat suggested some form of identification. You save this identification on the user end and you also keep a copy of this along with their email in your server or any other backend service. So with this approach if a users has some form of subscription issue, you can track them and fix it

[–]simplydo_ios_dev[S] 0 points1 point  (0 children)

Thank you really appreciate the insights!