Back to blog
marketing attributionroofing leadscall trackinglead attributionroofing marketing

Marketing Attribution for Roofers: Which Leads Pay Off

A homeowner notices a damp ceiling on Saturday, searches for a roofer, and your office phone rings on Friday. Between those two moments they may have clicked an ad, read a page on your site, and talked it over at home. If the report on your desk only shows clicks, you still don’t know which of those touches paid for the crew, the travel, and the materials.

Marketing attribution is how you join that trail to the job you invoiced. For a roofing company it works more like job costing than like a marketing dashboard. It asks which campaign produced profitable booked work after salesperson time, travel, and cancellations, not which ad happened to get the last click.

Table of Contents

What Marketing Attribution Means for a Roofer

Saturday morning. A homeowner spots a leak, types “roof repair near me”, and lands on your Google ad. On Tuesday they read a short article on your site. On Friday they call the office and book an inspection. Which step earned the job?

Marketing attribution is the rule you use to work out which marketing touches led to an enquiry, a booked inspection, and a paid job. Picture a dinner bill. Everyone at the table ordered something. Attribution is the rule that decides how the bill is split.

It answers three questions an owner can act on.

  • Where did the call come from? The campaign, the tracked number, or the form that started the enquiry.
  • What did the customer see along the way? The ad, the page, the remarketing banner, the follow-up.
  • What finally made them book? The call that turned into an inspection, a signed quote, or a deposit.

Impressions and clicks show activity. Attribution shows what that activity produced: a quote request, a phone enquiry, a booked job, or revenue you can tie back to a suburb.

A diagram illustrating the customer journey of a homeowner discovering, researching, and booking a roof repair service.

Search is where a large share of that activity sits. In 2024, total digital advertising expenditure in New Zealand reached approximately NZD 2.42 billion, and search advertising represented 53% of that amount, about NZD 1.28 billion, as covered by the New Zealand Herald. The same market grew 10.8% from 2023 to 2024. More than half of digital ad money sat in a channel where a search can be joined to a click, a visit, a call, a form, and a sale. A click on its own still doesn’t say whether the enquiry was inside your service area, or whether the job covered the van and the labour.

Practical rule: If your report can’t name the suburb and the campaign behind the last five booked jobs, the budget is being spent on guesswork.

Attribution Models Compared for Roofing Leads

Six common models split the same job in different ways. Read the credit rule first, then the roofing example, then the fit.

ModelHow it splits creditRoofing exampleBest when
Last click100% to the final touch before the enquirySearch ad gets credit for the call after a Facebook ad started the searchQuick read on what closes; ignores early research
First click100% to the first recorded touchFacebook ad gets all credit even though the call came from GoogleShows what starts conversations; overvalues awareness
LinearEqual share to every recorded touchFive touches, each gets 20% of the jobFair baseline; treats a remarketing banner the same as a search
Time decayMore credit to touches closest to the enquiryRemarketing banner seen the day before the call gets most creditSuits long roofing decisions where quotes follow weeks of research
Position-based40% first touch, 40% last touch, 20% shared across the middleSearch ad first, remarketing in the middle, search ad lastGood default when both discovery and closing matter
Data-drivenCredit set by patterns in your own conversion historyModel learns which touches usually precede a booked inspectionYou have about 300 conversions in 30 days, which most local roofers don’t reach

Say a homeowner clicks a Facebook ad, then a Google search ad, then a remarketing banner, and finally calls. Last click gives the whole job to the search ad that won the call. First click gives it all to Facebook. Linear splits the job into three equal shares. Time decay leans toward the remarketing banner seen closest to the call. Position-based gives 40% to Facebook, 40% to the call-winning search ad, and 20% to the banner in the middle. A plain walk-through of those rules, written for trades rather than software teams, is in this guide to marketing attribution modeling for trades.

What I would run first

Most single-territory roofers should start with last click plus a clean offline record of booked and won jobs. Data-driven models need volume. Google’s stated minimum sits around 300 conversions in 30 days, and a local roofing account rarely gets there. Until it does, the algorithm is guessing with a fancier label.

The model changes the report. It doesn’t change the number of jobs on the board. Pick one model, use it for a full quarter, and check it against the job record before you switch. Switching mid-month makes last quarter’s numbers useless.

The model is a filing rule. The job file is the evidence.

How to Set Up Call, Form and Quote Tracking

Every call, form, and quote should carry the campaign that produced it. If the source dies at the front desk, you can’t cost the job later.

