Luseri

Luseri / Guides

Luseri: uninstall tracking for your Shopify app

Luseri tracks who uninstalls your Shopify app and why, from your Partner account with read-only access: retention by install month, how long stores stay before leaving, the reasons merchants give Shopify (translated when they come in another language), the stores that left, and an email when uninstalls rise sharply. Optional in-app tracking adds a health score for each store.

By , updated

See it in the demo

The Retention screen of the dashboard, with example numbers. It opens without an account.

What the Retention page shows

The Retention page answers how long merchants keep your app, when they remove it, and why. It is built from the install and uninstall events in your Partner account, so it covers your app's past, not only the days since you connected.

FigureWhat it measures
Still installed after 1, 3 and 6 monthsOut of the stores that installed in a given month, the share that still has the app at the start of the first, third or sixth month after it. It is averaged over the months of the last year old enough to tell, with the number of stores behind it.
Uninstalls on the first dayThe share of uninstalls that happen less than 24 hours after installing. A high share points at setup.
Retention by install monthA grid of the last 12 months: each row follows the stores that first installed in that month, each cell shows the share still installed at the start of a later month.
How long they stay before leavingUninstalls of the last 12 months by time since install: under an hour, 1 to 24 hours, 2 to 7 days, 8 to 30 days, 1 to 3 months, over 3 months.
Reasons given when leavingThe share of each reason merchants gave Shopify, over the last 12 months.

Retention here counts the stores that keep the app installed, paying or not. Churn in money and in subscribers is on the Metrics page: stores that uninstall per month, subscribers who cancel per month, and the share of recurring revenue lost to cancellations. How each one is computed is in how Luseri calculates MRR and churn. For what churn means for a Shopify app, read how to measure churn for a Shopify app, and to turn a churn rate into lifetime value, use the churn and LTV calculator.

The reasons merchants give Shopify

Since April 23, 2026, Shopify asks every merchant who removes an app to pick a reason first: testing multiple apps, store is closing or pausing, not using app now, not satisfied with app features, not satisfied with customer support, too expensive, not working properly with store, or other. The Partner API returns the answer with the uninstall event, in a reason field, next to a description field for any text the merchant adds.

Luseri files each answer under a short label, such as too expensive, technical problem or a feature is missing, and shows the share of each over the last 12 months. Uninstalls recorded before Shopify made the question mandatory can have no answer: they appear as "No answer", greyed out, so they do not hide the others.

When an answer arrives in another language, Luseri has it translated automatically by Claude, an AI model made by Anthropic, once per text, and keeps the translation. If the English version matches a reason it already knows, the answer is counted with that reason; otherwise it is shown translated into the language of your dashboard. Translation runs after each update with Shopify, and a long backlog is translated over several updates.

What to do about each reason, and how to read it with the timing of the uninstall, is in why merchants uninstall your Shopify app.

The stores that left

The Merchants page keeps every store that ever installed your app, including those that left, so a departure is a store you can look at, not only a number.

  • The "Uninstalls" list shows the stores that left in the last 30 days, and "All stores" includes every past departure.
  • Each store's page says when it installed and when it left, what it paid in total, its plan history, and the uninstall with the reason given.
  • Other lists catch departures before they happen: dropped trials, subscribers without a payment in 30 days, stores that closed, and at-risk subscribers when in-app tracking is on.
  • The Events page lists uninstalls as Shopify reports them, newest first, next to installs, subscriptions and payments.
  • Any list exports to a CSV file for a spreadsheet.

A merchant who closes or pauses their store is shown as paused, in the "Closed stores" list, not as an uninstall: Shopify reports a closure as a separate event, and the store comes back if it reopens.

An email when uninstalls rise

Once a day, after the update with Shopify, Luseri compares the uninstalls of the last nine days with those of the nine days before. It sends an alert when both conditions hold:

  • at least five uninstalls in the last nine days;
  • more than 15% more uninstalls than in the nine days before, which must have had at least one.

An example with made-up numbers: 7 stores uninstalled your app in the last 9 days, compared with 4 in the 9 days before. That is 75% more, so the alert goes out; 5 compared with 5 would not trigger it.

The alert is sent at most once a week per app, only to a confirmed address, in the language of your account, with a link to the Retention page. A link at the bottom of the email, or your settings, turns it off. The report sent every Monday also gives the week's uninstalls next to those of the week before.

Optional: in-app tracking and a health score

Uninstall reasons come after the fact. To see a store drift away before it leaves, you can add in-app tracking: a few lines of code on your app's server send a short message to Luseri each time a merchant does something that matters, such as finishing setup or using a feature. The key for these messages can only add events and gives access to none of your numbers.

Part of the health scorePointsRule
RecencyUp to 6060 for an action just now, falling steadily to 0 after 30 days without any
RegularityUp to 4040 for 12 active days or more out of the last 30, proportionally less below

Each store gets a score out of 100, shown on its page and in the store list. Paying stores under 60 make up the "At-risk subscribers" list, and the Events page shows the actions merchants take most. Events are erased after 400 days, and an app can send up to 50,000 a day.

Where the data comes from, and the limits

Installs, uninstalls, reasons and subscriptions come from Shopify's Partner API, read with an API client that only needs the "Manage apps" permission. Luseri's code sends nothing but read queries, and the token is stored encrypted. Connecting takes about five minutes and the history arrives in about a minute; the steps are on the MRR dashboard page.

  • Retention follows installs, not payments: a store that keeps the app on a free plan counts as retained.
  • A store belongs to the month of its first install. If it leaves and comes back, it counts as installed again from its reinstall.
  • A reason is the option the merchant picked in Shopify's list. It tells you what they said, which is not always why they left.
  • The Merchants page lists up to 8,000 stores. Beyond that, it keeps the stores that still have the app and the most recent departures, while every other page counts them all.
  • Luseri sends nothing to merchants who left unless you turn on the automatic email for uninstalls: it then goes out from your own Resend account, with your text, to the address your app sent through tracking.

Questions

Can I see why merchants uninstalled my Shopify app?
Yes. Since April 23, 2026, Shopify asks every merchant to pick a reason before uninstalling, and the Partner API returns it with the uninstall. Luseri reads it, shows the share of each reason over the last 12 months, and puts the reason on the page of each store that left.
When does Luseri send an uninstall alert?
When there were at least five uninstalls in the last nine days and more than 15% more than in the nine days before, which must have had at least one. The check runs once a day, and the alert goes out at most once a week per app.
Is a closed store counted as an uninstall?
No. Shopify reports a store closure as a separate event. The store is shown as paused, its subscription leaves your recurring revenue, and both come back if the store reopens.
Do I need to add code to my app?
Not for uninstalls, retention and reasons: they come from your Partner account. Code is only needed for the optional in-app tracking, which adds a health score for each store.
How much does Luseri cost?
Luseri is free for now, while it welcomes its first users. Its terms say that if it becomes paid, users are told by email at least 30 days before, and nothing is charged without their consent.

Sources