The full-stack acquisition plan: a measurement-and-targeting engine, a Google-led channel mix, the compliant way to use pixel data, the emerging AI-search frontier, and an honest buy-vs-build map for the cortextOS fleet, built through an Opus↔Codex adversarial loop.
What this plan actually argues, in one screen.
The headline: VE’s fastest, safest path to $1M+ is a Google-led, intent-and-reputation engine, Local Services Ads, high-intent Search, and local/AI-search authority, with the genuine competitive moat being offline conversion feedback (telling the ad platforms which clicks became real, paying patients), review velocity, and front-desk speed-to-lead. Meta and YouTube play a supporting awareness role. The headline-grabbing “condition-page remarketing” idea is reframed, not deleted, because of platform policy, not HIPAA.
The v1 plan’s centerpiece was building Meta/Google remarketing audiences from who-viewed-which-condition-page. Codex’s verdict: that does not work, not because of HIPAA (your decision settles that), but because Meta and Google independently classify condition-page and condition-video signals as sensitive/health regardless of how you label the audience. Renaming it “Website Visitors 30d” changes nothing. The compliant high-intent condition channel is Search, where the user’s own query supplies the intent. Full detail in §3 and §10.
Make “closed-loop attribution” the first thing you build, before scaling any spend. Call tracking (CallRail/WhatConverts) + a daily ChiroHD reconciliation that pushes booked → showed → new-patient → care-plan back into Google Ads as offline conversions. Every dollar of media gets 2 to 3× more efficient once the algorithms optimize to real revenue instead of button-clicks, and it’s the one advantage competitors almost never build.
The pixel/remarketing engine, rebuilt around what platforms actually permit.
The original instinct is sound: intent data is VE’s most under-exploited asset. Someone reading the sciatica page at 11pm is a high-value prospect. The mistake is assuming you can retarget that person with sciatica ads. You can’t, and the workaround of renaming the audience doesn’t survive contact with Meta’s and Google’s automated health-content detection (§3).
The fix is an architectural one that every sophisticated healthcare advertiser uses: split the pipe into Measurement and Activation.
Collect everything you legitimately want to know, which condition pages, dwell time, funnel stage, in your own analytics (GA4 internal views + BigQuery + a lightweight first-party lead DB). Use it to understand demand, prioritize content, and brief creative. Redact health context before anything leaves for an ad platform.
Send platforms only generic, conversion-oriented events, Lead, Schedule, Contact, with no condition in the URL, title, or parameters. Do the condition matching where it’s allowed: in Search keywords and contextual placements, where the user’s query is the signal, not a profile you built about them.
Browser pixels are increasingly blocked (ITP/Safari, ad-blockers, cookie decay). Server-side tagging via a first-party subdomain restores match quality and gives you a redaction chokepoint. Architecture:
tag.vanevery.com→
redact health context→
GA4 / Google Ads / Meta CAPI
Fire each conversion from both the browser pixel and CAPI with a shared event_id so Meta counts it once. Generate it browser-side with crypto.randomUUID() and carry it through hidden form fields / scheduler callbacks. Push EMQ up with hashed email/phone captured at form submit (post-consent), plus fbp, fbc, IP and user-agent.
// Compliant Meta CAPI payload, note: NO condition data { event_name: "Lead", event_time: 1718800000, event_id: "shared-uuid-browser+server", // dedup key action_source: "website", event_source_url: "https://www.vanevery.com/contact", // generic page only user_data: { fbp, fbc, client_ip_address, client_user_agent, em: sha256(email), ph: sha256(phone) }, custom_data: { value: 200, currency: "USD" } } // Stripped/avoided: content_name, content_category, search_string, // page_title, condition/symptom/body_part, form free-text, /sciatica URLs
Server-side redaction is necessary but not sufficient. If the browser pixel fires on /sciatica with auto-advanced-matching on, Meta receives the sensitive URL before your server container ever touches it. Disable the browser pixel’s automatic event capture and advanced matching on condition pages; route those pages’ events through the server container only, post-redaction.
Wire all four signals explicitly: ad_storage, analytics_storage, ad_user_data, ad_personalization. On condition pages, default ad_personalization to denied and set allow_ad_personalization_signals:false. Enhanced Conversions fire only when ad_user_data is granted, using normalized hashed email/phone from submitted leads. GA4 still measures behavior internally; you simply never turn condition cohorts into ad-platform audiences.
| You wanted | Why it breaks | The compliant equivalent that still works |
|---|---|---|
| Sciatica-page-visitor remarketing audience | Health signal, any label | Search/PMax on “sciatica relief Royal Oak”, query supplies intent |
| Retarget condition-video viewers (4.5M views) | Health-derived audience | Use videos as landing/creative & organic SEO/GEO assets; retarget only generic site/booking events |
| Lookalikes off patient list by condition | Sensitive source list | Broad local geo + generic conversion optimization; LAL only off consented, non-condition lead lists if counsel approves |
| “Funnel stage” behavioral audiences | Often health-coded | Generic Schedule/Lead events & offline conversion stages feeding bid optimization |
How to do it right, landscape and risk-management options, not legal advice.
Your decision, that tracking non-active-member public-site visitors raises no HIPAA/PHI concern, settles the HIPAA question. But HIPAA is only one of three gates. The operational constraints are the other two: ad-platform policy (Meta/Google) and FTC/state privacy law. This section is the landscape so you can make informed risk calls. It is not legal advice; a healthcare-marketing attorney should sign off before launch.
Lead/Schedule/Purchase and disable pixel-based retargeting entirely. Enforcement went full on Feb 14, 2025.event_source_url, content_name/category, search_string, and condition-bearing UTMs. They can strip params, restrict the event from audience-building, or down-weight optimization. Redact enough to be safe and you’ve destroyed the segmentation you wanted, which is exactly why the engine moves to Search.data_processing_options:["LDU"] is a US-state privacy flag. It does not authorize sending health data, does not make Meta a HIPAA-safe processor, and over-use degrades optimization.Sharper than Meta. Google prohibits targeting, remarketing, Customer Match, similar-audience modeling, or personalized delivery based on sensitive health interests or medical conditions. Google inspects page content, URLs, list source rules, list names, ad copy, and landing pages. A list called “Website Visitors 30d” populated by condition-page visitors is still a health-derived audience; hashing does not cleanse it. The clean exception is Search: the user’s live query is contextual intent, not a profile, so condition keywords are fine even though condition audiences are not.
This is the gate that has produced $100M+ in healthcare-pixel penalties since 2023, and it’s where your “unauthenticated public visitor” reasoning is actually strongest, with two important caveats.
HHS OCR’s 2022 bulletin claimed that an IP address + a visit to an unauthenticated health-condition page could itself be PHI. A federal court vacated exactly that rule (“the Proscribed Combination”) on June 20, 2024 in AHA v. Becerra; HHS dropped its appeal Aug 29, 2024, so the vacatur is controlling law through 2026. Translation: IP + a public condition-page view is not per se PHI, which aligns with your risk decision for non-active-member public browsers.
None of this blocks the plan. It says: keep pixels off authenticated pages, run a real consent banner (Consent Mode v2), redact health context server-side, and have counsel confirm the consent + disclosure posture before launch. The measurement/activation split (§2) is precisely the architecture that satisfies these gates.
Server-side does not exempt you. If your server sends {event:"ViewContent", url:"/neck-pain", user_data:{em:<hash>}} to Meta, your server just transmitted health-interest + identifier to a non-BAA third party, same exposure, different origin. Meta will not sign a BAA and explicitly shifted liability to advertisers in Jan 2025. CAPI is for durability and match quality, not compliance cover. The protection comes from what you redact, not where the call originates.
Search for condition intent Generic Lead/Schedule events Server-side redaction chokepoint Consent Mode v2 + clear cookie banner Offline conversions (booked/showed), no diagnosis Broad local-geo prospecting on Meta Claims-reviewed ad copy
Condition-page visitor audiences Condition-video viewer retargeting Send condition URLs/titles to platforms Lookalikes off patient/condition lists Treat LDU as health cover “Still suffering from sciatica?” diagnose-in-copy
Chiropractic ad copy can’t imply guaranteed cures, diagnose the viewer, or overstate typical outcomes. “Still suffering from sciatica?” is riskier than “Chiropractic appointments in Royal Oak.” Run creative through a claims check, the fleet can do a first-pass automatically against a banned-claims list.
Where the highest-intent, lowest-CAC demand lives. Lead here.
| Monthly / volume | Strategy | Note |
|---|---|---|
| <$2K or <15 conv/mo | Manual CPC | Don’t let AI burn limited budget in learning |
| $2 to 3K, 15 to 30 conv | Maximize Conversions (no tCPA) | Setting tCPA too early kills the campaign |
| $3K+, 30 to 50+ conv | Add tCPA guardrail | ~3-week runway + ~60 conv before edits; keep changes <20 to 30% |
Condition-segmented ad groups (back pain, sciatica, sports injury, prenatal, wellness); CPCs $3.20 to 6.40 segmented vs $4.50 to 9.80 broad. BMM is dead (folded into Phrase). Dynamic number insertion is essential, 40 to 60% of paid calls are existing patients and inflate conversion rates ~47% if unclassified. AI Max for Search: hold until ~300+ monthly conversions.
PMax, add in month ~4 once Search clears 50 conv/mo and call tracking is clean; always with brand exclusions + existing-patient exclusions, real video assets (auto-generated underperforms), and a branded Search campaign running alongside. Channel-level reporting went live Nov 2025. YouTube, Video Action Campaigns auto-upgraded to Demand Gen (Apr 2026; ~40% efficiency gain). Run contextual condition placements/topics (allowed), not per-condition remarketing lists (banned, §5). $50 to 100/day minimum to optimize; lead with the outcome before the 5-sec skip.
Don’t jump to tight tCPA. Automated bidding gets unstable below ~15 to 30 meaningful conversions/mo per campaign (50+ is solid). Seed with Maximize Conversions, consolidate campaigns, use phrase/exact + strong negatives, then graduate to tCPA. Optimize in stages: (1) calls >60 to 90s & form leads → (2) qualified lead / booked → (3) arrived new-patient → (4) care-plan / membership started. Import offline conversions with gclid/gbraid/wbraid. Don’t let Google optimize forever to cheap button-clicks.
Google removed AI Overviews from local healthcare queries (confirmed 2026). “Chiropractor near me” reverts to map-pack + organic, so the zero-click erosion hammering other industries doesn’t hit VE’s core terms. Local SEO + LSA + GBP are the durable high-ROI core, not a channel under threat.
A supporting awareness & generic-demand role, not the targeting engine.
There’s a real, defensible exception to the “no retargeting” rule, and it matters because of VE’s 4.5M video views. On-platform engagement audiences (people who watched VE’s videos on FB/IG, page engagers) are built from Meta-native engagement, not from pixels, customer lists, or off-site health events, and are not hit by the H&W data-layer restrictions. This is the most defensible warm audience VE has. But there’s a precise line:
Meta engagement audiences are usable as neutral brand-engagement signals; Google condition-video remarketing is not usable at all; and anything named, segmented, seeded, or messaged around a specific condition becomes health-derived targeting that gets disabled.
| Tactic | Verdict | Why |
|---|---|---|
| Meta audience: “watched VE educational/testimonial videos” (neutral, grouped) | Defensible | On-platform engagement, no condition encoded |
| Meta lookalike off all VE video/page engagers | Most defensible LAL | Neutral, aggregated seed |
| Meta audience: “sciatica video viewers,” “neck-pain viewers” | Disabled | Name/definition encodes a condition (Sept 2025) |
| Per-condition YouTube remarketing lists in Google Ads | Not allowed | Google bans consumer-health remarketing outright |
| YouTube contextual placements/topics/keywords (Google) | Allowed | Context, not a personal health profile |
Too permissive = “retarget every condition video viewer by condition” (recreates health targeting). Too restrictive = “Meta can never retarget video viewers” (leaves VE’s best asset idle). The win is neutrally-named Meta video-engagement audiences + lookalikes, with condition-matching done in creative served to broad local audiences.
Meta chiro CPL ~$8 to 20/lead; healthcare CPM ~$27 (peaked $38.70 Jan 2026); Reels ~26% cheaper CPC than Feed. Retargeting warm CPM $6 to 12, CVR 5 to 12%. Full-funnel split ~70% prospecting / 20% testing / 10% retargeting.
No condition-page or condition-video retargeting on Meta. No lookalikes off patient/condition lists. Meta is for broad local demand generation + generic appointment conversion, measured by booked patients via offline feedback, not vanity CPMs.
What’s real in 2026, what’s hype, and where VE gets in early.
| Development | Status | Relevance to VE |
|---|---|---|
| ChatGPT Ads launched (US, Free/Go), self-serve Ads Manager open May 2026, no spend minimum, contextual, CPC ~$3 to 5, CPM ~$25 | Confirmed | Catches research-mode users (“how to fix neck pain”), not map-pack intent. $500 to 1K test, not a pivot. |
| Google AI Overviews removed from local-health queries | Confirmed | Biggest single fact here. Local SEO/LSA stay durable for VE’s core terms. |
| Google AI Mode ads (Conversational Discovery + Highlighted Answers); PMax/AI Max auto-qualify | Confirmed (May 2026) | May matter faster than ChatGPT ads, rides Google’s existing intent graph. Captured by running PMax/AI Max. |
| Perplexity abandoned ads (Feb 2026), subscription-only | Confirmed | The only way into Perplexity is organic GEO. No pay-to-play. |
| llms.txt, ~10% adoption; Anthropic & Perplexity confirmed read it; most AI bots skip it | Low ROI | VE already has it. Leave it; don’t invest further. Near-zero clinic ROI. |
Because of the local-health carve-out, the win is not llms.txt or AI-written blog volume. It’s local authority + reputation: drive Google review velocity with condition-named outcomes; earn third-party local mentions (Royal Oak chamber, Oakland Press/Patch, gyms, running clubs, employer wellness pages, podcasts); publish condition pages with named-doctor expert quotes; lock complete LocalBusiness/Chiropractic + Physician + FAQPage schema; keep it fresh. GEO for VE = local SEO + digital PR + structured expert content.
Don’t shift budget from LSA/Search. After attribution is solid, run a $500 to 1K/mo, 60 to 90-day controlled test against contextual problem queries (“chiropractor vs physical therapy,” “desk-job neck pain”), to educational landing pages with fast booking + insurance clarity + local proof. Judge by booked consults and new patients, not CPC. If you can’t trace ChatGPT click → call/form → appointment → patient, don’t buy it yet.
Monthly, run a fixed prompt set across ChatGPT, Gemini, Claude, Perplexity, and Google AI Mode, “best chiropractor in Royal Oak MI,” “chiropractor for sciatica near Royal Oak,” “Van Every reviews,” plus competitor-comparison prompts, logging whether VE appears, which sources are cited, sentiment, and competitors named. The fleet can fully automate this (it already has Perplexity + multi-model access). Paid trackers if desired: Profound, Scrunch AI, Otterly.AI, Peec AI; BrightLocal/Whitespark for local pack.
Over-hyped: llms.txt, ChatGPT ads as a near-term Google replacement, AI-Overview optimization for “chiropractor near me” (carve-out), schema as magic, AI-generated content volume (dilutes trust). Under-hyped: offline-conversion quality, call tracking + call scoring, review recency/specificity, Google AI Mode ads, and front-desk workflow discipline.
Build the intelligence layer; buy the transport and reliability primitives.
The fleet can replace a lot of GoHighLevel’s feature surface, but “near-zero cost” is the wrong frame. The true cost of a bespoke build is on-call ownership: monitoring, deliverability, consent handling, edge cases, and recovery when ChiroHD or a browser flow changes. A missed-call-text-back down for two hours isn’t a bug, it’s lost patients. The question isn’t “can the fleet build it?” It’s “who wakes up when SMS delivery silently degrades?”
GHL @ ~$300/mo is cheap operational insurance if VE wants one vendor to own the CRM plumbing rather than becoming the vendor itself.
“No API” is not a footnote. To get appointment/lead data out for offline conversion tracking, in order of preference: (1) native scheduled exports/reports; (2) parse ChiroHD notification emails into structured events; (3) Playwright RPA for back-office daily reconciliation only, never the real-time path; (4) a front-desk “mark status after visit” checklist. Avoid live screen-scraping as a critical dependency. Treat ChiroHD as clinical truth, reconciled daily, and lean on CallRail/WhatConverts to bridge calls/forms/click-IDs back to Google Ads.
Cheap, monitored stack: Cloudflare Workers/FastAPI ingest · Postgres/Supabase state · Redis/BullMQ or Temporal jobs · Twilio/Telnyx SMS · Sentry + Healthchecks.io liveness · Metabase/Looker reporting. Templates are deterministic, not AI-generated at send time. Don’t make n8n the sole critical path unless it’s hosted, monitored, and has retry/dead-letter you trust.
Needs: verified-visit trigger, suppression rules (no request after a bad outcome/complaint/refund/recent prior request), consent & opt-out tracking, delivery status, GBP-first link routing, staff override, audit log, natural-looking throttling, and no review gating (don’t pre-screen for happy patients, that’s against Google’s policy). If ChiroHD can’t emit a clean “completed appointment,” a daily export or front-desk checklist beats brittle automation.
My v1 said “fleet replaces GHL for near-zero cost.” Corrected: build the intelligence layer, buy the transport/reliability primitives. The fleet’s edge is brand-voice content, analysis, QA, and the monitoring/attribution brain, not being the pager-duty owner of carrier-grade SMS. Replacing GHL means becoming the vendor; only do it where you’ll truly own production.
Mapped to VE’s real unit economics, with a reality check on the math.
| New-patient exam | $200 |
| Consult | $50 |
| Avg care plan | $2,500 |
| Est. LTV | ~$2,275 to 2,500 |
| Target CAC | $80 to 150 (LSA/Search) |
| LTV : CAC | 6 to 12 : 1 |
$80 to 150 CAC is realistic for LSA + tight Search, but naive as a blended target across Meta/YouTube/PMax. $7K ÷ 42 net-new = ~$167 each before no-shows, junk leads, and care-plan-acceptance drop-off. So: concentrate spend on the proven low-CAC channels first; treat Meta/AI-search as small, measured tests. The way you protect the CAC is offline-conversion feedback + front-desk close-rate, not more channels.
| Channel | Monthly | Role | Primary KPI |
|---|---|---|---|
| Local Services Ads | $2,500 | Lowest-CPL core; lead here | Booked patients / lead |
| Search (condition + insurance + brand) | $1,800 | Compliant high-intent home | Qualified lead → booked |
| Meta (broad local + generic conv.) | $1,200 | Awareness & generic demand | New-patient source quality |
| YouTube / Demand Gen | $500 | Broad local awareness | Assisted conversions |
| Tooling (Stape, call tracking, monitoring) | $300 | Attribution backbone | Match rate / data quality |
| Emerging test (ChatGPT ads / AI Mode) | $700 | Measured 60 to 90d test only | Traceable bookings |
Ramp to $8K once CAC holds <$150 blended and offline conversions are live. Marketing budget target = 8 to 12% of gross in growth mode. Don’t scale spend before attribution is closed-loop.
Membership/care-plan conversion (3 to 5× LTV) and reactivation of existing patients are $0-CAC revenue. Front-desk speed-to-lead, missed-call recovery, no-show reduction, and care-plan close-rate can outperform any media optimization. Model these alongside ad spend, they’re the cheapest path to $1M.
Attribution first, then channels, then scale. Measure before you ramp.
tag.vanevery.com, GA4 + Consent Mode v2, Meta CAPI with redaction + event_id dedup. Build the daily ChiroHD reconciliation → offline conversion feed.New-patient source quality and incrementality (LSA/brand/PMax can cannibalize existing demand), call answer-rate & speed-to-lead, booked, to, showed rate, care-plan close-rate, and revenue-per-channel. CPL is a leading indicator; booked paying patients is the scoreboard.
This plan was built Opus ↔ Codex. Three GPT-5.5 adversarial passes at xhigh reasoning materially reshaped it.
event_id dedup, EMQ, the browser-pixel-defeats-redaction trap, LDU is not a health mode, staged bid optimization, tCPA volume thresholds.A targeted pass resolved a real conflict between two research findings: the policy research said on-platform video-engagement audiences survive Meta’s H&W restrictions (“most defensible warm audience”), while the Google/Meta playbook wanted per-condition YouTube remarketing lists. Codex drew the precise line (§5): neutrally-named Meta video-engagement audiences + lookalikes are defensible; Google condition-video remarketing is banned; anything named/segmented/seeded/messaged around a condition becomes health-derived targeting. This rescued VE’s 4.5M-view library as a usable asset instead of writing it off entirely.
Net effect: the strategy shifted from an aggressive pixel-remarketing engine to a Google-intent + local-authority + closed-loop-attribution engine, with Meta (incl. defensible video-engagement audiences), YouTube, and AI-search as disciplined supporting tests. The single highest-conviction add, offline conversion feedback, came directly out of the adversarial loop. On your pixel decision: the research supports the HIPAA half of it (AHA v. Becerra vacated the IP+unauthenticated-page-is-PHI rule, §3), but the binding operational constraint turned out to be ad-platform policy, not HIPAA, so the plan keeps the data-capture you approved while moving condition activation into the channels that permit it.
Method & sources: Opus 4.8 strategist; 3 × codex exec --model gpt-5.5 -c model_reasoning_effort=xhigh adversarial passes (text-only, no computer-use); 3 parallel WebSearch/WebFetch research agents. Key sources: OpenAI (ChatGPT ads); Search Engine Land/Journal (AI Overviews, Perplexity, Demand Gen); Princeton GEO study; Foley Hoag / LiveRamp / Freshpaint (Meta H&W rules); Google Ads policy + GA4 docs; FTC primary sources (GoodRx/BetterHelp/Cerebral/HBNR); Quarles/Goodwin (AHA v. Becerra, OCR); LeadGulls/BlueGrid/DigitalApplied (chiro LSA/Search/YouTube/Meta benchmarks); and VE internal research dossiers (channel CPLs, unit economics, GEO checklist). Benchmark figures are directional industry aggregates, not platform guarantees; verify before quoting as hard numbers, and obtain healthcare-marketing counsel before launch.