How lead attribution works

The architecture of MLS Genie's lead attribution — what we capture, where it comes from, and why it works when Google Analytics doesn't.

The problem

Around 30–40% of real visitors today block Google Analytics. Ad blockers, Safari's Intelligent Tracking Prevention, Brave's built-in shields, Firefox's Enhanced Tracking Protection, and declined cookie banners all strip the data analytics platforms depend on. If your CRM's attribution is built on top of Google Analytics, you lose source information for that third of every form submission.

The MLS Genie™ approach — three independent layers

We capture attribution at three independent points, so a failure at one layer never costs you the lead's context.

Layer 1 — JavaScript first-party tracker

A small first-party script runs on your domain (not Google's). It captures the referrer and sends attribution to your own site, and sets the mlsg_visitor cookie that ties a visitor's browsing together. Ad blockers don't target it because it's on your domain and not on any blocklist. This catches roughly 95% of visitors.

Cookie consent

When your site has a cookie consent banner — GoConsent, or any consent tool that supports the WordPress Consent API — the mlsg_visitor cookie waits until the visitor accepts analytics cookies. If they decline, it is not set, and one already there is removed. Signed-in visitors are followed by their account instead of the cookie. With no consent tool on the site, the cookie is set as before.

Layer 2 — Server-side first-touch capture

For the remaining ~5% (visitors with JavaScript fully disabled or extreme privacy hardening), MLS Genie™ also captures attribution server-side on first page load. It reads HTTP_REFERER, Sec-Fetch-Site, and User-Agent headers directly from the request — no client-side code, nothing for an ad blocker to interfere with. Even visitors using NoScript still get attributed.

Layer 3 — GA4 async enrichment (when available)

If the visitor's GA4 Client ID was captured at form submit, MLS Genie™ queries the Google Analytics Data API asynchronously to enrich the lead row with GA's own source, medium, campaign, device, and session attribution. Visited leads earn a green "Verified via GA" pill. This is the cherry-on-top layer for the 60% of leads that didn't block GA.

What gets stored

Every lead row receives a guaranteed-non-empty Source field, a Source Resolution token (which lets you audit how confident the attribution is), and — when available — Campaign, Lead Action, Geo Location, Visitor Cookie ID, GA4 Client ID, and Landing Signal columns.

How CINC compares

CINC presents the form name (e.g. "Contact Form") as the source for visitors GA missed. That looks like attribution on the surface but is functionally just relabelling the form. MLS Genie™ keeps the form name in a separate Lead Action field, so you always know whether the source label was derived attribution or a fallback. See Source Resolution for the full hierarchy.

Secret Link