Ad attribution inside Google Ads, Meta and Microsoft Advertising is self-reported. Each platform counts the conversions it can tie to its own ads, uses its own window and its own definition of a conversion, and often dates the result to the click. That is why the totals across platforms add up to more jobs than your crew actually booked.
Here is the pattern most owners eventually notice. Google says it drove 40 leads last month. Meta says 25. Your booking software shows 38 new jobs, and your office manager remembers that a good share of them were neighbors of past customers who called because the truck was parked on their street. Every platform is telling the truth by its own rules, and none of them is telling you what closed the job.
TruLata is an AI marketing platform for service businesses that runs search, ads, content, outbound and email from one screen, refreshes the data when you open it, and counts leads from your own website forms rather than from the ad platform. This post explains why platform numbers drift from revenue and what to do about it.
Why doesn't ad attribution in my ad platform match my actual revenue?
Because the ad platform is grading its own homework. Each platform's reporting is built to answer one question: did someone who interacted with our ad later do the thing you marked as a conversion? It is not built to answer the question you care about: which marketing actually produced this paying customer?
Those are different questions, and the gap between them is where most marketing attribution accuracy problems live. Four structural causes account for the bulk of it.
1. Every platform claims the same customer
A homeowner sees your Facebook ad on Monday, searches your company name on Wednesday and clicks a Google ad, then fills in your form. Meta counts a conversion. Google counts a conversion. Your form received one lead. Neither platform can see the other, so neither subtracts the overlap. Add Microsoft Advertising or a directory listing and the same person can show up three or four times.
2. View-through credit counts people who never clicked
Some platforms credit a conversion to an ad that was merely shown, not clicked, within a set window. If your ad appeared in someone's feed and they later booked because their brother-in-law recommended you, the platform can still record that booking as an ad result. This is working as designed, which is exactly why it cannot be switched off and has to be reconciled instead.
3. Click dates and conversion dates don't line up
Ad platforms commonly report a conversion on the date of the ad click, while your CRM, analytics or booking system records it on the day the lead arrived. A click in late March that turns into a form fill in early April lands in different months depending on which report you open. For contractors with multi-day decision cycles, that alone can swing a monthly comparison noticeably.
4. "Conversion" usually means a form fill, not a job
Most accounts count a form submission, a call over a set duration, or a page view as a conversion. None of those is revenue. A spam submission, a tire-kicker asking for a ballpark, and a signed roof replacement all count as one conversion each. This is the biggest of the ad platform reporting gaps for service businesses, because the platform has no idea which leads became paid invoices.
Why do ad platforms take credit for referral jobs?
Referrals are invisible to ad platforms, but referred customers still use the internet. A typical referred customer gets your name from a friend, then types it into Google to find your phone number. If you bid on your own brand name, that search can trigger your ad, they click it because it is the top result, and the platform logs a conversion.
The ad didn't create that customer. Your reputation did. The ad simply happened to be standing at the door when they walked in. Over a year, branded clicks from referred customers can make a campaign look far more productive than it is, and the owner who reads only the platform report may move budget toward the campaign that is collecting credit rather than the work (reviews, repeat customers, yard signs, community presence) that generated the demand.
We covered this specific problem in depth in stop crediting ads for referral jobs, but the short version is this: if you can't separate "found us through an ad" from "already knew us and used the ad as a shortcut," your cost per acquisition is fiction.
How big a gap between platform conversions and real leads is normal?
Some gap is always normal. Platforms use different attribution models, different windows and different definitions, and those methodology differences never disappear. What matters is that the gap stays consistent. A stable difference between what your ad platform reports and what your forms received is a known quantity you can adjust for. A sudden change in that gap is a signal that something broke.
Use these rules of thumb when you compare:
- Platform shows far more conversions than your forms received: you are likely double counting, counting a weak action (like a page view) as a conversion, or crediting view-through and modeled results.
- Platform shows far fewer conversions than your forms received: tracking may be missing, or customers are converting through untracked paths, such as seeing the ad and calling the number directly instead of clicking.
- The gap jumped this month with no campaign change: check whether a tag is firing twice, a thank-you page is being refreshed, or a form was swapped without updating tracking.
What should a service business count instead of platform conversions?
Count from the source you control. The most reliable record of a lead is the one your own website form captured, with its source recorded at the moment of submission, and its outcome set by your own team afterward. That gives you three layers of truth instead of one self-reported number.
Layer 1: The lead, counted once
Every submission from your form is one lead, regardless of how many platforms touched that person beforehand. This is the denominator every other number should be measured against. Lead tracking counted from your own forms removes the double counting problem at the root, because the count doesn't depend on any platform's opinion.
Layer 2: The source, recorded at submission
Capture where the lead came from when it arrives: the referring channel, the campaign parameters on the landing URL, and, ideally, a "How did you hear about us?" field. That last field is unglamorous, but it is the only place a referral ever announces itself. When a lead clicked a branded ad and also wrote "my neighbor Dave," you know which one gets the credit.
Layer 3: The outcome, set by your team
A lead isn't revenue until someone on your team marks it won, lost or junk. This is the step that turns marketing reporting into revenue tracking contractors can actually use. Once outcomes are attached, you can see cost per booked job by channel, not cost per form fill, and those two numbers often rank your campaigns in a very different order.
How do I check my ad attribution in under an hour?
You don't need a data team to find out whether your platform numbers are trustworthy. Run this audit once a month.
- Pull last month's conversions from each ad platform. Write down the total for Google Ads, Meta, Microsoft Advertising and anything else you run.
- Pull last month's form submissions and tracked calls. Use your website form records and call tracking, not the ad platforms.
- Remove junk. Strip spam, duplicates, existing customers asking about an invoice and job seekers. What remains is your real lead count.
- Compare the sum of platform conversions to real leads. If the platforms combined claim more than you received, you have overlap. Note the ratio so you can watch it next month.
- Check your conversion actions. In each platform, confirm what is marked as a primary conversion. Anything that isn't a form submission, a qualifying call or a booking should not be primary.
- Isolate branded search. Look at how many conversions came from campaigns or keywords containing your company name. Ask what share of those customers likely already knew you.
- Match leads to booked jobs. For each real lead, mark whether it became a job. Then compare cost per job by channel.
If step seven is the hard part, that's the honest sign your tools aren't connected. Reading your job pipeline next to your marketing, rather than in a separate system, is what makes this audit repeatable instead of a quarterly spreadsheet project.
Which attribution model should a contractor use?
No model fixes bad inputs. Last click, first click, linear and data-driven models all redistribute credit among touches the platform can see. None of them can see the referral, the yard sign or the past customer who called from memory. Choose a model after you fix the count, not instead of it.
That said, model choice still matters for longer sales cycles. A roof replacement or a full HVAC system often involves several visits over several days, and last click tends to over-reward branded search at the expense of whatever introduced the customer. If that describes your jobs, read which attribution model actually works for service businesses before switching settings in your ad accounts.
How do I see which ads actually drove revenue?
Put spend, leads and outcomes on the same screen, read live, so the comparison happens every time you look instead of once a quarter. In practice that means:
- Spend from each ad account, by campaign, pulled directly rather than typed into a spreadsheet.
- Leads from your own forms and tracked calls, each with its recorded source.
- Outcomes from your team, so a lead marked won is a job, not a click.
- Payments and jobs from your booking and payment tools, so the revenue side is a real figure rather than an estimate.
- A freshness stamp on every number, so you know when it was pulled and never make a budget call on stale data.
This is how TruLata works: it connects to your accounts, pulls the data when you open it, and lays your marketing next to what actually came in. On the ads side, Google Ads reporting with a daily account watch shows spend and cost per lead against leads your forms counted, so the platform's conversion column is a reference point rather than the final word.
What changes once you trust the numbers?
Owners who move from platform-reported conversions to form-counted leads with outcomes usually make three decisions fairly quickly:
- They right-size branded search. Some brand bidding protects you from competitors on your own name. Paying heavily to intercept people who were already calling you is a different matter, and the real numbers make the difference visible.
- They stop cutting the channels that create demand. Reviews, content and repeat-customer email rarely win last-click credit, yet they fill the top of the funnel that branded ads later harvest.
- They judge campaigns by booked jobs. A campaign with a higher cost per lead but a much higher close rate often beats a cheap one that floods the inbox with low-intent requests.
None of this requires predicting the future. It requires counting the present correctly.
See what actually closed your jobs
If your ad platforms claim more customers than your calendar holds, the fix starts with counting leads from your own forms and setting outcomes from your own team. TruLata puts spend, leads, jobs and revenue on one screen that refreshes when you open it, so ad attribution reflects what came in, not what each platform says about itself. Open the live demo to see the real thing, or sign up at login.trulata.com/signup and connect your accounts today.





