The Counseling Center Group
Performance Max · Measurement layer

Conversion tracking

Validate this before reading anything else: what the algorithm counts as success determines everything it buys.

What each campaign is optimizing toward

PMax buys whatever signal you feed it. The single most important finding in this account is that the live campaign and the locals count completely different things as a “conversion”.

 Live · Standard8 paused Locals
BiddingMax Conversion ValueMax Conversions (volume)
Biddable conversion goals
(what it optimizes for)
1 GOAL PURCHASE [website] only4 GOALS PURCHASE + CONTACT ×3 origins (website, Google-hosted, call-from-ads) — the 3 CONTACT goals are $0-value
What its conversions wereREVENUE Won 351 ($236K) · Won Calls 159 ($115K) · Consult 46$0 TAPS “Ad Extension” 1,013 · CCoM Calls 199 · Clicks-to-Calls 47 — all $0
Apparent $/conv$325 — high, but real~$39 — cheap, but buying phone-icon taps
The CPA paradox, resolved — it’s the goal config. The Standard campaign has only PURCHASE biddable, so it optimizes purely to Won. Every local additionally has CONTACT biddable across all three origins — and those contact/call-tap actions carry $0 value and fire far more often than Won. So Max-Conversions rationally maximized the cheap, plentiful taps. Across all 8 markets ~$62K produced only ~54 booked clients (~$1,150 each). The fix is to make the locals PURCHASE-only, like Standard.
Three account-wide cautions. (1) Ignore all-conversions: live campaign shows 556 bidding conversions vs 22,404 all-conversions. (2) Values are modeled, not cash: Won = a fixed $720 default, Consult $250, Hot Lead $150 (always-use-default). (3) Dedup risk: 6+ overlapping form/click actions and 10+ call actions exist — confirm one primary lead + one primary call action per step.

What exactly is a “$0 tap”?

The locals’ CONTACT goal is biddable on call-tap actions like “Counseling Center Ad Extension.” Its exact configuration: type=AD_CALL (“Calls from ads”), counting=MANY_PER_CLICK, value=$0, and it sits in the bidding Conversions column. It fires every time someone taps the phone-number / call button shown on the ad — a click-to-call, not a connected call, not a minimum-duration call, not a verified or qualified lead, not a booking. Because it is MANY_PER_CLICK, repeat and accidental taps by the same person each count again, every one worth $0. So “1,013 Ad Extension conversions” = 1,013 phone-button taps, not 1,013 patients.

ActionTypeCountingValueWhat triggers it
Counseling Center Ad ExtensionAD_CALLMANY_PER_CLICK$0Tap on the phone/call button shown on the ad (click-to-call)
CCoM Calls From Ad ExtensionsAD_CALLMANY_PER_CLICK$0Tap on the call asset in the ad
Clicks to Calls [Google Hosted]GOOGLE_HOSTEDMANY_PER_CLICK$0Click-to-call on the Google-hosted listing/landing surface
Counseling Center Calls To Number On WebsiteWEBSITE_CALLMANY_PER_CLICK$0Tap a forwarding phone number on the website
The irony: the account already has properly-built call-lead actions — e.g. “…Calls From Extensions (NYC)” / “(Harrison)” at type=PHONE_CALL_LEAD, ONE_PER_CLICK, value $60 — that count a call once and assign value. The locals bid on the $0 MANY_PER_CLICK version instead.

Proof — verbatim from the read-only Google Ads API (account 6356233337, 2026-06-30): each is MANY_PER_CLICK, value 0, yet includeInConversionsMetric=true (counts in bidding):

Evidence · Google Ads API v24 · read-only
SELECT conversion_action.name, conversion_action.type, conversion_action.category,
  conversion_action.counting_type, conversion_action.value_settings.default_value,
  conversion_action.include_in_conversions_metric
FROM conversion_action
[
  {
    "name": "CCoM Calls From Ad Extensions",
    "type": "AD_CALL",
    "category": "CONTACT",
    "countingType": "MANY_PER_CLICK",
    "defaultValue": 0,
    "includeInConversionsMetric": true
  },
  {
    "name": "Counseling Center Calls To Number On Website",
    "type": "WEBSITE_CALL",
    "category": "CONTACT",
    "countingType": "MANY_PER_CLICK",
    "defaultValue": 0,
    "includeInConversionsMetric": true
  },
  {
    "name": "Clicks to Calls [Google Hosted]",
    "type": "GOOGLE_HOSTED",
    "category": "CONTACT",
    "countingType": "MANY_PER_CLICK",
    "defaultValue": 0,
    "includeInConversionsMetric": false
  },
  {
    "name": "Counseling Center Ad Extension",
    "type": "AD_CALL",
    "category": "CONTACT",
    "countingType": "MANY_PER_CLICK",
    "defaultValue": 0,
    "includeInConversionsMetric": true
  }
]

Frame & tracking setup

CheckFindingStatus
WindowJan 1 – Jun 30 2026 (6 mo) + H2-2025 prior period (Account Audit page)set
Attribution modelData-driven (all key actions)DDA
Offline / qualified-lead feedbackYes — Won & Consult are offline UPLOAD_CLICKS imports from the CRMflowing
Enhanced conversions / consent modeNot exposed via Google Ads API v24 — verify in UIUI check

The conversion actions that count in bidding

ActionCategoryAssigned valueRead
WonPURCHASE$720revenue
Won CallsPURCHASE$720revenue
Stage: Consult ScheduledBOOK_APPOINTMENT$250consult
Stage: Consult Scheduled CallsBOOK_APPOINTMENT$250consult
Stage: Hot LeadsQUALIFIED_LEAD$150lead
Counseling Center Ad ExtensionCONTACT$0$0 tap
CCoM Calls From Ad ExtensionsCONTACT$0$0 tap
Clicks to Calls [Google Hosted]CONTACT$0$0 tap
Form CaptureSUBMIT_LEAD_FORM$0lead

65 conversion actions exist in the account; the ones above are the ones materially driving (or polluting) PMax bidding.