Skip to main content
Meta · RoofingMeta × Roofing

Meta 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 Meta Ads adds on top of that is a mechanical requirement: fbclid and _fbc have to reach the record that holds the money, because Meta 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 Meta specifically needs to accept it.

Free30 minutesNo obligation

Specific to Meta × Roofing

Meta for roofers: instant-form leads that become signed jobs

For roofers on Meta, send signed jobs, or attended inspections at lower volume, through the Conversions API from the job system. Match on the instant form's lead_id or on _fbc plus hashed phone and email. Pass contract value with the event so Meta learns which leads become replacements rather than repairs.

Roofers usually advertise on Meta through instant forms offering a free inspection, and those forms produce lots of names with phone numbers that never pick up. Without feedback, Meta keeps finding more people who tap Submit. Send stage events back from the job system, inspection attended and contract signed, keyed to the lead_id, and check whether conversion-leads optimization is available so Meta targets the people who reach the roof.

Meta's 7-day click window is short for a replacement decision that takes three weeks. Optimizing directly on signed contracts will look sparse in-platform even when the campaign is working. Optimize on inspection attended. Send the signed job with its contract value for reporting and value-based learning, and judge the channel against the job system rather than Ads Manager.

Roofing is not a restricted category on Meta. Roof financing ads are different: an ad promoting payment plans can fall under Meta's special ad category for financial products, which removes age and zip-code targeting. Check before launching a financing offer. The common break after a storm is door-knocking canvassers entering leads into the same job system, so offline leads with no ad behind them get sent to Meta as campaign conversions.

Meta · Roofing · what breaks

Why Meta under-reports for roofing companies

  1. 01

    Cheap leads that never become jobs

    Because bidding was shown submissions.

  2. 02

    Storm-season spikes distorting everything

    Volume without a quality signal.

  3. 03

    Calls arriving with no source

    The dominant channel, unattributed.

  4. 04

    Fbclid and _fbc never reaches the record

    fbclid arrives on the landing URL and is normally written into the _fbc cookie. If it isn't captured on landing, _fbc never exists — and _fbc is the strongest click signal Meta has, so its absence caps your match quality regardless of what else you send. Forward _fbp too, from the browser rather than regenerating it server-side.

Meta · Roofing · the fix

What working looks like — Meta · 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.

Meta · Roofing · architecture

How Meta and roofing companies actually connect

  1. 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. 2

    Meta Ads needs a click to match

    event_name from the standard set with exact casing, event_time in seconds, a shared event_id, an action_source, and hashed user_data that was normalized before hashing. Purchase additionally requires value and currency.

  3. 3

    The identifier: fbclid and _fbc

    fbclid arrives on the landing URL and is normally written into the _fbc cookie. If it isn't captured on landing, _fbc never exists — and _fbc is the strongest click signal Meta has, so its absence caps your match quality regardless of what else you send. Forward _fbp too, from the browser rather than regenerating it server-side.

  4. 4

    Where it gets sent from

    your job management system's record of signed contracts.

  5. 5

    Deduplication and window

    This is the mechanism that decides whether adding CAPI helps or doubles your conversions. Both the Pixel and the server event must carry the same event_id — the order or booking reference works best, because both sides can produce it without coordinating. A case difference in the event name alone produces two events even with a matching ID. Read the Deduplicated indicator in Events Manager over a full week, not one session. Meta's default attribution is a 7-day click and 1-day view. View-through is included by default, which is a large part of why Meta claims more conversions than your other platforms — that overlap is expected rather than a fault.

Meta · 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.

Enquiry (call or form)Call tracking plus browser-side form events.
Inspection bookedServer-side from the job management system.
Inspection attendedServer-side. The reliable mid-funnel target.
Contract signedServer-side with real contract value, uploaded as an offline conversion.
Job typeRepair versus replacement. The value difference is large enough to bid on.

Meta · Roofing · diagnose

Diagnostic order — Meta · Roofing

  1. 01

    Count records carrying fbclid and _fbc

  2. 02

    Hard-coded numbers everywhere

    Roofing sites carry the phone number in headers, footers and images. Insertion can't reach most of them.

  3. 03

    Flat conversion values

    A $600 repair and a $28,000 replacement counted the same teaches bidding nothing.

  4. 04

    Storm spikes treated as performance

    Volume from a weather event isn't campaign quality, and mixing them corrupts the learning.

  5. 05

    Read the Deduplicated indicator and the per-event match quality score, both read over seven days

    Match quality is where most Meta accounts lose attribution, and it's almost always normalization rather than coverage. An email hashed with a capital letter, or a phone hashed with brackets, produces a perfectly valid hash that matches nobody and errors nowhere. Normalize first, then hash, and read the score per event rather than overall.

Meta · Roofing · prove

How it gets proven — Meta · 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.
  • The Deduplicated indicator and the per-event match quality score, both read over seven days read directly, not inferred from an upload succeeding.

Meta · Roofing · free audit

What we check in the free audit

  • Count records carrying fbclid and _fbc
  • Hard-coded numbers everywhere
  • Flat conversion values
  • Storm spikes treated as performance
  • Read the Deduplicated indicator and the per-event match quality score, both read over seven days

Checked against

your job management system's record of signed contracts

Get my free conversion tracking audit

Free30 minutesNo obligation

Meta · Roofing · when not to buy

When you don't need this — Meta · Roofing

  • If Meta 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 fbclid and _fbc.
  • If you're advertising a business type Meta restricts data collection for — health being the obvious one — the parameters you can legitimately send are narrower, and that constraint should shape the build rather than be worked around.

Meta · Roofing · what we deliver

What gets built — Meta · 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 Conversions API

    Server events go through CAPI with an action_source describing where the conversion happened. Offline outcomes flow through the same API rather than a separate product. Verify current field names against Meta's documentation before building — this surface changes.

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.

Get my free conversion tracking audit

From $400 · See packages

FAQ

Meta · Roofing questions, answered

They produce volume, but much of it is low intent. Feed attended inspections and signed jobs back by lead ID so Meta learns which form-fillers become customers.

Free · 30 min

Get Meta reporting what roofing companies actually earn

Free30 minutesNo obligation