Analytics
See how each tool is used and what it earns, from a new device to a purchase, and why people remove it.
Analytics shows how your tools are used and what they earn: the devices they run on, the way from a new device to a purchase, payments and monthly recurring revenue, what opened the paywall before each sale, why people remove an extension, and how each build does. Open it from the Analytics tab of the dashboard, for all your tools together or, from a tool's page, for one.
This page covers each part, turning counting on, what is counted and when, the uninstall page, the plans, the CSV files, the API and the command line.
The parts
| Part | Shows |
|---|---|
| Overview | Revenue in the period, devices active this week, new devices, monthly recurring revenue and uninstalls, each against the period before, the funnel, and each part's own chart. |
| Revenue | Monthly recurring revenue each day, purchases and renewals, refunds, churn, and the share of trials that paid. In one currency at a time. |
| Devices | Devices active each day, in the 7 days and in the 30 days to it, new devices each day, and of each week's new devices, the share active again a day, a week and four weeks later. |
| Funnel | The devices that met the tool in the period, and how many of them met the paywall, opened checkout and paid. The median days from a first day to a purchase. |
| Features | What opened the paywall: each feature by its name, the free uses running out, or a paid-only tool. Its checkouts, purchases and revenue. |
| Uninstalls | Removals each day, those by someone paying among them, the reasons people gave, and what they wrote. |
| Versions | The devices on each build each day, and each build's purchases and removals. |
| Experiments | Two prices of a plan, or two headlines on its paywall, shown to new devices and compared. See Experiments. |
The period is 7 days, 30 days, 90 days or 12 months to today. Each day before today is counted at midnight UTC; today is counted as it stands.
Turning counting on
Counting is off for each tool until you turn it on. Open the tool's Configure → Settings → Analytics and switch on Count how it is used. Copies follow at their next check-in. Revenue needs no switch: it is read from your Stripe account.
The Chrome Web Store asks that an extension disclose what it collects, and tell the people who have it when that changes. Before you turn counting on, see Your data for what to do, and wording for your privacy policy.
Off again, copies stop counting and sending at their next check-in, and the uninstall page is taken away. What was counted stays for thirteen months. While a test runs on the tool, counting cannot be turned off: end the test first.
What is counted
Each copy of your extension checks in with Toolaby once an hour while it is used. For a tool whose counting is on, Toolaby counts from that check-in, for each device:
- the days it ran;
- its version;
- how many times the paywall was shown, and what opened it: a feature's key, the free uses running out, or a paid-only tool;
- the first checkout it opened, and what opened the paywall before it;
- a purchase it made, with the plan;
- the day it was removed, where the uninstall page opened.
A device is the id your extension already signs its requests with (Security). Analytics keeps no name, email address or IP address, and nothing about the pages your extension runs on.
Revenue needs nothing from the extension. It is counted from your Stripe account's events as they happen. The first time anyone in the workspace opens Revenue, Toolaby reads the last thirteen months of your tools' payments from Stripe, so the history is there from the first day.
Paywall counts, the uninstall page and what opened each checkout come from the client of 16 October 2026 or later. A copy built before it counts as an active device and nothing more. Run npx -y toolaby@latest upgrade <tool-id> and publish the build to count the rest.
Active devices
Active in 7 days is the number of devices that ran at least once in the 7 days to that day, as the Chrome Web Store counts weekly users. Active in 30 days is the same over 30 days. Coming back is, of the devices first seen in a week, the share that ran again 1, 7 and 28 days after their first day.
The uninstall page
When someone removes your extension, Chrome opens a page on your buyers' address. It asks, in the person's language, why they removed it: seven reasons and an optional note of up to 500 characters. A buyer whose licence or subscription is still running sees how to stop paying, with a link to their account page.
- The answer appears under Analytics → Uninstalls.
- When a paying buyer removes it, the workspace's members get an email, unless they turned Uninstalls off under Configure → Notifications.
- When the device held a licence or a running subscription, your endpoint gets
device.uninstalledwhen the page opens, and again with the answer (Webhooks).
The page comes with counting: it is set for every tool whose counting is on. To turn it off, or to send people somewhere after it, open the tool's Configure → Settings → When someone removes it. Copies follow at their next check-in.
A copy sets the page when its toolaby.config.js says uninstallPage: true, which wire and upgrade write. If your extension's code calls chrome.runtime.setUninstallURL() itself, they write uninstallPage: false, and Toolaby leaves Chrome's setting alone. A toolaby.config.js from before 16 October 2026 has no such line, and its copies never set it (Client reference).
Plans
| Part | Hobby | Pro |
|---|---|---|
| Overview, Revenue, Devices, Funnel | Yes | Yes |
| Features, Uninstalls, Versions, Experiments | Yes | |
| CSV files and the API | Yes | |
| History | 30 days | Thirteen months |
Configure → Plan always shows the current split. Every part counts on every plan: a workspace that moves to Pro sees its history at once.
CSV files
Each page with a table has a CSV button: the page's numbers for the period, for the tools in view. The tables are devices, cohorts, revenue, features, versions and uninstalls; their columns are listed under API.
API
GET /tools/{tool}/analytics answers the Overview's figures, and GET /tools/{tool}/analytics/{table} one table as rows. See API.
Command line
npx -y toolaby@latest analytics <tool-id> # the summary, for the last 30 days
npx -y toolaby@latest analytics <tool-id> --range 90d --table features --jsonAn agent gets the same through toolaby_analytics (Agents).
Retention
Analytics keeps each day's counts, payments and answers for thirteen months, and what it holds about a device until the device has not run the extension for thirteen months; then it deletes them. See Your data.