Skip to main content
A conversion is attributed when we join it to an earlier visit that carried campaign context. Four things must hold, and only one of them is usually missing.

The four inputs

Every join needs a click ID or a utm_source, so a visit with neither is never attributable, whatever else is correct.

1. The landing URL

We capture these fifteen click IDs. We also capture utm_source, utm_medium, utm_campaign, utm_term, and utm_content. Confirm what the browser captured with window.datalyr.getAttribution().

2. Identity on the conversion

A conversion with no visitor_id and no anonymous_id is unattributable, so there’s nothing to look up.
Do not send your application user ID as visitor_id from a server. It never matches a browser identifier, so those conversions can never join a web session.

3. The lookback window

Our own lookup covers 90 days. Each ad platform gets a shorter window when a conversion is delivered. A Meta purchase 10 days after the click resolves to no fbclid, because the window closed. Attribution joins on clicks only, so a view-through conversion is never credited.

4. The journey breaks

Verify with one clean test

  1. Open a private window.
  2. Land on your page with ?utm_source=docs_test&utm_campaign=attr_check.
  3. Confirm the pageview in Events carries both values.
  4. Complete a purchase in the same window.
  5. Open Users and confirm the attribution block holds docs_test.
A successful delivery to Meta reports only that the platform accepted the request, so it never proves attribution. See Conversion not delivered.