Skip to content

LinkedIn Ads says the campaign produced leads. Your WordPress form inbox shows names and emails with Direct or blank source. The click that paid for the visit never made it onto the form row.

That gap is common when you already track Google Ads with gclid or Microsoft Ads with msclkid but never captured the LinkedIn click ID. This post is the LinkedIn Ads focused parallel to the Microsoft guide. It explains what li_fat_id is, why hidden fields and the form-page URL alone miss it, what free Lead Source 1.0.9 stores on a LinkedIn Ads fill, how to test a tagged LinkedIn visit, and what the plugin still does not do.

Why LinkedIn Ads leads look blank in the form inbox

LinkedIn Ads can append a click ID to the landing URL when the ad platform tags the click. The visitor arrives with li_fat_id in the address bar. They browse a service page, then open your contact form on another URL. The form plugin saves the name and email. Many also store the current page URL. That is the form page, not the tagged arrival.

Hidden fields that only read the live URL go empty once the visitor leaves the landing page. The row still looks like a real lead. The paid click is gone. People then search for li_fat_id wordpress or linkedin ads click id wordpress form and assume LinkedIn Ads does not work with WordPress. Usually the form worked. The click ID never left the first page.

The same pattern shows up for Google, Meta, and Microsoft. Dedicated notes for those platforms are in GCLID Tracking in WordPress, fbclid Tracking in WordPress, and How Do I Track msclkid from Microsoft Ads in WordPress. The multi-platform overview is in Track Microsoft, LinkedIn & TikTok Click IDs in WordPress. This post stays on li_fat_id and on what free Lead Source 1.0.9 actually stores today.

What li_fat_id is and where it appears

li_fat_id is the LinkedIn Ads first-party click identifier that can appear on the landing URL after an ad click. When LinkedIn tags the click, a successful visit can land the visitor on a URL that includes li_fat_id as a query parameter. The value is a long opaque string. You do not decode it yourself. You store it with the lead so you can match the named person back to the LinkedIn Ads click later.

A test URL looks like /landing/?li_fat_id=test123. A real ad click uses a longer value generated by LinkedIn. The parameter lives in the landing page URL. It is not written into your form plugin by itself. Whatever tag LinkedIn places for its own ads reporting is a separate system. That tag does not fill your WordPress form fields for you.

Do not invent gbraid or wbraid for LinkedIn Ads. Today’s Lead Source readme lists li_fat_id for LinkedIn Ads. It does not list gbraid or wbraid.

Why hidden fields and the form-page URL alone miss it

A hidden field set to read the current query string only works when the form sits on the same page the ad opened. Most sites put the form on /contact/ while ads land on /offer/ or a service page. After one click away, li_fat_id is no longer in the address bar. The hidden field submits empty.

Cookie snippets that try to persist the value help only if every form has matching hidden fields, the script runs before Submit, and cache or consent tools do not block it. That is the same maintenance load as manual gclid or msclkid capture. Stack Overflow threads about passing gclid and msclkid into Gravity Forms keep hitting that pattern for click IDs in the same family.

Lead Source’s native path skips the per-form hidden field job for the form plugins it hooks. Capture still needs the browser script to run on the tagged page so a session cookie can hold the click ID until submit.

What free Lead Source stores on a LinkedIn Ads fill

The free Lead Source plugin hooks the form plugins you already use. Native hooks in 1.0.9 are Contact Form 7, WPForms, Gravity Forms, Ninja Forms, Formidable Forms, Fluent Forms, Elementor Pro Forms, Everest Forms, and Forminator. You do not add shortcodes or maintain hidden UTM or click ID fields for those builders.

Capture runs in the visitor’s browser. A small vanilla script reads the URL on page load and stores traffic source data in a first-party session cookie. On a successful native submit, the form hook attaches that session data to a Lead Source row. Caching FAQ on the listing says UTM capture runs in the browser, so server-side page cache does not stop the read when the script runs.

When li_fat_id is present, free Lead Source can store that click ID and label the traffic as LinkedIn Ads. It also stores the usual UTM keys when you set them (utm_source, utm_medium, utm_campaign, utm_term, utm_content) and the other click IDs named in today’s readme (gclid, fbclid, msclkid, ttclid). Landing page is the first page of the session. Referrer has a server-side fallback. Attribution is same session only. The cookie ends when the browser closes. It is not first-plus-last touch and not a 90 day window.

