← back to Consulting Designerwallcoverings Com
TK-19: reconcile attribution docs to live GA4 measurement ID G-53F1QBZSG0 (property already existed; create-property memo void)
7ca0f698547b467b14b0becd05ae9b95824cd371 · 2026-07-27 12:37:32 -0700 · Steve Abrams
Files touched
M data/attribution-scheme.jsonM docs/attribution-spec.mdM snippets/gtag.html
Diff
commit 7ca0f698547b467b14b0becd05ae9b95824cd371
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Mon Jul 27 12:37:32 2026 -0700
TK-19: reconcile attribution docs to live GA4 measurement ID G-53F1QBZSG0 (property already existed; create-property memo void)
---
data/attribution-scheme.json | 2 +-
docs/attribution-spec.md | 8 ++++----
snippets/gtag.html | 14 +++++++++-----
3 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/data/attribution-scheme.json b/data/attribution-scheme.json
index c6f0840..8edba56 100644
--- a/data/attribution-scheme.json
+++ b/data/attribution-scheme.json
@@ -7,7 +7,7 @@
"authored_by": "yolo-worker (SAFE-ONLY prep, no live writes)",
"destination_store": "designer-laboratory-sandbox.myshopify.com (LIVE Designer Wallcoverings Shopify store — legacy misnomer, treat as production)",
"storefront_domain": "www.designerwallcoverings.com",
- "ga4_status": "Property provisioned for the main store per dw-analysis.json; measurement ID (G-XXXX) not yet rolled out. This scheme + the gtag snippet + the two pending-approval memos close that gap.",
+ "ga4_status": "LIVE. GA4 property 294178030 / measurement ID G-53F1QBZSG0 already exists; gtag is installed and collecting on the LIVE Shopify store, with Consent Mode v2 verified on the live theme (per commit 4bcdbe7, ~$6.9k/7d revenue tracked). No create-property step is needed — that memo is void. This scheme's remaining open items are the per-channel UTM stamping, the GATED Shopify discount codes, and marking the commerce/custom events as key events in GA4 Admin.",
"channels_connected": 7
},
diff --git a/docs/attribution-spec.md b/docs/attribution-spec.md
index b95a552..312f387 100644
--- a/docs/attribution-spec.md
+++ b/docs/attribution-spec.md
@@ -2,7 +2,7 @@
**Engagement:** DW consulting engagement (TK-19)
**Date:** 2026-07-26
-**Status:** SPEC / PREP ONLY — no GA4 property created, no live theme touched, no Shopify discount created. Those steps are gated for Steve's approval (see `~/.claude/yolo-queue/pending-approval/`).
+**Status:** SPEC / PREP. The GA4 property already exists and is live (property `294178030`, measurement ID `G-53F1QBZSG0`, gtag collecting on the live store, Consent Mode v2 verified — commit 4bcdbe7), so the "create GA4 property" step is void. Still gated for Steve's approval: the Shopify discount codes and any live-theme changes (see `~/.claude/yolo-queue/pending-approval/`). No live theme is touched by this doc.
**Machine-readable companion:** [`data/attribution-scheme.json`](../data/attribution-scheme.json)
**Guiding decision:** DTD verdict **A — attribution before optimization**. You cannot optimize a channel mix you cannot measure; instrument first, then optimize.
@@ -10,7 +10,7 @@
## 1. The problem this solves
-DW has **7 connected marketing channels** (Facebook, Instagram, TikTok, YouTube, Bluesky, Threads, LinkedIn) driving traffic to the flagship **LIVE Shopify store** (`designer-laboratory-sandbox.myshopify.com`, served at `www.designerwallcoverings.com`). Today none of that traffic is attributable to revenue: the GA4 property is provisioned but **no measurement ID is installed**, and links carry no consistent UTM stamp. Every social conversion currently lands in "Direct / unknown."
+DW has **7 connected marketing channels** (Facebook, Instagram, TikTok, YouTube, Bluesky, Threads, LinkedIn) driving traffic to the flagship **LIVE Shopify store** (`designer-laboratory-sandbox.myshopify.com`, served at `www.designerwallcoverings.com`). The GA4 property **already exists** (property `294178030`, measurement ID **`G-53F1QBZSG0`**) and gtag is **installed and collecting** on the live store, so page-level and revenue data flow today. What's still missing for full channel attribution is a **consistent UTM stamp** on outbound links and the per-channel coupon path — without them, social conversions still collapse into "Direct / unknown."
Two attribution paths close the gap, and we run **both** because each fails where the other survives:
@@ -128,8 +128,8 @@ Reserved for paid keyword/audience on `paid-social` only. Omit for organic.
This spec is prep. The following are drafted to `~/.claude/yolo-queue/pending-approval/` and require Steve's go:
-- **`attribution-ga4-property.md`** — create the GA4 property + web data stream, obtain the `G-XXXX` measurement ID, configure key events. (Checks for the already-provisioned property first — idempotent.)
-- **`attribution-gtag-install.md`** — install the gtag snippet (`snippets/gtag.html`) into the LIVE Shopify theme once the real measurement ID exists.
+- **`attribution-ga4-property.md`** — ~~create the GA4 property + web data stream~~ **VOID / already done.** The GA4 property (`294178030`) and web data stream already exist and the live measurement ID is **`G-53F1QBZSG0`** — gtag is installed and collecting on the live store with Consent Mode v2 verified (commit 4bcdbe7). No property needs to be created; creating one would be a forbidden duplicate. Remaining GA4-side work is only marking the commerce/custom events as key events in GA4 Admin.
+- **`attribution-gtag-install.md`** — already satisfied on the live store: gtag for `G-53F1QBZSG0` is installed and collecting on the live Shopify theme (Consent Mode v2 verified, commit 4bcdbe7). `snippets/gtag.html` is a reconciled local reference copy only — do not re-install it over the live theme.
- **Shopify discount codes** — creating the seven `DW-*` codes is a live Shopify write and would be drafted separately when Steve wants the coupon path armed.
Local rebuild + commit only. **No deploy** — deploy of the portal is noted in the GA4 memo.
diff --git a/snippets/gtag.html b/snippets/gtag.html
index 8f7b6e0..ad38411 100644
--- a/snippets/gtag.html
+++ b/snippets/gtag.html
@@ -1,10 +1,14 @@
{%- comment -%}
Designer Wallcoverings — GA4 gtag.js snippet
============================================
- PLACEHOLDER measurement ID: G-XXXX ← replace with the real ID from the GA4 property
- (obtained via the gated `attribution-ga4-property` step) BEFORE this goes live.
+ LIVE measurement ID: G-53F1QBZSG0 (GA4 property 294178030, the real DW property).
+ The GA4 property + web data stream ALREADY EXIST — no create-property step is needed.
+ gtag is ALREADY installed and collecting on the LIVE Shopify store (Consent Mode v2
+ verified on the live theme per commit 4bcdbe7). This snippet is a LOCAL reference copy
+ reconciled to the real ID — do NOT deploy it; the live theme already carries its own
+ gtag + Consent-Mode install. Editing here does not change what's live.
- Placement: paste the block below as high in the <head> of `layout/theme.liquid`
+ Placement (reference only): paste the block below as high in the <head> of `layout/theme.liquid`
as possible (immediately after the <meta charset> / <meta viewport> lines,
before other scripts). See docs/gtag-theme-install.md for exact instructions.
@@ -20,13 +24,13 @@
{%- endcomment -%}
<!-- Google tag (gtag.js) — GA4 -->
-<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXX"></script>
+<script async src="https://www.googletagmanager.com/gtag/js?id=G-53F1QBZSG0"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
- gtag('config', 'G-XXXX', {
+ gtag('config', 'G-53F1QBZSG0', {
// Preserve UTM params through internal navigation so source/medium survives to checkout.
'linker': { 'accept_incoming': true },
// DW store hostname — keeps attribution consistent across www + checkout.
← 4bcdbe7 TK-19 CLOSE: GA4 already live (G-53F1QBZSG0, $6.9k/7d revenu
·
back to Consulting Designerwallcoverings Com
·
Refresh sample-only backlog work orders (22,895 rows, 130 ve ef33303 →