A five-step infographic illustrating how to set up tracking for calls, forms, and quotes in marketing campaigns.

  1. Set conversion actions in Google Ads. Track form submissions and phone calls as separate actions. Set a minimum call length, such as 60 seconds, so hang-ups and wrong numbers don’t count as leads. A short call from a supplier is not a roof.
  2. Assign a tracked phone number to each campaign or landing page. The number itself then shows where the call came from, even when the caller never fills a form. Put the matching number on that page only.
  3. Install Google Tag Manager and fire events. Record form submits and call-button clicks as events, not as page views. A click on the phone button is not the same event as a completed form.
  4. Pass the click ID and campaign name into hidden fields. Every enquiry form should store those values with the lead in the CRM. Without the click ID you can’t send a won job back to the ad later. If you are new to the idea, start with a plain explanation of what conversion tracking is before you add extra fields.
  5. Record service type, suburb, and urgency at intake. Mark the job as repair, replacement, maintenance, or commercial, and note whether water is coming in now. Those three fields decide whether the lead was worth the spend.
  6. Export won jobs and revenue, then import them to Google Ads against the click ID. The ad platform can then favour paid work instead of raw enquiry volume. Do this at least weekly, not at year end.
  7. Test every path once a month. Call each tracked number and submit each form, then confirm the lead lands with the right source. A broken number can sit unnoticed for a whole season.

A lead-only setup overvalues campaigns that produce lots of weak enquiries. Importing later CRM stages, qualified lead, quote, and won job, lets you see cost per stage and return by service type and service area. New Zealand government guidance on the privacy principles supports collecting only what you need for that measurement, and writing down cookies and analytics identifiers you use behind the page. Keep the form short. Consent wording for these records belongs with the journey rules further down.

When a caller says they rang last month and nobody can find the note, open the call log rather than guessing the campaign. Tools that let you find past calls in cloud dashboards make that check a two-minute job instead of a hunt through a phone.

A short walk-through of tagging a form and a call sits in this video. Watch it once with your landing page open beside it.

Tracking Leads Through to Profitable Jobs

Count the job in stages, not as a single “conversion”.

Lead received is the call or form, with campaign, date, and contact method. Service-area fit is the postcode and job-type check before anyone drives out. Inspection booked is the date and the crew. Quote issued is the dollar value and the campaign copied onto the quote. Quote accepted is the signed quote or the deposit, with the date. Job completed is the final invoice against the original lead. Gross margin is what remains after materials, labour, travel, and cancellations.

A funnel diagram illustrating the step-by-step process of tracking business leads through to profitable jobs.

A lead count misleads. One campaign can produce 60 enquiries and 5 jobs. Another can produce 25 enquiries and 9 jobs. The first looks busier and loses money once you price the quoting time.

A worked campaign

These figures are illustrative. Replace every cell with your own.

StageCountCost per stage (NZ$)Share of previous stage
Leads received6050n/a
Qualified (in service area, real job)3010050%
Inspections booked2015067%
Quotes issued1421470%
Jobs won560036%

NZ$3,000 of spend gives 60 leads at NZ$50 each and five won jobs at NZ$600 each. If those five jobs average NZ$9,000, revenue is NZ$45,000, a 15 times return on that media spend before you subtract job costs. Cost per won job is the number to manage, not cost per lead.

The same question sits behind a much larger ad market. The Advertising Standards Authority turnover report records NZ digital advertising at NZ$2.967 billion in 2025, up 12% year on year, with search at approximately NZ$1.44 billion, about 49% of digital spend. Spending at that scale, then stopping the report at cost per lead, hides which campaigns survived salesperson time, travel, materials, and cancellations.

Each week, cut the same won jobs by suburb, service type, device, search term, and call quality. A mobile click from outside your area is not the same lead as a desktop search for a re-roof two suburbs over.

Reconcile Google Ads, call tracking, forms, and the job software in the same sitting. The gap you want is the enquiry nobody logged. That missing row is how a good campaign looks average. If the pipeline behind those rows is thin to begin with, the tracking won’t invent jobs, and lead generation for roofers only pays once those jobs are costed the same way.

Multi-Touch Journeys and Where Tracking Breaks

A homeowner in Hamilton sees your Facebook post in March. In April she searches “roof repair” on her phone, clicks your search ad, and leaves. Later she sees your remarketing banner on a news site. A week after that she calls from her husband’s phone and books.

Last click credits the call, and may credit nothing useful if the call came from a saved main number. First click credits the March Facebook post. Time decay leans toward the banner. Position-based splits most of the credit between the Facebook post and whatever touch you can still see before the call. The record that should win is the one on the job: campaign if you have it, otherwise the source the caller names, plus suburb, roof type, and whether the job was won.

An illustration showing a customer journey across multiple digital touchpoints for roof repair services in Hamilton.

Tracking breaks in ordinary ways.

  • Saved main number. The caller ignores the tracked line and rings the number on the van. Log the campaign they mention, or mark the source as unknown. Don’t invent one.
  • Phone start, laptop finish. The form begins on a mobile ad and is submitted at the kitchen table with no click ID. Keep a “how did you hear about us” field for that case.
  • A referral that names you. The neighbour said your company. That is not an ad conversion. Code it as referral so it doesn’t flatter a campaign.
  • A call-back weeks later. They ring the office direct and book. Attach the new job to the original lead if you still have the name and address.
  • Calls from your own crew or staff. Filter those numbers out, or they show up as cheap fake leads.

