← All case studies
Wildlife removal & pest control · Ottawa and GTAOngoing retainer

Rebuilding ads, tracking and CRM for a two-brand home-services company

An owner-operated wildlife and pest company was spending on Google Ads it couldn't measure, running a hacked website, and leaving every CRM opportunity stuck at "New Lead". As their growth partner I audited everything, fixed the tracking first, rebuilt the ads, launched a second brand's site and automated the follow-up.

CA$35.85
cost per lead, new search campaigns
15.38%
conversion rate (30 conversions)
104
pages on the new brand's site
30.5%
email open rate, reactivation campaign

What I found

  • Only about 1 in 5 leads could be traced to a source; 81% of new contacts were phone calls with no source.
  • Google Ads was optimising toward 30-second calls and link clicks, not booked jobs, and one campaign targeted all of Canada.
  • The WordPress site was hacked, with about 2,100 injected spam URLs, 804 of them indexed by Google.
  • 366 CRM opportunities had never moved past "New Lead", one phone-menu branch dropped calls, the AI chatbot was corrupting contact names, and no review request had ever been sent.

The system now

WorkflowAIData
Execution replay of the design, not live data
  1. Tracking first. 264 phone links on 69 pages moved to the tracking number, a fake chat conversion and a tag leaking personal data removed, form submissions captured from the embedded CRM forms, and a "booked job" conversion sent back to Google Ads from the CRM.
  2. Ads rebuilt. Two new search campaigns (7 and 6 ad groups) from keyword research, with length-checked ads, 160 negatives and a launch checklist, built by bulk upload.
  3. Second brand launched. A 104-page Next.js site: services, commercial and industry pages, and city × pest pages for 8 cities, with schema, a quote form wired to the CRM, and its own analytics property.
  4. Hacked site cleaned. Offline forensic audit, spam removed from Google's index, and structured data and meta tags repaired.
  5. CRM automation. Every inbound call tagged and given an opportunity, the dropped-call branch fixed, missed-call text back per brand and number, quote follow-up on days 1, 5 and 10, reminders and a working review request.
  6. AI chatbot fixed. Traced the name corruption to call recordings arriving as empty messages, then made one bot brand-aware using contact tags.
  7. Reactivation. 1,357 past customers segmented by data completeness, with a 4-step SMS and email sequence that stops on reply, sends only in business hours and is throttled to 100 a day.

Results

New search campaigns, Oct 1–25Spend (CA$)ConversionsCost per lead
Wildlife brand619.781932.62
Pest brand455.591141.42
Total1,075.373035.85

Cost per lead against target (CA$)

Wildlife brand
32.62
Pest brand
41.42
Best ad group
24.11

Scale CA$0–50. The black line marks each brand's target: under $30 for wildlife, under $45 for pest.

  • Best ad group (animal control and wildlife): 13 conversions at CA$24.11 each. The pest brand came in under its CA$45 target.
  • Reactivation, first segment of 432 contacts: 96% of emails delivered, 30.5% opened, 15 replies and 8 hot replies, several asking for inspections or work.
  • The old account isn't a clean before-and-after comparison because conversion definitions changed, so I report the new campaigns on their own.

How I worked

Client approval on every change

Every ads, CRM and website change is logged with who approved it and how to roll it back.

No judging on thin data

No campaign is judged on under about 14 days or 30 conversions.

End-to-end tests

Conversions tested from form submit through to the ad platform, analytics and CRM tag before going primary.

Safe deploys

Production deploys from a clean archive, with all 105 built pages scanned for layout regressions.

Spending on ads you can't measure?

Message me on Upwork