Last 90 days at a glance
Numbers below use the corrected definitions: a lead = the HubSpot Lead conversion action only. Deal data joins HubSpot (12-month window). Revenue is understated until sales agents backfill amounts and the banking CSV lands.
Campaign performance (90 days) + what actually closed (12 months)
| Campaign | Spend 90d | Leads | CPL | Deals created | Won | Known won $ | Search IS |
|---|---|---|---|---|---|---|---|
| RO | Search | Content Removal | $9,954 | 164 | $61 | 22 | 12 | $13,531 | |
| RO | Search | Reputation Management | $9,881 | 91 | $109 | 22 | 6 | $21,440 | |
| RO | Search | Competitor | $7,126 | 48 | $148 | 0 | 0 | $0 | |
| RO | Reputation Defense (Brand) | $3,455 | 25 | $138 | 3 | 1 | $1,550 |
Leads = HubSpot Lead conversion action (90d). Deals/won = HubSpot 12-month window via utm_campaign (RO-era campaigns are ~3.5 months old, so deal counts lag). IS bar = share of eligible Google searches where an ad actually showed.
12-month spend trend
* July is month-to-date (16 days). Red dashed columns = the unexplained Nov 2025 – Feb 2026 dark period (F11).
The truth funnel (12 months, all paid search)
Findings — agree or disagree, with your reason
Severity reflects estimated impact on lead volume, lead quality, or revenue truth. Nothing here has been changed in the account; every item is a proposal for Zac/John to weigh in on and Chad to rule on.
Exact fix: the malformed tracking template (F6 / R1)
Location: Google Ads → Admin (Account settings) → Tracking → Final URL suffix (and any campaign-level overrides). Two ampersands are missing, so parameters run together and analytics receives garbage values.
CURRENT (broken):
...&placement={placement}ad={creative}&gclid={gclid}&keyword={keyword}&targetid={targetid}extensionid={extensionid}
CORRECTED (add the two & marked green):
...&placement={placement}&ad={creative}&gclid={gclid}&keyword={keyword}&targetid={targetid}&extensionid={extensionid}
Full corrected suffix, ready to paste (verify it matches the live one before replacing):
utm_source=google&utm_medium=cpc&utm_campaign={campaignid}&utm_term={keyword}&campaignid={campaignid}&adgroupid={adgroupid}&matchtype={matchtype}&device={device}&network={network}&devicemodel={devicemodel}&placement={placement}&ad={creative}&gclid={gclid}&keyword={keyword}&targetid={targetid}&extensionid={extensionid}
Note: the live template writes the campaign name into utm_campaign per campaign — keep whatever utm_campaign convention you prefer, just add the two missing ampersands. After saving, spot-check one ad's final URL with the Ad Preview tool, then confirm gclid capture rate rises in HubSpot over the next 2 weeks (baseline: 52%).