Closed-Loop Attribution Explained

Closed-loop attribution links an ad click to a lead, a CRM stage and revenue, then sends that back to the ad platform. See where it breaks and how to test it.

Author
SourceTrack Team
Read Time
05 Mins read
Published Date
Updated
Closed-Loop Attribution Explained

Closed-loop attribution connects four things: the ad click, the lead it produced, what happened to that lead in your CRM, and the revenue at the end. It then sends the result back to the ad platform. The loop is closed when the platform learns which clicks became customers, not just which became form fills. It breaks at four hand-offs, and each one can be tested.

What does the loop look like, step by step?

  1. A person clicks an ad. The landing URL carries UTM parameters and a click id, such as gclid for Google Ads or fbclid for Meta.
  2. A tracker on your site records the visit, the parameters and the click id.
  3. The person submits a form, books a call or starts a chat. The lead is tied to that visit.
  4. Your CRM moves the lead through stages: new, qualified, opportunity, closed-won.
  5. The stage and the revenue are sent back and tied to the same visitor.
  6. The ad platform receives the outcome and links it to the original click.

Each arrow between those steps is a hand-off. If any one drops the identifier, everything after it is unlinked.

Where does the loop break, and what fixes each break?

Hand-offWhat goes wrongFix
1. Ad click to site visitThe click id is dropped by a redirect, a consent banner that blocks the tracker, or a landing page that strips the query string.Keep the id on the landing URL, test the redirect chain, and store the id on first arrival.
2. Form to CRMThe form saves the name and email but not the visit, so the CRM lead has no source.Pass the visitor id or the campaign fields into the CRM record at submission, or use an email match.
3. CRM stage to marketingSales changes stages in the CRM and the marketing tool never hears.Send each stage change out by webhook or export, keyed to the visitor id or email.
4. Revenue to ad platformThe sale closes weeks later, and nobody uploads it with the original click id.Upload closed-won deals as offline conversions with the stored click id and the real close time.

Hand-off 1: Is the click id surviving?

The click id is captured from the URL on arrival. Google describes this in its offline conversion documentation: GCLIDs are captured from URL parameters when a person clicks your ad. If your landing page redirects and drops the query string, the id is gone before any tracker sees it. Meta’s documentation on fbc and fbclid says to read the click id from the query string and not to change it, because the value is case sensitive.

Hand-off 2: Does the form carry the visit?

A form that stores only a name and an email loses the story of how the person arrived. The fix is either to keep the visitor id with the lead, or to match on email later. Both work. Matching on email only works if the person used the same email on the form that your CRM holds.

Hand-off 3: Do stage changes come back?

A lead is a promise. A closed-won deal is the result. The loop needs the in-between stages too, because a campaign that fills the CRM with unqualified leads looks fine at the form and bad at the opportunity stage.

Hand-off 4: Does revenue reach the ad platform?

Ad platforms optimise toward the conversions they are told about. If they only hear about form fills, they will look for more form fills. Google’s offline import help lists what a closed-won upload needs: the click id, the exact conversion name, and a conversion time with a time zone. Upload the same deal twice with the same time and it counts once.

What does SourceTrack do in this loop, and what does it not do?

Here is what SourceTrack covers, and the limits.

  • A first-party tracker records UTMs and click ids on the visit.
  • Form, booking and chat leads are captured. Chat leads are journey events and are not counted as conversions.
  • Deal or lead stages can be sent in by webhook. SourceTrack matches the event to the visitor by st_aid or by a known email.
  • Closed-won revenue is sent in through the Offline Conversion API.
  • Conversions API connectors send conversions to Meta and Google Ads on Starter and Growth, and to GA4, TikTok and LinkedIn on Growth. Check each platform’s own reporting to confirm what it received.

There is no native CRM integration. A fully closed loop needs a CRM, or another revenue source, that feeds stages and closed-won revenue back. SourceTrack does not provide that on its own, and nothing here should be read as two-way sync or call tracking.

How do you test your own loop?

Run one test lead through the whole chain. Use a throwaway email and a tagged link, such as ?utm_source=looptest&utm_medium=test&utm_campaign=loop_check.

  1. Open the tagged link in a private window. Confirm the URL still shows the parameters after any redirect.
  2. Submit your form. Check that the lead appears in your tracking tool with the source looptest.
  3. Check that the CRM record for that lead holds the source or the visitor id.
  4. Move the CRM record to a middle stage. Confirm the stage reaches your tracking tool and sits against the same visitor.
  5. Mark it closed-won with a test value. Confirm the revenue appears against the same visitor.
  6. If you use a connector, confirm the platform received the event and did not count it twice.
  7. Note the step where the chain broke. That step is your hand-off to fix.

Decision rule: if you cannot pass step 3, do not spend time on steps 4 to 6. They all rely on the lead carrying its source.

Where does the loop stay open no matter what?

Some journeys never enter it. A prospect who calls from a printed ad, or hears about you from a friend and types your address, has no click id. The loop also lags: if your sales cycle is 60 days, a click from this week has no revenue yet. Judge new campaigns on lead stages first, and judge revenue once enough deals have had time to close.

If you want to see the first part of this loop on your own site, how to track UTM parameters covers the tags, and the integrations page shows which tools connect.

If your events already reach your ad platforms through a server, server-side tracking explained covers what that fixes and what it leaves open. The tracking gap calculator shows how far a platform’s count sits from your own records.

Further reading

Frequently asked questions

Do I need a CRM for closed-loop attribution?

Yes, or another source that records what happens to a lead after the form. Without stages and closed-won revenue coming back, you can see which ads brought leads but not which ads brought customers.

How long does the loop take to close?

As long as your sales cycle. If a deal closes 60 days after the first click, you will not see revenue for that click for 60 days. Judge early campaigns on lead stages, not on revenue.

Is a closed loop the same as multi-touch attribution?

No. Multi-touch attribution is about how credit is split across a journey. Closed loop is about whether the journey is connected to the outcome, and the outcome to the ad platform. You can split credit in any model once the loop is connected.

What is the most common reason the loop breaks?

The click id is lost between the click and the form. If the form submission does not carry the visitor’s id, nothing later in the chain can be matched to the ad.

Related Blogs

How to Track ChatGPT and AI Referrals That GA4 Cannot Tie to Revenue

Classify visits from ChatGPT, Claude, Gemini and Perplexity, tie them to leads and revenue, and know what no tool can see.

SourceTrack Team

Attribution & Growth Engineering

28 Jul, 2026

Click IDs Explained: gclid, fbclid, msclkid and More

What gclid, fbclid, msclkid, ttclid and li_fat_id are, who adds them, what drops them, and how to check you still have one at conversion time.

SourceTrack Team

Attribution & Growth Engineering

20 Oct, 2026

Deterministic vs Probabilistic Attribution Explained

Deterministic attribution reads the link from an id that exists; probabilistic infers it from similar signals. What each gets wrong and what to ask a vendor.

SourceTrack Team

Attribution & Growth Engineering

26 Oct, 2026