LinkedIn is where B2B budgets go, and it's also where B2B measurement quietly falls apart. The Insight Tag is easy to install and genuinely useful, right up to the moment you need to know which campaign produced the $500-a-month customer versus the $50-a-month one. At that point the default setup runs out of road, and most advertisers never notice — they just keep optimizing toward a number that treats every signup as identical.
The limitation people hit first
With the Insight Tag, conversions are defined by rules: someone reaches a URL or fires an event, and LinkedIn records a conversion with the value you assigned to that rule. Note the tense — the value you assigned to the rule, not the value of the transaction. If you sell a $29 starter plan and a $499 enterprise plan through the same signup flow, both land as whatever number you typed into the rule.
The consequence compounds quietly. Your reported cost per conversion looks stable while your actual revenue per conversion swings wildly. Campaigns that bring in small accounts look identical to campaigns bringing in large ones. And if you use value-based bidding, you're feeding the algorithm a constant where it expects a signal. It's the LinkedIn version of the hardcoded-value problem that shows up on Meta too, described in platform revenue vs actual revenue.
The fix: the Conversions API with real values
LinkedIn's Conversions API lets you send conversions server-side, which means you can attach the actual value at the moment you know it. One conversion rule then covers every plan, and reporting reflects reality. The high-level shape:
- Create a conversion rule in Campaign Manager set to accept conversions from the Conversions API rather than (or in addition to) the Insight Tag.
- Send the conversion server-side when the signup or purchase completes, including the conversion time, the true amount and currency, and identity fields for matching.
- Match on the strongest identifier you have. That means the LinkedIn click ID if you captured it, plus hashed email as a fallback. More on the click ID below, because it does most of the work.
- Attach the rule to campaigns and, once volume is adequate, let bidding optimize toward it.
The li_fat_id, and why it decides everything
When someone clicks a LinkedIn ad, LinkedIn appends a li_fat_id parameter to your landing page URL. It identifies that specific click. Capture it in a hidden field on your signup form, store it on the account record, and send it with your server-side conversion. Do that, and attribution is precise.
Skip it, and everything rests on email matching. That still works, but it's materially weaker in B2B specifically, because the email someone uses on LinkedIn is frequently not the email they use to sign up for a work tool. Personal LinkedIn account, corporate signup address, no match. You lose conversions you genuinely earned, and the campaigns that drove them look weaker than they are.
The practical rule: treat capturing li_fat_id at the form as the first step of the entire project, not an optimization to add later. It's the same lesson as the fbc parameter on Meta, covered in the fbc click ID guide— the identifier has to be caught at the moment of the click or it's gone forever.
Don't double count the Insight Tag
A predictable failure follows the upgrade: the Insight Tag rule is still firing on the thank-you page while the new server-side conversion is also arriving, and LinkedIn counts both. Your conversion volume doubles overnight, your cost per conversion halves, and someone celebrates a result that didn't happen.
Two clean options. Either point the Insight Tag rule and the API conversion at the same rule and dedupe them properly per LinkedIn's documented method, or retire the tag-based rule for that conversion and let the server be the single source. For most teams the second is simpler and less fragile. Whichever you choose, verify it a week later by comparing LinkedIn's conversion count against your CRM's count of new accounts — the same reconciliation habit described in how much discrepancy is normal.
What to send beyond the first conversion
Because LinkedIn is B2B, the signup is rarely the outcome that matters. The advertisers who get the most from this setup send multiple stages:
- Signup or demo request — high volume, good for optimization while you gather data.
- Qualified opportunity — the stage where a human confirmed this lead is real. This is usually the best optimization target for mid-sized B2B accounts.
- Closed won, with actual contract value — rare but enormously informative, since it teaches LinkedIn what a real customer looks like.
Optimize toward the deepest stage that has genuine weekly volume, and send the rest as signal regardless. LinkedIn traffic is expensive enough that the difference between optimizing for "anyone who fills a form" and "people who become opportunities" shows up quickly in the budget.
Lead Gen Forms change the problem
A large share of LinkedIn budget runs through native Lead Gen Forms, where the user never reaches your site at all. That solves one problem and creates another. The good part: LinkedIn captures the lead with profile data and you get high completion rates. The awkward part: there is no landing page, so there is no URL to read li_fat_id from, and your usual capture mechanism doesn't exist.
What works instead is the lead delivery pathway. Pull leads via the Lead Sync API or a CRM integration rather than exporting CSVs, because the API delivers the lead alongside the campaign and creative identifiers that produced it. Store those identifiers on the CRM record the same way you'd store a click ID, then use hashed email from the form when you send later-stage conversions back through the Conversions API. Attribution is a little coarser than click-ID matching, but it holds up well because LinkedIn form emails are usually work emails, which match far better than the personal-versus-corporate mismatch you get with website signups.
The failure mode to avoid: downloading leads as CSVs and uploading them into your CRM by hand. It severs every identifier, makes stage-based conversions impossible to attribute, and it's remarkably common in accounts spending five figures a month.
A realistic sequencing plan
If you're starting from a basic Insight Tag setup, this order gets value fastest with the least breakage:
- Week one:add li_fat_id capture to your forms and start storing it. Do this even if you build nothing else for a month. Identifiers you didn't capture are unrecoverable, and every week without it is permanently weaker data.
- Week two: stand up the Conversions API for your primary conversion with real values, and decide the dedupe question before you turn it on.
- Week three: reconcile a full week of LinkedIn-reported conversions against your CRM, and write down the ratio as a baseline.
- Week four onward: add the qualified stage, then closed-won, and revisit which stage bidding targets as volume allows.
Why LinkedIn attribution disagrees with everything else
Expect LinkedIn's numbers to look generous next to GA4 or your CRM, and know why before someone asks. LinkedIn counts view-through conversions by default, crediting itself when someone saw an ad and converted later without clicking. In B2B that's defensible — people genuinely see a sponsored post, remember the brand, and search for you a week later — but it means LinkedIn will claim conversions that GA4 assigns to organic search, and both are describing something real.
Two practical moves. First, look at click-through conversions separately from total conversions in Campaign Manager, so you know how much of the reported result depends on view-through credit. Second, decide once, explicitly, which number your team plans by, and hold to it. The failure mode isn't that one platform lies, it's that different people quote different numbers in the same meeting. The broader version of this argument is in why Facebook Ads and GA4 don't match, and it applies almost unchanged to LinkedIn.
The part that breaks later
Everything above is a build, and builds decay. The specific ways this one decays are worth knowing in advance: someone redesigns the signup form and the hidden li_fat_id field doesn't survive the redesign; an API credential expires and server conversions stop arriving with no visible error in Campaign Manager; a pricing change introduces a plan whose value never got mapped, so it reports as zero; or a marketing site migration strips query parameters before the form loads, which kills click-ID capture for everyone while the form itself keeps working perfectly.
Each of these produces the same experience: LinkedIn performance "gets worse" over a few weeks for no visible reason, and the team responds by testing audiences and creative. The cheap insurance is watching the relationship between three numbers you already have — conversions LinkedIn reports, new accounts in your CRM, and revenue booked — and treating a change in that relationship as a tracking incident rather than a performance one. Whether you check that manually each month or have something watch it continuously, the point is that nobody gets told when B2B attribution quietly stops working. You have to go look.
Stop finding out about broken tracking from your client.
Taglert monitors your pixels and conversion tracking 24/7 and alerts you the moment something breaks. 7-day free trial, no credit card.
Start your free trial