Case study: improving signup source tracking for VEGAS.XYZ
Background
VEGAS.XYZ is a Las Vegas travel and information site that publishes local news, things to do, and city guides. Their team wanted a reliable view of where business signups come from. Last click reports were not matching day-to-day observations. Sources like organic search and referral were overrepresented, while social ads and newsletters were under-credited. The reporting gap came from inconsistent UTM usage, blocked client-side scripts, and missing events on key pages.
Objectives
The project focused on four goals:
- Establish a consistent taxonomy for acquisition and lifecycle events.
- Capture touchpoints even when ad blockers limit client-side scripts.
- Preserve the original lead source across sessions and devices.
- Produce a single, auditable signup funnel for business accounts.
Measurement design
A unified event framework was defined to make every signup measurable and comparable across channels. The core events:
page_view
with normalized campaign parameters and channel classification.signup_started
on the first interaction with the business signup flow.signup_submitted
when the form posts successfully.account_created
once the confirmation completes.
Each event included a standard set of attributes:
source
,medium
,campaign
,content
,term
channel
(derived mapping from source/medium)touchpoint_id
(deterministic hash)session_id
,device_id
,user_id
when availablefirst_touch
andlast_touch
flags set at collection time
UTM governance and channel mapping
Inconsistent parameters were the primary cause of misattribution. The team introduced a short, strict UTM policy and a reference list of allowed values:
source
: one word, lowercase, vendor or property namemedium
: one ofcpc
,email
,social
,referral
,affiliate
,display
,video
,audio
,organic
,direct
campaign
: lowercase, hyphenated, with dateyyyymm
when recurringcontent
: creative identifier or placementterm
: reserved for paid search queries
A mapping table converted source/medium pairs into a canonical channel such as paid social
, paid search
, organic search
, email
, affiliate
, or direct
. Any invalid or missing parameters were remapped by rules at ingest, never in the dashboard, to keep outputs consistent.
Server-side event collection
To reduce client-side gaps, events posted to a lightweight server endpoint. The collector handled:
- Normalization and validation of UTM parameters.
- Cookie and local storage fallbacks for a durable
first_touch_ref
. - Dedupe by
touchpoint_id
and event key. - Forwarding to the analytics warehouse and conversion APIs.
This approach ensured that signups originating from browsers with stricter privacy settings were still measured. When a client-side script did not run, the server captured the same payload from the form submit path.
Preserving the original lead source
Many signups occurred days after a first visit. A simple first party storage record preserved origin details:
{
first_touch_ref: {
source: "facebook",
medium: "social",
campaign: "biz-signup-202509",
timestamp: "2025-09-02T18:43:12Z"
},
last_touch_ref: { ... },
attribution_model: "position_based_40_20_40"
}
On submit, the signup form posted both first and last touch objects. This created a complete thread from discovery to conversion with no reliance on session continuity.
Data model and QA
The warehouse received fact tables for events and a conformed dimension for campaigns. Daily QA checks validated:
- share of signups with valid
source
andmedium
- top-of-funnel touches per signup
- proportion of signups classified as
direct
- breakdown by device and browser
Any rise in unclassified traffic triggered a rules review. Changes were made in code and in the campaign dictionary to keep history stable.
Outcomes
Reporting aligned with observed channel activity. The share of unknown and generic referral traffic declined as UTMs were standardized and server-side posts filled gaps. Stakeholders could trace each account to a clear origin and view both the first and most recent touch. Campaign comparisons became simpler because the naming was consistent, and weekly wrap-ups required fewer manual adjustments.
Next steps
The next phase includes adding a promotions feed for affiliate partners, tagging placements with consistent content
values, and wiring offline event imports for commercial partnerships. The same structure supports retargeting analysis and churn prevention campaigns without new tracking primitives.
VEGAS.XYZ publishes Las Vegas news and things to do: https://vegas.xyz
Related posts:
Server-side vs client-side tracking for touchpoint integrity
Case study: how touchpoint stats improved online sales and advertising efficiency
Building a touchpoint taxonomy for lead source accuracy
How touchpoint data shapes online sales and advertising spend
Customer journey mapping through touchpoint analysis