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 available
  • first_touch and last_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 name
  • medium: one of cpc, email, social, referral, affiliate, display, video, audio, organic, direct
  • campaign: lowercase, hyphenated, with date yyyymm when recurring
  • content: creative identifier or placement
  • term: 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:

  1. Normalization and validation of UTM parameters.
  2. Cookie and local storage fallbacks for a durable first_touch_ref.
  3. Dedupe by touchpoint_id and event key.
  4. 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 and medium
  • 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:

More TDstats.com: