LinkedIn Ads conversion tracking for roofing companies
A roofing lead is worth nothing until an inspection happens and a contract gets signed, and that sequence takes weeks with a high drop-off at every stage. What LinkedIn Ads adds on top of that is a mechanical requirement: li_fat_id has to reach the record that holds the money, because LinkedIn can only credit a conversion it can tie back to a click it recognizes. This page covers both halves — what a conversion is in roofing companies, and what LinkedIn specifically needs to accept it.
Free30 minutesNo obligation
Specific to LinkedIn × Roofing
LinkedIn for roofers: commercial roofing, not residential
LinkedIn suits commercial roofing, not residential. The conversion is a bid request or site-survey meeting from a property or facilities manager, sent through LinkedIn's Conversions API with li_fat_id. The awarded contract is uploaded from the CRM with a stable deal ID, even though most commercial cycles outrun the attribution window.
Homeowners don't pick a roofer on LinkedIn, so residential roofing spend there is mostly wasted. Commercial roofing is different. Property managers, facilities directors, and general contractors are reachable by job title and company size, and a single TPO or metal roof on a warehouse can be worth more than a season of residential repairs.
Commercial roofing usually moves through a site survey, a bid and an award. It can take months, especially with budget cycles, so the award will often land outside LinkedIn's attribution window. Optimize on the survey or bid request. Upload awarded contracts with their real value and the opportunity ID for budget decisions and reporting, and expect batch uploads, which is why the stable ID matters.
Keep residential leads out of this flow. If the Insight Tag sits on a site that serves both markets, a homeowner's leak request can register as a LinkedIn conversion. Fire the LinkedIn event only on the commercial bid form. Also separate maintenance-contract renewals from new awards so a recurring client doesn't look like fresh demand. The common break is li_fat_id never being captured, because first-party tracking was not enabled on the Insight Tag.
LinkedIn · Roofing · what breaks
Why LinkedIn under-reports for roofing companies
- 01
Cheap leads that never become jobs
Because bidding was shown submissions.
- 02
Storm-season spikes distorting everything
Volume without a quality signal.
- 03
Calls arriving with no source
The dominant channel, unattributed.
- 04
Li_fat_id never reaches the record
LinkedIn's click identifier, available where first-party tracking is enabled alongside the Insight Tag. It's the least commonly captured of the major identifiers, largely because LinkedIn is usually a B2B afterthought in a stack built for Google and Meta.
LinkedIn · Roofing · the fix
What working looks like — LinkedIn · Roofing
Booked inspections measured
Not raw enquiries.
Signed jobs fed back to bidding
With contract value.
Calls attributed to campaigns
Down to keyword where data allows.
LinkedIn · Roofing · architecture
How LinkedIn and roofing companies actually connect
- 1
The conversion in roofing companies
Enquiry, inspection booked, inspection attended, contract signed. Contract value varies enormously, which makes value-based bidding worth far more here than in most verticals.
- 2
LinkedIn Ads needs a click to match
A conversion rule configured in Campaign Manager, a conversion timestamp, a value, and either li_fat_id or hashed user data to match on.
- 3
The identifier: li_fat_id
LinkedIn's click identifier, available where first-party tracking is enabled alongside the Insight Tag. It's the least commonly captured of the major identifiers, largely because LinkedIn is usually a B2B afterthought in a stack built for Google and Meta.
- 4
Where it gets sent from
your job management system's record of signed contracts.
- 5
Deduplication and window
Use a stable reference from your own records — the opportunity ID or lead ID — so the same conversion uploaded twice is recognised as one. Because LinkedIn conversions are frequently uploaded in batches from a CRM rather than fired in real time, duplicate uploads are a more realistic risk here than double-firing. LinkedIn's attribution and import windows differ from Google's and are worth reading directly. This matters more here than on any other platform, because B2B cycles routinely outrun every window available.
LinkedIn · Roofing · events
The conversion map for roofing companies
Four stages with a very wide value distribution at the end — a repair and a full replacement are the same lead and very different jobs.
| Event | What it means here |
|---|---|
| Enquiry (call or form) | Call tracking plus browser-side form events. |
| Inspection booked | Server-side from the job management system. |
| Inspection attended | Server-side. The reliable mid-funnel target. |
| Contract signed | Server-side with real contract value, uploaded as an offline conversion. |
| Job type | Repair versus replacement. The value difference is large enough to bid on. |
LinkedIn · Roofing · diagnose
Diagnostic order — LinkedIn · Roofing
- 01
Count records carrying li_fat_id
- 02
Hard-coded numbers everywhere
Roofing sites carry the phone number in headers, footers and images. Insertion can't reach most of them.
- 03
Flat conversion values
A $600 repair and a $28,000 replacement counted the same teaches bidding nothing.
- 04
Storm spikes treated as performance
Volume from a weather event isn't campaign quality, and mixing them corrupts the learning.
- 05
Read LinkedIn's conversion reporting, plus a reconciliation against your CRM
The B2B cycle is the real constraint. LinkedIn's audience is the one most likely to take six months to close, which frequently puts the outcome you actually care about outside any import window. Plan to optimize on a qualified mid-funnel stage and use closed revenue for budget decisions rather than for bidding.
LinkedIn · Roofing · prove
How it gets proven — LinkedIn · Roofing
Source of truth
your job management system's record of signed contracts
- Number insertion confirmed on every template.
- A live test call attributed to the correct campaign.
- Click ID present on a live job record.
- Signed jobs reconciled against the job system for a closed month.
- LinkedIn's conversion reporting, plus a reconciliation against your CRM read directly, not inferred from an upload succeeding.
LinkedIn · Roofing · free audit
What we check in the free audit
- Count records carrying li_fat_id
- Hard-coded numbers everywhere
- Flat conversion values
- Storm spikes treated as performance
- Read LinkedIn's conversion reporting, plus a reconciliation against your CRM
Checked against
your job management system's record of signed contracts
Free30 minutesNo obligation
LinkedIn · Roofing · when not to buy
When you don't need this — LinkedIn · Roofing
- If LinkedIn already reports conversions that reconcile against your job management system's record of signed contracts within a few percent, this is working and there is nothing to buy.
- Measure identifier coverage yourself first — pull your last hundred records and count how many carry li_fat_id.
- If your LinkedIn spend is small relative to your other channels, the honest answer is to get Google and Meta correct first. The same infrastructure extends to LinkedIn afterwards as an additional destination rather than a separate build.
LinkedIn · Roofing · what we deliver
What gets built — LinkedIn · Roofing
Call tracking with number insertion
Across every template, including vehicle-wrap-style footers.
Click ID written to the job record
At the enquiry, not at the sale.
Job management system as the source of truth
Inspections booked and jobs signed.
Contract value uploaded as the conversion value
So bidding optimizes toward big jobs.
Dispatch via the LinkedIn Conversions API
Server-side conversions, including offline outcomes from a CRM, sent against the click identifier or matched on hashed user data. Verify the current field requirements in LinkedIn's documentation — this API is newer than Meta's and has moved more.
Written guarantee
95%+ tracking accuracy
Measured against your job management system's record of signed contracts. Miss it and we keep working at no cost.
From $400 · See packages
FAQ
LinkedIn · Roofing questions, answered
Only for commercial roofing aimed at property and facilities managers. Residential homeowners aren't reachable there in a useful way.
Optimize on the site survey or bid request, and upload the awarded contract from the CRM with its value for reporting even if it falls outside the window.
Yes, where you can get it. The value spread between a repair and a replacement is wide enough that flat-value bidding leaves real money on the table.
It's the normal case in roofing. Number insertion attributes the call and the job system supplies the outcome.
Flag it. Volume from a weather event is not campaign performance, and letting it into the baseline makes every subsequent month look like a decline.
LinkedIn's click identifier, available where first-party tracking is enabled alongside the Insight Tag. It's the least commonly captured of the major identifiers, largely because LinkedIn is usually a B2B afterthought in a stack built for Google and Meta.
Server-side conversions, including offline outcomes from a CRM, sent against the click identifier or matched on hashed user data. Verify the current field requirements in LinkedIn's documentation — this API is newer than Meta's and has moved more.
By reading LinkedIn's conversion reporting, plus a reconciliation against your CRM and reconciling against your job management system's record of signed contracts. An upload that succeeds is not an upload that matched.
More on LinkedIn · Roofing
- RoofingConversion tracking for roofing companies, from inspection to signed job
- LinkedIn · Home securityLinkedIn Ads conversion tracking for home security companies
- LinkedIn · Pest controlLinkedIn Ads conversion tracking for pest control companies
RELATED GUIDES
More for roofing companies: other angles on the same outcome
- RoofingConversion tracking for roofing companies, from inspection to signed job
- LinkedIn · PoolsLinkedIn Ads conversion tracking for pool installation and service companies
- LinkedIn · Junk removalLinkedIn Ads conversion tracking for junk removal companies
- LinkedIn · Quote → closed jobHow to track quote request to closed job for LinkedIn Ads
- LinkedIn × Job SystemHow to reconcile LinkedIn Ads against your job management system
- ServiceTitan → LinkedInConnecting ServiceTitan to LinkedIn Ads
- LinkedIn · Self-storageLinkedIn Ads conversion tracking for self-storage facilities
- LinkedIn · Tree serviceLinkedIn Ads conversion tracking for tree service companies
Free · 30 min
Get LinkedIn reporting what roofing companies actually earn
Free30 minutesNo obligation
