Theme

Start for free

Extensions, plugins and apps

For Chrome extensions: which listing, post or search led to the Pro upgrade.

A Chrome extension is installed free from the Web Store and sells its Pro plan or licence on its own site, opened from the popup when someone hits a limit. Tally reads those payments and the website visits around them, so you can tell whether the people who upgrade first found you through the store listing, a post or a search.

Start for free

14 days free, no card needed.

01How they sell

  • FreemiumA free extension with Pro features enabled by signing in or entering a licence key bought on the website.
  • SubscriptionMonthly or yearly Pro plans; people who use the extension every day tend to take the yearly one.
  • One-offA lifetime licence key for users who won't take on another subscription for a small tool.

02Payments it reads

  • StripeCheckout opened from your pricing page, or a payments library for extensions that charges through your own Stripe account; those are Stripe payments and are read.
  • Lemon SqueezyLicence keys issued at checkout and checked by the extension; orders, renewals and refunds are read.
  • PaddleUsed by larger extensions selling team plans abroad; transactions and renewals are read.

What Tally can't read

  • Payments the Chrome Web Store once took for paid extensions aren't read, and neither are installs, ratings or uninstalls.
  • The snippet can't run inside the extension's popup or options page, since Manifest V3 doesn't allow remotely hosted code; only your website is counted.
  • Listings on the Firefox and Edge add-on sites can't carry the snippet, so visits there aren't counted, only the click through to your site.

03Where buyers come from

  • Chrome Web StoreStore search brings installs, not website visits; people reach your site later from the popup or the welcome page, with no referrer unless the link is tagged.
  • RedditRecommendations in productivity subreddits send visitors who install from your site's button and upgrade weeks later.
  • Product HuntA launch brings a day of installs; lifetime value shows whether those users ever pay.
  • YouTube roundupsVideos listing useful extensions send viewers who install, live on the free tier and upgrade when they hit the limit.

04What Tally answers

  1. How many site visitors click through to install?

    The click to the Web Store counts as a click to another site; add data-fast-goal to the button and the goals view gives completions, converting visitors and the revenue those visitors later brought.

    Goals and funnels
  2. Why do our upgrades come from Direct?

    The popup opens your pricing page with no referrer. Readable Direct sets returns from checkout and shared links apart from the rest, and a UTM on the popup's link gives those visits their own campaign.

    Readable Direct
  3. How long between install and upgrade?

    If your welcome page carries the tag, it becomes the first visit, and path to purchase gives the median time from it to the first payment, with the visits in between.

    Path to purchase
  4. Some licence buyers never seemed to visit the site. How are they linked?

    Coverage names the reason for each unlinked sale. Calling tally('identify', { email }) when someone signs in on your site lets a later payment link by email.

    Coverage
  5. Do Product Hunt installs ever pay?

    Lifetime value by first source shows customers, renewals and average revenue for the launch next to search and the store, once a few months have passed.

    Lifetime value

05Numbers worth watching

Goal conversion
The share of website visitors who click to install, by source, the first step before any upgrade can happen.
Median time to buy
Median time from first visit to first payment; for a freemium extension, it's how long the free tier holds people.
Coverage
The share of revenue linked to a visitor; upgrades opened from the popup need the pricing page to pass the visitor's id.
Renewals
Renewals by first source, which shows whether yearly Pro users from a channel come back for a second year.

06An example

Example

Path to purchase

Last 30 days · 105 of 124 new sales, the ones linked to a visitor

Median time to buy

3days

from their first visit

Median visits

3visits

the one they paid in included

Bought on the first visit

12%

13 of 105

Pages before buying

11

median pages viewed

Where buyers came from, and who closed the sale

105 new sales: where each buyer first came from, and the source credited with the sale.

50% of new sales were credited to the source that first brought the buyer in. Hover or focus a flow for its numbers.

  1. Googlecredited toGoogle26
  2. x.comcredited tox.com10
  3. Other (3 sources)credited toOther (3 sources)10
  4. Directcredited toOther (3 sources)9
  5. ChatGPTcredited toChatGPT9
  6. Other (3 sources)credited toNewsletter9
  7. Redditcredited toReddit8
  8. Googlecredited toNewsletter6

6 smaller flows in the table below.

Show the flows as a table
105 new sales: where each buyer first came from, and the source credited with the sale.
Brought them inCredited with the saleNew salesShare
GoogleGoogle2625%
x.comx.com1010%
Other (3 sources)Other (3 sources)1010%
DirectOther (3 sources)99%
ChatGPTChatGPT99%
Other (3 sources)Newsletter99%
RedditReddit88%
GoogleNewsletter66%
DirectGoogle55%
x.comGoogle55%
RedditGoogle33%
DirectReddit22%
ChatGPTGoogle22%
Other (3 sources)ChatGPT1<1%

Time from first visit to purchase

  1. 13Same visit: 13 sales (12%), bought in their first visit
  2. 13Same day: 13 sales (12%), a later visit, under 24 hours after the first
  3. 301–3 days: 30 sales (29%), 1 to 3 days after the first visit
  4. 194–7 days: 19 sales (18%), 4 to 7 days after the first visit
  5. 151–2 weeks: 15 sales (14%), 8 to 14 days after the first visit
  6. 102–4 weeks: 10 sales (10%), 15 to 28 days after the first visit
  7. 51–3 months: 5 sales (5%), 29 to 90 days after the first visit
  8. 03+ months: 0 sales (0%), 91 days or more after the first visit

Pages buyers saw before paying

Share of the 105 buyers who viewed each page before paying

  1. /pricing96%, 101 of 105 buyers
  2. /71%, 75 of 105 buyers
  3. /signup63%, 67 of 105 buyers
  4. /docs38%, 40 of 105 buyers
  5. /blog/stripe-fees26%, 28 of 105 buyers
  6. /compare21%, 23 of 105 buyers
  7. /changelog8%, 9 of 105 buyers
  8. /blog/launch-week5%, 6 of 105 buyers

Only new sales count here. Renewals and upgrades belong to the visit that won the subscription, so counting them would count that journey again.

Fig. 1Path to purchase on the example site. For an extension, the first visit is usually the welcome page or your homepage; read the median as the time the free tier holds people.

07Setting up

  1. Any HTML sitePut the tag on the welcome page your extension opens after install, as well as the homepage and pricing page.
  2. StripeSend the popup's upgrade button to your own pricing page, which creates the Checkout Session with tally_visitor_id from the website's cookie.
  3. Add utm_source=extension to the popup's links, so the visits it opens stop landing in Direct.

08Questions

  • Can Tally count installs from the Chrome Web Store?

    No. The store doesn't run your snippet. Tally counts visits to your own site, including clicks from it to the store listing.

  • Can the snippet run inside the extension?

    No. Manifest V3 doesn't allow an extension to load code from a remote server, so the tag belongs on your website, where the pricing and checkout pages are.

  • Our payments library charges through our own Stripe account. Is that read?

    Yes. Payments it creates in your Stripe account are Stripe payments. Without the visitor's id in their metadata, they link by email at best.