Skip to main content
Answer

Difference installs RC vs. App Store: Should I call Purchase.logout()

  • September 15, 2025
  • 3 replies
  • 69 views

Forum|alt.badge.img+1

I noticed that we had inflated install numbers on RC vs. App Store. I trust Apple more with the installs, so I went on to find the root cause.

We have a Flutter app and I call Purchases.logOut() when a user logs out. This sometimes happens automatically. I now read in the docs that logOut will clear the saved appUserID. This will generate a random user id and save it in the cache.

Since RC seems to count appUserIDs as installs, each log-out will count as an additional install. 

Question: Should I even call Purchases.logout when our users log out? They are still on the same device, with the same Apple ID (most likely). Seems to me that this is wrong and inflates our install numbers.

Best answer by alejandra-wetsch

Hey ​@ole_berlin

Thank you for reaching out!

You’re correct, calling the `Purchases.logout` method will generate a new anonymous ID, and therefore, a New Customer will be counted in your Charts. 

To answer your question, there’s no need to call the `logout` method when the user logs out of your app. This is mainly because users will be correctly identified when they log back in, even if they use a different App User ID. If you haven’t already, I recommend checking the “How to force only using Custom App User IDs” section in this document, where the flow is better explained.

I hope this helps. Please let us know if you have additional questions!

This post has been closed for comments

3 replies

alejandra-wetsch
RevenueCat Staff
Forum|alt.badge.img+6
  • RevenueCat Staff
  • Answer
  • September 17, 2025

Hey ​@ole_berlin

Thank you for reaching out!

You’re correct, calling the `Purchases.logout` method will generate a new anonymous ID, and therefore, a New Customer will be counted in your Charts. 

To answer your question, there’s no need to call the `logout` method when the user logs out of your app. This is mainly because users will be correctly identified when they log back in, even if they use a different App User ID. If you haven’t already, I recommend checking the “How to force only using Custom App User IDs” section in this document, where the flow is better explained.

I hope this helps. Please let us know if you have additional questions!


Forum|alt.badge.img+1
  • Author
  • New Member
  • September 18, 2025

Hey ​@ole_berlin

Thank you for reaching out!

You’re correct, calling the `Purchases.logout` method will generate a new anonymous ID, and therefore, a New Customer will be counted in your Charts. 

To answer your question, there’s no need to call the `logout` method when the user logs out of your app. This is mainly because users will be correctly identified when they log back in, even if they use a different App User ID. If you haven’t already, I recommend checking the “How to force only using Custom App User IDs” section in this document, where the flow is better explained.

I hope this helps. Please let us know if you have additional questions!

 

Hey ​@alejandra-wetsch thank you for your reply. 

I have a follow-up question: Do I have to force the SDK to only use App User IDs? Or is it enough to not call .logout() to prevent inflated numbers.

As I understand it, this would be the flow:

  • New user downloads the app → anonymous ID is generated
  • User signs up / logs in, we call Purchases.logIn(appUserId)
  • This associates the anonymous ID with our App User ID
  • User logs out → we don’t call Purchases.logout. → Nothing happens on Revenue Cat’s side. For Revenue Cat this is still the same person.
  • Another person logs in with another account on the same device. We have set transfer behaviour to “Transfer if there are no active subscriptions”. 

Now here is where I’m unsure: 

  • A new user signing in on the same device (and us calling Purchases.logIn) would mean what exactly? Is this counted as a new install (customer)? Or are they just merged?

And btw. your docs state:

When an identified user logs out of your application you should call the logOut() method within the SDK. This will generate a new anonymous App User ID for the logged out state. 

 

It might be good to tell people that this can inflate the numbers.

 

Thanks!


alejandra-wetsch
RevenueCat Staff
Forum|alt.badge.img+6

Hey ​@ole_berlin

Do I have to force the SDK to only use App User IDs? Or is it enough to not call .logout() to prevent inflated numbers.

There’s no need to force the SDK only to use App User IDs. Not calling .logout() would be enough. You should always call Purchases.logIn with your own App User ID as soon as you have one for the user (for example, immediately after login or sign-up).

A new user signing in on the same device (and us calling Purchases.logIn) would mean what exactly? Is this counted as a new install (customer)? Or are they just merged?

When another person logs in and you call Purchases.logIn with a different App User ID, RevenueCat switches to this new App User ID, which is counted as a new customer in RevenueCat. The previous and new customers remain distinct in the dashboard, unless a receipt transfer/aliasing occurs (which depends on your restore behavior setting). With your current restore behavior ("Transfer if there are no active subscriptions"), the receipt will transfer only if the previous user has no active subscriptions.

It might be good to tell people that this can inflate the numbers.

Thank you for your feedback! We will review it internally and make changes to our documentation.

I hope this helps!