We went into the actual accounts: Google Ads year to date, plus the March, May, and July Meta reports from the current agency. Every number below came straight out of the platforms on August 14, 2026. The short version: most of the Google budget is leaking into display placements on campaigns labeled "Search," the conversion counting is inflated by click events, and the Meta account has been running one campaign named "Testing" since October.
On paper this is a healthy account: $10.9K spent, 7,422 clicks, 469.97 conversions at $23.26 each. Underneath, the structure and the tracking are working against you.
| Campaign (YTD) | Impressions | Clicks | Reported conv. | Cost / conv. |
|---|---|---|---|---|
| Search | General | BV | 139,989 | 3,126 | 200.49 | $20.02 |
| of which Google Search | 4,235 | 383 | 77.49 | $30.67 |
| of which Display Network | 135,754 | 2,743 | 123.00 | $13.31 |
| Search | NB | Hood Cleaning | BV | 85,773 | 2,260 | 186.51 | $24.75 |
| of which Google Search | 4,682 | 443 | 96.51 | $23.83 |
| of which Display + partners | 81,091 | 1,817 | 90.00 | $25+ |
| Smart Campaign | Kitchen Exhaust | BV | 97,254 | 2,036 | 82.97 | $27.71 |
| of which Display Network | 87,202 | 1,483 | 5.00 | $79.57 |
| Account total | 323,016 | 7,422 | 469.97 | $23.26 |
Source: Google Ads campaigns view with network segmentation, Jan 1 to Aug 13, 2026, pulled live August 14. Real Google Search impressions across all three campaigns: about 17,000 YTD. The other 300,000+ impressions are display placements and search partners riding on campaigns named "Search."
Both "Search" campaigns have Display Expansion turned on, and the Smart Campaign pushes 90% of its volume to display too. Display clicks cost $0.60 to $0.74, which looks efficient, until you see what they convert into (finding 03). Meanwhile actual searches for hood cleaning, the people typing "hood cleaning near me" with a checkbook open, only see your ad 19% of the time.
Google's own account insight says it: on the keyword "oregon hood cleaning," your impression share is 38% while gofilta.com has climbed to 31% and rising. Someone searching for you by name has nearly a coin-flip chance of seeing GoFilta first. There is no dedicated brand campaign to defend it, and brand defense is the cheapest click in advertising.
The account has 19 conversion actions. Among the ones set to Primary, counted "every" time, with 90-day windows: GA4 events for clicking the phone number on the website, including separate click events for Portland, Bend, Eugene, and Vancouver numbers. Clicking "Pay Your Invoice" is tracked too. Meanwhile the actual lead form click event is set to Secondary, and Google shows a warning that the submit lead form goal has no primary action at all. Smart Bidding is being told that a display visitor who taps a phone number, or pays an invoice, is a win. That is the machine you have asked to spend your money.
A Smart Campaign duplicates the search campaigns' job with worse economics ($79.57 per display conversion). Six paused campaigns sit in the account, three of them literally named "1," "1 #2," and "1 #3." And this week Google flagged that conversions on both active search campaigns dropped more than 66%. When the real search CPC is $5 to $6 and a new account is worth thousands a year in recurring cleanings, this account deserves a driver.
The March, May, and July reports you shared all describe the same single campaign: "BV Lead Gen | Testing - 2 | 10-03-2025." Here is what it did across those three months.
| Month (2026) | Spend | Leads | Cost / lead | CTR | CPC | Est. frequency |
|---|---|---|---|---|---|---|
| March 2 to 31 | $1,163.84 | 24 | $48.49 | 1.33% | $1.16 | 3.0 |
| May 2 to 31 | $1,073.31 | 16 | $67.08 | 1.26% | $1.57 | 2.7 |
| July 2 to 31 | $1,652.82 | 20 | $82.64 | 0.90% | $1.82 | 3.6 |
Source: BlueVine Digital's Swydo reports for Oregon Hood Cleaning, campaign performance tables, read August 14, 2026. Frequency estimated as impressions divided by reach from the same tables.
$48 in March. $67 in May. $83 in July, while spend went UP. CTR fell a third and CPC rose 57% over the same stretch. That pattern has one name: creative fatigue. The same audience of roughly 25,000 to 28,000 people has been shown the same campaign for ten months, hitting each person three to four times a month. They have stopped clicking, so Meta charges more for every click.
The Meta Ad Library shows exactly three active ads, launched July 2 and July 15. Two are meme-format cards with stock models ("When the health inspector grabs the flashlight..."). One is a text card asking "Unhappy with your hood cleaners?" All three share the same primary text, word for word. There is no video, no real before and after photo, no crew, no owner, no client name, no testimonial. Your single best marketing asset, real photos of ducts going from grease-caked to bare metal, has never been an ad.
All leads are on-Facebook instant forms. Nobody visits your website, so no remarketing pool builds, no pixel signal accumulates, and lead quality rides entirely on a form Meta autofills. And one more detail worth knowing: the "Active Campaign Performance" widget in your monthly reports shows the identical numbers (28,719 reach, 18 leads, $93.95 per lead) in the March report, the May report, and the July report. It is a static widget that does not follow the month being reported. Nobody caught it.
One afternoon of work. Redirects the majority of the budget to people actually searching for hood cleaning.
Make those Primary. Demote every phone-number-click and invoice-click event to Secondary. Then Smart Bidding finally optimizes toward customers.
Exact-match brand terms, high target, tiny budget. Stop handing GoFilta a third of the people searching for you by name.
Its display arm produced 5 conversions from 87,000 impressions at $79.57 each.
Real before and after photos first. Kill the fatigued meme cards, set a kill rule, and refresh monthly.
Forms that ask facility type and hood count filter tire-kickers and start building a remarketing pool.
Booked estimates and cost per booked estimate, not clicks. And a report whose widgets follow the month.
Ten static, ten video. Every one is built from something true about this business: the photos, the certificate, the fire code, the founder, the 5,400 kitchens. No stock models required.
Split-frame using your actual Before-up-duct and After-up-duct photos. No graphics, just a thin divider and the logo.
Close-up of an NFPA 96 cleaning certificate and hood sticker on a stainless background.
Clean typographic table of the real NFPA 96 cleaning frequencies. Educational ads earn saves and shares from operators.
Big numerals on ink navy, bare-metal texture. Positions OHC as the incumbent, not a vendor.
Night-shot of a closed kitchen, one light on. Urgency without panic.
Speaks to franchise and facilities managers, the highest-LTV buyer nobody advertises to. Carousel variant: one card per state.
Real rooftop grease-containment photo. Almost no competitor even mentions the roof; it flags real expertise.
Portrait treatment, kitchen background. The founder story is the trust angle no franchise can copy.
Hood count, cooking volume, duct length, plainly listed. Being the one company that answers the price question is a differentiator worth money.
Real photo of a duct interior, flashlight beam vignette. Takes the meme angle the current ads gesture at and makes it real instead of stock.
15 seconds, shot on a phone during a real clean. Satisfying-clean content is a proven thumbstop genre.
POV shot moving through a hood, filter, duct, fan. Ends on the certificate. 20 seconds.
Proves the "never interrupts your operation" promise instead of claiming it.
One real customer on camera beats any script. With 5,400 serviced locations, finding three willing faces is a phone call.
Straight to camera, one take, no music until the logo.
Listicle reel: behind the fan, above the roof line, past the first elbow. Real footage of each. Positions OHC as the honest one.
No flames needed; the buildup itself is the scare. Ends on the NFPA 96 schedule.
The multi-location pitch as a 20-second visual. Target facilities and franchise job titles.
Emergency fan repair story in 15 seconds, ends on the 24/7 number. Runs cheap as a reach layer in the service area.
Rooftop grease containment before and after from the crew's actual photos and clips. Pairs with Static 07 as a retargeting sequence.
The fixes above do not need more spend, they need the current spend supervised. Fifteen minutes and we will put a straight number on running it right.
Book the 15-Minute Call Back to the Pitch