PageSourceSearch

https://mcpanalytics.ai/js/signup-attribution.js?v=de3e28e14627

js mcpanalytics.ai collected 2026-09-25 05:32:27 UTC 2,775 bytes, 56 lines download raw bytes

1/**
2 * Signup Attribution — RETIRED 2026-08-30 (LAT-2642). This file is now a no-op.
3 *
4 * WHAT IT USED TO DO
5 * It read `data-signup-source` off signup CTAs and stashed the label, the GA
6 * client id, the landing path and the UTM set into `mcp_attr_*` first-party
7 * cookies on `.mcpanalytics.ai`. Its own header named the consumer: "the webapp
8 * JWT callback in auth.ts", which persisted them to webapp.UserAttribution.
9 *
10 * WHY IT IS GONE
11 * The webapp was decommissioned on 2026-07-06 (LAT-1174). Nothing has read
12 * those cookies since. Verified 2026-08-30 across all three repos:
13 *
14 *     grep -rn "mcp_attr" mcpanalytics-operations/ api-mcp-prod/ dev-generator-vm/
15 *
16 * returned this file and nothing else. The only cookie reads left server-side
17 * are WIDGET_COOKIE_NAME (mcp_orchestrated.py:2094, widget_chat.py:192). So the
18 * 14 CTA labels on the homepage — ds-email, hero-demo, band-trial and the rest —
19 * were written into the browser and died there, for two months.
20 *
21 * It also carried two dead branches from that decommission: `decorateUrl` was
22 * only reachable behind
23 *     link.href.indexOf('account.mcpanalytics.ai (legacy webapp signup, retired)')
24 * a find-and-replace that ate a domain literal into prose, so the comparison
25 * could never match.
26 *
27 * WHERE ATTRIBUTION LIVES NOW
28 * `js/mcp-analytics.js` — `_clickDescriptor` reads `data-signup-source` and
29 * ships it as `properties.src` on the click event that already fires for every
30 * CTA. It lands in `analytics.events` alongside visitor_id, session_id and the
31 * utm_* columns the collector was already capturing on its own (see the utm
32 * handling at mcp-analytics.js:198). No cookie, no round-trip, no second
33 * consumer to keep alive.
34 *
35 *     SELECT properties->>'src' AS cta, count(*), count(DISTINCT visitor_id)
36 *     FROM analytics.events
37 *     WHERE event_name='click' AND properties ? 'src'
38 *       AND server_ts > now() - interval '24 hours'
39 *     GROUP BY 1 ORDER BY 2 DESC;
40 *
41 * WHY THIS FILE STILL EXISTS AT ALL
42 * Several pages still <script src> it. Emptying it is a strictly smaller change
43 * than editing every page that references it, and it leaves this explanation
44 * where the next person looking for signup attribution will actually stand.
45 * Deleting the file and its script tags is fine follow-up work; it is not
46 * required for correctness.
47 *
48 * Decision: `it`, 2026-08-30 — "emit the landmark, drop the cookie path",
49 * explicitly NOT a new column on mcp.users, because signup_source is a CHANNEL
50 * field (LAT-1531: web / mcp / mcp_m2m) and overloading it would break the one
51 * attribution field that is currently correct.
52 */
53(function () {
54    'use strict';
55    // Intentionally empty. See the header above before adding anything here.
56})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.