How it works

One tag in. De-identified signal out.

minusPHI is a relay that sits between your website and your analytics. Every event passes through four checks before anything leaves — and if any check can't prove an event is safe, it never gets sent.

Inside the relay

Four checks, in order, on every single event.

Classify the page.

The relay first decides what kind of page the event came from. Only public marketing pages continue. Patient portals, intake and scheduling flows, confirmation pages, and any URL carrying a health-condition term stop here — nothing about them is ever sent.

Not a marketing page? Suppressed.
Allow-list the fields.

Forwarding is deny-by-default. Each field in the event must appear on an explicit allow-list to survive: event name, page path (GA4 only), traffic source, ad-click ID. A field the relay doesn't recognize isn't "passed through just in case" — it's dropped.

Unknown field? Dropped.
Strip the identifiers.

IP addresses, device fingerprints, third-party cookies, and anything resembling a name, email or phone number are removed — hashed versions included. Sessions are counted with a random first-party ID that is never tied to a person.

IP & PII? Never forwarded.
Verify, then forward.

An independent self-check inspects the outgoing event one last time — separate from the classifier that let it through. Only if it passes does the relay forward it: page views and sources to your GA4, conversions to your Meta pixel via the Conversions API.

Provably clean? Forwarded.

Watch an event get cleaned

What arrives at the relay vs. what actually leaves it.

Arrives at the relay
"event":"book_appointment"kept
"gclid":"Cj0KCQjw8…"kept
"ip":"203.0.113.7"stripped
"email":"jane.doe@gmail.com"stripped
"phone":"+1 (555) 014-2276"stripped
"_fbp":"fb.1.171982…"stripped
"device":"iPhone15,3 iOS 19.2"stripped
"referrer":"portal.clinic.com/results"stripped
Leaves the relay
"event":"book_appointment"
"gclid":"Cj0KCQjw8…"
"source":"google / cpc"
"session":"rnd_7f3a91c2" // random, first-party

The conversion and its ad-click ID survive — that's what campaigns optimize on. The person doesn't.

Setting it up

Five minutes, no developer required.

Step 1

Connect your destinations.

Sign in and connect Google Analytics with one click — and your Meta pixel too, if you run Facebook or Instagram ads. Any of them unlocks your tag, and your reports stay in the tools you already use. Agency runs your ads through Google Tag Manager? Connect your GTM server container instead — Microsoft Ads, TikTok and every other tag in it then works from de-identified events, with the Microsoft click ID passed on conversions so Bing campaigns attribute.

Google Analytics 4 Connected
Meta Pixel · Conversions API Connected
GTM server · Microsoft Ads & more Optional
Step 2

Paste one line. Remove the old pixels.

Add the minusPHI tag before </head> — that's the whole install. There's nothing to configure server-side, and conversions like phone clicks, Calendly/Zocdoc bookings and contact forms are detected automatically.

WordPressSquarespaceWixWebflowCustom
index.htmlstyle.css
<!-- your entire analytics stack, after minusPHI -->
<script src="https://app.minusphi.com/mphi.js"
        data-site-key="mphi_XXXXXXXXXX"
        data-ingest="https://ingest.minusphi.com/">
</script>
Step 3

Watch clean data flow.

Traffic shows up in your GA4 and conversions land on your Meta pixel within minutes. Your dashboard shows exactly what was forwarded and what was suppressed — so you can prove what left, and what never did.

What exactly can each vendor receive? →

Relay activity — live
page_view /about-us → GA4
book_appointment + gclid → GA4 · Meta
page_view /portal/results suppressed
phone_click → GA4 · Meta
field "email" in payload stripped

Conversions, detected automatically

The events your ad campaigns need, without wiring anything up.

Phone clicks

Taps on tel: links — the front door of most practices — are captured as conversion events the moment the tag is installed.

Booking links

Clicks out to Calendly, Zocdoc and other scheduling tools are recognized as booking conversions automatically. The destination page itself is never tracked.

Contact forms

Form submissions fire a lead event — the fact that a form was submitted, never what was typed into it. Field contents don't leave the browser.

Go deeper

The details, for the people who need them.

See it running on your own site in five minutes.

Start free

No credit card required · Works with any website platform