The overview is in How to Track Lead Sources in WordPress Forms. Same-session honesty is in Same Session Attribution vs 90 Day UTM Cookies. The click-to-dashboard flow is in How It Works.

Free 1.0.9 is enough for a basic li_fat_id stamp on a native fill inside one session. Lead Source Pro is US$99 a year when the real ask is lead journeys, per-source email routing, scheduled reports, or white label. Reach for Pro when journey depth or routing is the job, not for the basic LinkedIn Ads click ID on a hooked form.

How to test a tagged LinkedIn click into a hooked WordPress form

  1. Confirm LinkedIn Ads is appending li_fat_id on real ad clicks for the campaigns you care about. Without that parameter on the landing URL, WordPress has nothing to store.
  2. Install Lead Source from wordpress.org, finish the setup wizard, and confirm your form plugin is in the 1.0.9 native list.
  3. Open a private browser window. Visit a landing page with a test parameter, for example /services/?li_fat_id=test-linkedin-001 (and optional UTM keys if you use them).
  4. Confirm the address bar still shows li_fat_id. If it vanishes on first load, fix stripping before you blame the form. WordPress Stripping UTM Parameters covers that class of failure.
  5. Browse to the form the way a visitor would. Do not paste li_fat_id onto the form URL.
  6. Submit with a name you will recognise.
  7. Open the Lead Source dashboard row. Confirm the click ID, LinkedIn Ads label when present, and landing page match the tagged arrival for that session.

A manual test string proves capture. It is not a LinkedIn Ads conversion import value. Use a real ad preview click when you need a live Ads-side check.

What this plugin still does not do

Lead Source stores li_fat_id on the named WordPress row when the tagged visit is still the open session. It does not fire LinkedIn’s own conversion events for you. It does not replace LinkedIn’s ads tag or Campaign Manager. Installing it alone does not repair LinkedIn bidding when LinkedIn never sees a conversion event.

It does not upload offline conversions into LinkedIn. There is no offline upload button in free or Pro. Feeding stored click IDs back into LinkedIn Ads is a separate import or API job you run outside this plugin.

The free plugin does not keep a 90 day cookie (Lead Source Pro adds a configurable attribution window in days). It does not stamp first touch and last touch as two separate values. It does not capture gbraid or wbraid. It does not export CSV from free 1.0.9.

Cross-origin iframe embeds sit outside the native WordPress form hooks. That wall is covered in Why Embedded Forms and iFrames Lose UTM and Click IDs. AJAX thank-you misses for Google Ads tags are a different job in Why AJAX WordPress Forms Miss Google Ads Tags.

Short checklist

  1. Confirm real LinkedIn Ads clicks arrive with li_fat_id on the landing URL if you expect that value on the form row.
  2. Confirm the form is one of the nine native hooks in free 1.0.9, including Forminator if that is your builder.
  3. Install Lead Source, finish the wizard, and leave same-session capture on.
  4. Test a private window from a landing URL that carries li_fat_id, then browse to the form and submit.
  5. Read the Lead Source row. Expect li_fat_id and a LinkedIn Ads label when the session is still open.
  6. Do not expect Lead Source to fire LinkedIn conversion events or upload conversions into LinkedIn.
  7. Soft-check Pro only if you need journeys or per-source routing, not for the basic stamp.

Blank LinkedIn Ads leads in WordPress are usually a missing click ID on the form row, not proof that LinkedIn Ads failed. Free Lead Source keeps li_fat_id for the length of the browser session and attaches it when a hooked form submits. That answers which LinkedIn Ads click produced the person. It is not a promise that Campaign Manager already counted the conversion.

See where every lead comes from

Lead Source, the free lead source tracking plugin for WordPress, attaches the traffic source, UTM parameters, click IDs, landing page and referrer to every form submission — no hidden fields, no form edits. It works with nine WordPress form plugins and is free forever. Lead Source Pro adds full lead journeys, reports and per-source email routing.

Leave a Reply

Your email address will not be published. Required fields are marked *