How PixelAlert works

There are two halves: a Chrome extension that watches while you browse your own store, and — for Pro — a check that runs once a day from our servers. This page describes exactly what each one does.

1. The extension

What it reads

When you enter your store address and browse your store, the extension watches the network requests your browser sends to a fixed list of tracking domains:

From each request it reads the event name, the pixel or account ID, the page path, the order value and currency, and the timestamp. That is what lets it say "your Purchase event fired, but it carried no value".

What it doesn't read

This isn't a promise of restraint — it's the shape of the tool. The extension looks at request URLs going to the domains above. It has no reason to touch, and does not touch:

One exception is worth naming, because it's the opposite of what you'd expect: some pixels put the customer's email address into the tracking request itself, sometimes unhashed. PixelAlert has to notice this, because sending unhashed customer data to an ad platform is one of the problems it reports. So it detects the value, strips it at the moment of capture, and keeps only a flag saying "this request contained an email". The value itself is never stored.

The Shopify order list

If you separately grant access to admin.shopify.com and open it, the extension reads your order list — order number, date, cancelled status, amount, currency — so it can compare your real sales against the purchases your pixels reported. Nothing else from the admin panel is read. This permission is optional and the rest of the product works without it.

2. The daily check (Pro)

Continuous monitoring can't run in your browser, because your browser isn't open at 3am. So once a day our servers visit your storefront and walk the same funnel — home page, a product page, the cart, the start of checkout — to see whether tracking still fires.

The whole point is to see what your customers' browsers see, so the scan behaves like a shopper. A scan that behaved like anything else would measure something other than your customers' experience.

We only scan a store after you prove you own it — and we keep checking that you still do. Adding a store to monitoring gives you a verification string. You place it in that store's theme. Our server fetches the store's home page and looks for the string. If it isn't there, the store is never scanned. Every daily scan re-checks it, so removing the string stops the scan within three days — three rather than one so a single failed fetch doesn't silently end your monitoring.

What stops the scan: removing the store from monitoring (which also deletes its monitoring data), removing the verification string from your theme, or your Pro subscription ending — a cancelled or expired licence drops its stores off the scan list entirely.

The scan visits public storefront pages only. It does not log in, does not place an order, and does not touch your Shopify admin. It runs once a day.

Kept from each scanNot kept
Date · your store domain · whether the funnel completed · how many Meta tracking requests were seen · whether a bot-challenge page appeared · the region the scan ran from · whether a consent banner was present Page content · screenshots · product data · customer data · the tracking request URLs themselves

From those counts we derive a small monitoring state per store: the last day tracking looked normal, how many days in a row something has been failing, and which alerts have already been sent so you aren't told the same thing twice. It's stored in Cloudflare Workers KV under keys named after your store domain.

How the scan appears in your logs

The ownership check that reads your theme identifies itself as PixelAlert. The daily funnel scan runs a real Chrome browser and sends a standard Chrome user agent — for the reason above: pixels and consent tools behave differently when they detect a bot, so an announced scan would measure the wrong thing.

3. What we can't see, and say so

Some things are structurally outside what any browser extension can observe, and the product says so rather than reporting them as clean:

That distinction runs through the whole product. "We measured this and it's fine" and "we didn't measure this" are different results, and PixelAlert never shows the second as the first.

4. Where your data lives

Everything the extension records stays in your own browser's local storage and is deleted after 60 days. The only things that leave your device are the licence check (your email address, to confirm your subscription) and the daily store check described above — and neither happens unless you subscribe to Pro. Full detail in the privacy policy.