The privacy edge

The Chambers guide to New Zealand data protection explains that the Privacy Act 2020 applies to private-sector businesses through 13 Information Privacy Principles. Information Privacy Principle 4 requires personal information to be collected fairly and lawfully, without unreasonable intrusion, which rules out hidden tracking you never mention. Principle 10 restricts using information collected for one purpose, such as job management, for a materially different purpose, such as an advertising audience, unless there is a lawful basis. Consent will generally be needed in that situation.

State on the form what you collect, why, how you’ll use it, and who may receive it. Don’t upload a customer list to an ad audience just because the export button is there.

Attribution needs to show the journey’s main turning points, not every single step of it.

Setting Budgets and Hiring from Attribution Data

Decide the budget on cost per won job. A campaign needs about 100 clicks a month before the results mean much. One New Zealand benchmark source, Nika Consulting, reports an average cost per click of NZ$3.24, an average click-through rate of 9.12%, and an average conversion rate of 8.93% for New Zealand advertisers. At that average click cost, 100 clicks are roughly NZ$324 of media spend and about nine recorded conversions. Roofing clicks move a lot by city, service, and competition, so treat those averages as a starting line, not a promise.

Define the conversion before you launch: a completed quote form, a tracked call of your chosen minimum length, or a booked inspection. Keep short calls, job seekers, suppliers, and mis-taps out of that count.

Signals worth acting on

Signal in your dataWhat it tells youBudget actionHiring action
Cost per won job is well under your margin thresholdCampaign has headroomRaise spend about 20% a month while cost per qualified lead holdsAdd an estimator once inspections wait longer than three working days
Many qualified leads but few quotes issuedSales follow-up is the bottleneckHold spend and fix speed to call and quoteTrain or hire a salesperson before adding more ads
Quotes accepted, but repair jobs cost far more per win than replacementsJob mix problem, not spend problemShift budget toward replacement or commercial search termsNo hire yet; check crew capacity by job type
Under about 100 clicks a month in a campaignToo little data to judgeKeep budget steady for six weeks before decidingNone until the data is reliable
Cost per won job above your average margin for eight weeksCampaign loses moneyPause or cut that campaign’s budgetDo not hire for work from that campaign

Say a campaign costs NZ$600 per won job and your margin would still work at NZ$900. There is headroom. Raise spend in steps of about 20% a month, and stop the rises if cost per qualified lead starts to climb. Hire when inspections or quotes sit longer than your crew can answer, not because the lead total went up. A stack of unquoted leads is a sales problem. More ads make it worse.

Keep the job types apart

Budget repair, replacement, maintenance, and commercial as separate campaigns. A Scoop report on Auckland roof repair demand notes that New Zealand’s building work put in place reached approximately NZ$31 billion for the year ended December 2025, with maintenance and repair a significant part of that activity, and that Auckland’s ageing housing stock and year-round weather keep a baseline of roof-repair demand apart from the new-build cycle. An emergency leak and a planned re-roof don’t share a close rate or a response time. Mixing them into one cost per lead hides which crew you should feed.

Before any increase, four checks have to pass. Every campaign has its own tracked number. The CRM stores source and service type. Won jobs go back into Google Ads at least weekly. A report shows cost per won job by campaign. If one check fails, fix it before you add budget. We track every enquiry with call tracking and optimise the ad account every month, because a budget move on last month’s unlogged calls is a guess. If you want an outside read on whether the account structure can support that, look at how a specialist sets up paid advertising services before you copy a generic campaign split.

Running a One-Hour Monthly Attribution Review

Hold one fixed hour each month. Weekly budget changes mostly react to a quiet Tuesday or a storm week.

  1. Pull cost per stage by campaign. From Google Ads and the job software, take leads, qualified leads, quotes, and won jobs with revenue. One row per campaign is enough.
  2. Reconcile the counts. Match Google Ads, call tracking, forms, and the job software. Write down any enquiry nobody logged, and fix the hole before you judge the campaign.
  3. Cut the results. Split by suburb, service type, device, search term, and call quality. Flag any campaign whose cost per won job has sat above your margin threshold for eight weeks.
  4. Make one budget decision per campaign. Use the signal that matches the row. Hold any campaign under about 100 clicks for another six weeks.
  5. Log the change. Date, what you changed, and what you expect next month. If you can’t see whether last month’s move worked, you don’t have a review. You have a meeting.

That hour is easier when the export already shows spend, lead count, cost per lead, and every change made. Our monthly reports are built that way so you can check the figures yourself. A free 30-minute ad account review covers what’s working, what’s leaking budget, and the two or three moves that would change the numbers fastest.


Bluelight builds Google Ads and call tracking for roofing companies so each enquiry can be tied to a campaign and, later, to a booked job. If your last five jobs still don’t have a suburb and a source on them, a short review will show where the trail breaks. Visit Bluelight and book the free 30-minute ad account review.

Related service Google Ads for Roofers