Introduction

Bridging the Attribution Gap with Cogwheel Attribute

Welcome to the Cogwheel Attribute documentation! This platform provides a multi-tenant link rewriting and form attribution engine tailored for hoteliers and marketing agencies.

Project Overview Dashboard

The Challenge: Brand vs. Vanity Websites

For brand hoteliers (e.g., Marriott Autograph Collection, Hilton Curio Collection, IHG Independent), digital marketing usually spans two separate ecosystems:

  1. The Brand Booking Engine: Managed by the parent brand (e.g., www.marriott.com). This is where room availability, rates, and ecommerce transactions occur.
  2. The Vanity Website: An independent, custom website managed by the property's local marketing team or agency (e.g., www.vanityresort.com) to showcase identity, dining, and amenities.

When a visitor clicks "Book Now" on the vanity site, they are redirected to the brand booking engine:

https://www.marriott.com/reservation/availability.mi?propertyCode=YOUR_PROPERTY_CODE

Since the property does not control the brand's checkout pages, all ecommerce and booking data is lost to the vanity site's analytics.

Brand Booking Engine Tracking Solutions

To attribute bookings, hotel brands use custom tracking parameters appended to the booking URL. For example:

  • Marriott uses the SCID (Source Campaign Identifier) appended via the cid parameter.
  • Hilton uses the WT.mc_id parameter.
  • Hyatt uses the src parameter.

When the brand's analytics system (such as Adobe Analytics or Marriott Intelligence) parses these IDs, it records the reservation against that specific campaign.

The Critical Flaw: Hardcoded Campaign IDs

Many agencies log into the brand's campaign generator (such as the Marriott Campaign Framework, Hilton Link Builder, etc.), generate a single general "Vanity Website" campaign ID, and hardcode it across every "Book Now" link.

  • The Result: All bookings (Google Ads, Meta Ads, Organic, Email) are tracked as "Vanity Website" traffic.
  • The Impact: Paid media teams, SEO teams, and Social media teams have no visibility into which channels actually drive revenue, leading to skewed ROAS (Return on Ad Spend) calculations.

The Solution: Cogwheel Attribute

Cogwheel Attribute sits invisibly on your vanity website. It dynamically determines how the visitor arrived at the site by checking landing URL parameters, click IDs, referrers, and UTM tags.

Based on configurable rules, it intercepts clicks on "Book Now" links and forms, then injects the correct, channel-specific SCID in real time before redirecting them.

1. Visitor Arrivesvia Ad click / campaign2. Vanity WebsiteClicks 'Book Now'3. Interceptor APIRewrites link dynamically4a. marriott.comInjects Marriott cid/scid5a. MINT ReportingRevenue attributed directly4b. hyatt.comInjects Hyatt src code5b. Adobe AnalyticsCampaign attributed at brand4c. hilton.com / othersInjects WT.mc_id / ref params5c. Brand PMS & BIAttributed bookings match channels

Platform Architecture at a Glance

Cogwheel Attribute is built on an Edge-first architecture utilizing Cloudflare Workers:

  • Lightweight Interceptor Widget: A Vanilla TS script (~10KB) loaded on your vanity site.
  • Edge Rules Engine: A Cloudflare Workers Hono API delivering configurations under 50ms.
  • Dynamic Control: Create rules, target links, and view analytics in the Next.js dashboard.

On this page