TikTok 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 TikTok Ads adds on top of that is a mechanical requirement: ttclid has to reach the record that holds the money, because TikTok 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 TikTok specifically needs to accept it.
Free30 minutesNo obligation
Specific to TikTok × Roofing
TikTok for roofers: homeowner reach is thin, test carefully
For roofers on TikTok, the conversion is an inspection request sent as SubmitForm through the Events API, with ttclid captured on landing and persisted to the job record. Signed contracts can follow from the job system with value. Most roofing buyers are older homeowners, so treat TikTok as a capped test.
TikTok's audience skews younger than the people who own homes and approve a roof replacement. Roofing content does well there, such as drone shots of tear-offs and crews working at pace, but that reach is mostly entertainment. The part that could convert is millennial first-time buyers inspecting an older house. Target the service area tightly and cap spend until signed jobs exist.
Send SubmitForm on the inspection request and a later server event when the job system marks the inspection attended. Optimize on SubmitForm while volume is small. Expect a wide gap to attendance, since TikTok form leads come from a scroll rather than from a homeowner with a leak. TikTok's instant lead forms keep the lead on-platform. If you use them, pull the leads into the job system the same day, because roofing leads cool within hours.
Storm-chasing contractors use TikTok heavily after major weather, and some jurisdictions regulate post-storm solicitation and roofing contracts. That is a legal question rather than a tracking one, but it shapes what you should be promising in creative. The common break is ttclid never being captured, because the form code was written for gclid and fbclid before TikTok was added.
TikTok · Roofing · what breaks
Why TikTok 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
Ttclid never reaches the record
TikTok's click identifier, appended to the landing URL. Capture it on landing and persist it exactly as you would gclid or fbclid — it's the strongest matching signal available and the most commonly missing one, because TikTok is often added to a stack that was built around Google and Meta.
TikTok · Roofing · the fix
What working looks like — TikTok · 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.
TikTok · Roofing · architecture
How TikTok 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
TikTok Ads needs a click to match
A standard event name, an event timestamp, a shared event ID, hashed and normalized user identifiers, and ttclid where available. Confirm the current required fields in TikTok's documentation before building.
- 3
The identifier: ttclid
TikTok's click identifier, appended to the landing URL. Capture it on landing and persist it exactly as you would gclid or fbclid — it's the strongest matching signal available and the most commonly missing one, because TikTok is often added to a stack that was built around Google and Meta.
- 4
Where it gets sent from
your job management system's record of signed contracts.
- 5
Deduplication and window
Send the same event ID from the browser pixel and the server event. The mechanics mirror Meta's closely enough that a team who has done one can do the other, but verify TikTok's current requirements rather than assuming parity — the deduplication window in particular isn't a figure we'll guess at. Verify the current attribution and import windows in TikTok's documentation. They differ from Google's and Meta's, and quoting a number here that goes stale would be worse than sending you to the source.
TikTok · 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. |
TikTok · Roofing · diagnose
Diagnostic order — TikTok · Roofing
- 01
Count records carrying ttclid
- 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 TikTok's own event diagnostics, plus a reconciliation against your records
TikTok is usually the third platform added to a stack, and it typically inherits whatever assumptions were made for Google and Meta. The most common result is that ttclid is never captured at all, because the capture code was written naming gclid and fbclid and nobody revisited it.
TikTok · Roofing · prove
How it gets proven — TikTok · 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.
- TikTok's own event diagnostics, plus a reconciliation against your records read directly, not inferred from an upload succeeding.
TikTok · Roofing · free audit
What we check in the free audit
- Count records carrying ttclid
- Hard-coded numbers everywhere
- Flat conversion values
- Storm spikes treated as performance
- Read TikTok's own event diagnostics, plus a reconciliation against your records
Checked against
your job management system's record of signed contracts
Free30 minutesNo obligation
TikTok · Roofing · when not to buy
When you don't need this — TikTok · Roofing
- If TikTok 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 ttclid.
- If TikTok is a small share of your spend, the effort is better spent making Google and Meta correct first — the same infrastructure then extends to TikTok as one additional tag rather than a separate project.
TikTok · Roofing · what we deliver
What gets built — TikTok · 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 Events API
Structurally similar to the other server-side conversion APIs: event name, timestamp, event ID, hashed user identifiers, event properties. TikTok's exact field names change more often than the other major platforms', so build against their current documentation rather than a blog post — including this one.
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
TikTok · Roofing questions, answered
Usually only as a small test. Most roof-replacement buyers are older than TikTok's core audience, so measure on attended inspections.
Use a direct integration or a webhook-based sync so the lead lands in the job system in minutes. Roofing leads go cold quickly.
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.
TikTok's click identifier, appended to the landing URL. Capture it on landing and persist it exactly as you would gclid or fbclid — it's the strongest matching signal available and the most commonly missing one, because TikTok is often added to a stack that was built around Google and Meta.
Structurally similar to the other server-side conversion APIs: event name, timestamp, event ID, hashed user identifiers, event properties. TikTok's exact field names change more often than the other major platforms', so build against their current documentation rather than a blog post — including this one.
By reading TikTok's own event diagnostics, plus a reconciliation against your records and reconciling against your job management system's record of signed contracts. An upload that succeeds is not an upload that matched.
More on TikTok · Roofing
- RoofingConversion tracking for roofing companies, from inspection to signed job
- TikTok · Home securityTikTok Ads conversion tracking for home security companies
- TikTok · Pest controlTikTok 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
- TikTok · Garage doorsTikTok Ads conversion tracking for garage door companies
- TikTok · Commercial cleaningTikTok Ads conversion tracking for commercial cleaning companies
- TikTok · Quote → closed jobHow to track quote request to closed job for TikTok Ads
- TikTok × Invoicing SystemHow to reconcile TikTok Ads against your invoicing system
- Simpro → TikTokConnecting Simpro to TikTok Events API
- TikTok · Tree serviceTikTok Ads conversion tracking for tree service companies
- TikTok · Septic servicesTikTok Ads conversion tracking for septic services
Free · 30 min
Get TikTok reporting what roofing companies actually earn
Free30 minutesNo obligation
