For your stack

IndieBob for Chrome extension developers

The Web Store tells you how many people installed. It does not tell you which blog post, subreddit or tweet sent them. That gap is the whole reason this page exists.

A Chrome extension has a marketing problem shaped differently from a SaaS: the thing that converts is a Web Store listing you do not control, reached from a landing page you do.

IndieBob measures the part you control, and this page is explicit about where the measurement stops — inside the extension itself, the browser SDK is the wrong tool and we are not going to pretend otherwise.

Topic Your situationWhat IndieBob actually does

What the Web Store already tells you

Gap

The dashboard gives daily installs and uninstalls, impressions, and weekly retention, filterable by country, language, OS and time period, exportable as CSV. You can also opt the listing into GA4 — Google manages that account and grants you non-user-level data only.

[1] Chrome for Developers — Analyze your store listing metrics[2] Chrome for Developers — Use Google Analytics with the Chrome Web Store

Nothing better on installs. IndieBob has no view of the Web Store at all; read its numbers next to your install report, not instead of it.

apps/web/server/api/collect.post.ts

Which campaign caused the install

IndieBob

Those reports slice by country, language, OS and version — not by the UTM campaign on the link someone clicked to reach the listing.

[1] Chrome for Developers — Analyze your store listing metrics

On your own landing page the tracker captures UTM parameters on first pageview and keeps first-touch and last-touch attribution for that visitor.

packages/tracker/src/core/attribution.ts

The click on "Add to Chrome"

IndieBob

Discovery happens partly inside the store — impressions are counted when your item is featured in a collection or visited directly — which is a surface no script of yours runs on.

[3] Chrome for Developers — Discovery on the Chrome Web Store[1] Chrome for Developers — Analyze your store listing metrics

Outbound link clicks off your landing page are tracked, so "went to the Web Store" is measurable even though the install that follows is not.

packages/tracker/src/collectors/outbound.ts

Events from inside the extension

Even

Manifest V3 service workers have no DOM, and extension pages run under a strict content security policy.

[5] Chrome for Developers — Manifest V3 content security policy

The browser SDK is not the right fit there. Send events from your own backend with the server client (track and identify only — there is no server-side revenue call) or POST to the collect endpoint directly.

packages/tracker/src/integrations/server.tsapps/web/server/api/collect.post.ts

Money

Even

Chrome's program policies govern how an extension may accept payment from users; the billing itself runs through whichever processor you integrate.

[4] Chrome for Developers — Chrome Web Store Program Policies

If that processor is Stripe, connect it and MRR, churn and per-customer revenue are computed and linked back to the campaign. If it is not Stripe, IndieBob has no revenue for you.

packages/billing/srcapps/web/server/api/projects/[id]/revenue

Content that gets you installs

IndieBob

Chrome ranks items by "a heuristic that takes into account ratings from users as well as usage statistics, such as the number of downloads vs. uninstalls over time", and store search ranks on your listing metadata — so demand you create elsewhere is what feeds it.

[3] Chrome for Developers — Discovery on the Chrome Web Store

Blog editor with SEO scoring, drafts grounded in a facts sheet about your extension, and per-post revenue attribution once the tracker is on the landing page.

apps/web/server/utils/grounding.tsapps/web/server/api/projects/[id]/content

Competitor cells cite that company's own public page, with the date we read it. IndieBob cells name the file in our own codebase that implements the claim — if a feature is not in the repo, it is not on this page.

What this will not do for you

  • It cannot see installs. Nothing outside the Web Store can. The best available join is "clicked through to the listing", and you should read your install count next to it, not instead of it.
  • It will not run inside a Manifest V3 service worker. Use the server client or a plain POST from your own backend.
  • If you bill through anything other than Stripe, the entire revenue half of IndieBob is empty for you.

Worth it if your extension has a real landing page and a Stripe subscription behind it. Not worth it for a free extension with no site — there would be almost nothing for the tracker to measure.

Sources

  1. [1]Chrome for Developers — Analyze your store listing metrics — https://developer.chrome.com/docs/webstore/metrics · accessed 1 Sept 2026
  2. [2]Chrome for Developers — Use Google Analytics with the Chrome Web Store — https://developer.chrome.com/docs/webstore/google-analytics · accessed 1 Sept 2026
  3. [3]Chrome for Developers — Discovery on the Chrome Web Store — https://developer.chrome.com/docs/webstore/discovery · accessed 1 Sept 2026
  4. [4]Chrome for Developers — Chrome Web Store Program Policies — https://developer.chrome.com/docs/webstore/program-policies · accessed 1 Sept 2026
  5. [5]Chrome for Developers — Manifest V3 content security policy — https://developer.chrome.com/docs/extensions/reference/manifest/content-security-policy · accessed 1 Sept 2026

Products change. If something here is out of date or wrong, tell us and we will fix the page — the accessed dates are there so you can see how stale a claim might be.