Skip to content

Tracking — one stream, two readers

Your company has one event stream and one ordered list of funnel stages. The funnel card, the bottleneck diagnosis, the website analytics, the button counts — all of it derives from that stream. There is no second tracking system, which is why two numbers in Autopilot cannot disagree.

What an ad platform receives is a separate branch with its own rules. Keeping those two apart is the point of this page, because they fail independently: your own measurement can be complete while Meta still sees almost nothing.

IN THE VISITOR'S BROWSER YOUR ONE SOURCE WHO READS IT Autopilot snippet 1 · page view, scroll 2 · URL match 3 · explicit call Meta pixel standard events sets _fbp reads _fbp Event stream one source for everything one stage list per company Server moments payment, registration reports every stage no browser involved Autopilot reads it funnel card bottleneck diagnosis website analytics button clicks every event Meta reads it retargeting audiences conversion optimisation its own attribution only mapped stages only with a match key standard events straight to Meta
Everything originates on the left and is read on the right. The branch to Meta runs on two separate lanes: Meta's own pixel reports from the browser, and your server forwards the stages you mapped. The dashed line is why the lanes belong together — Meta's pixel sets the cookie your server needs before it can attribute an event to anyone.

Three ways, and only three.

Automatically. The first stage fires on every page view, and the engagement stage on the first scroll or click. Nothing to wire.

By URL match. A stage carries a path fragment such as /cart and fires when the visitor’s address contains it. This is the only kind that can stop silently: rename the page and the stage stops counting while the traffic continues. Autopilot probes these targets — including the way a real visitor arrives, with a tracking parameter attached, because a cached page can answer a bare probe while the real click gets an error.

By explicit call. In the browser at a decisive action, or on the server for moments no browser sees — a confirmed payment, a completed registration.

To count clicks on a button or link, add one attribute. No backend change, no release, and it works on every page that carries the snippet:

<a data-lw-cta="app_store_download" href="...">Download</a>

Keep the names short and stable — renaming one starts a new series. If a button carries no attribute, the honest answer to “how often was it clicked?” is not measured yet, and the fix is the attribute, not an estimate.

Your stages are your language; Meta has its own. Between them sits an explicit mapping, one per company:

Your stageFires whenReported to Meta as
Sample requestedsample page visitedLead
Product viewedproduct page visitedViewContent
Cart reachedcart openedAddToCart
Checkout reachedcheckout openedInitiateCheckout
Purchasedorder confirmationPurchase

Without an entry, nothing is forwarded. What a platform learns to optimise toward changes what it buys with your money, so that stays your decision rather than a default.

Two conditions decide whether a mapped stage actually arrives. It must be mapped, and the visit must carry a match key — either the click id from an ad, or the _fbp cookie that a Meta pixel sets in the browser. Without one, Meta has nothing to attribute the event to and the report is worthless. That is also the privacy boundary: the cookie only exists where the visitor accepted marketing cookies, so no consent means no key means no forward.

Companies running on the managed Meta ad account share one pixel — Meta limits how many an account can hold. Two consequences worth knowing:

  • Totals you might read on the pixel itself are not yours alone. Everything Autopilot reports for your company is filtered to activity from your own domain, which is the only figure that means anything on a shared dataset.
  • Retargeting audiences are built with a rule that pins them to your domain for the same reason.

Bringing your own ad account gives you your own pixel and removes the question entirely.

Google works the same way on a separate lane, with the click id from a Google ad in place of Meta’s.

What is missing when the browser pixel is missing

Section titled “What is missing when the browser pixel is missing”

Autopilot’s own measurement is identical either way. What differs is how much of it Meta ever sees.

WITH OUR PIXEL ON THE SITE Website Event stream Meta server lane browser lane every visitor reaches Meta retargeting audience builds WITHOUT IT Website Event stream Meta server lane browser lane missing only ad clickers reach Meta no audience, no conversion learning
One edge is the entire difference. Without it Meta has no cookie to attribute a server event with, so what remains are the visitors who arrived from an ad anyway. Your own analysis stays complete in both cases.

On a site Autopilot builds, both pieces are installed for you. On your own site — a shop on WordPress, Shopify or anything else — two snippets belong in the page, and they do different jobs:

  1. The Autopilot snippet, which produces everything on this page. Without it there are no funnel numbers at all.
  2. The Meta pixel with your pixel id, which warms the dataset and lets audiences build. If your site already carries a Meta pixel of your own, add ours alongside it — several pixels on one page is normal and they do not interfere.

A cold pixel next to healthy visitor tracking is exactly this situation, and it is worth reading precisely: your measurement works, Meta is not learning from it yet.

  • Stages are independent counts of sessions, not strict subsets. A later stage can exceed an earlier one when visitors skip ahead — a homepage call to action reached without ever seeing the pricing page, for instance.
  • “Firing” is not “fully wired”. A silent final stage means unproven, not demonstrably zero. Autopilot says which of the two it is instead of reporting a confident nought.
  • Some signals depend on the browser cooperating. In-app browsers often refuse the leave-event that measures dwell time, so coverage is reported next to the average rather than quietly averaged over whoever answered.
  • Bot traffic is dropped at ingestion, which is why a synthetic check with a headless browser proves nothing.
Autopilot doesYou do
Seeds the stage list from your business model and keeps it firingApprove changes to it — they redefine what counts as a conversion
Reports which stages fire, and which are unprovenInstall the snippets on a site Autopilot did not build
Forwards the stages you mapped to the ad platformsDecide what a platform is allowed to optimise toward
  • Ads — what the measured result is worth, and what it is not
  • Website and shop — where the snippet lives
  • The controls — approvals, budgets and pauses