Suede Analytics Tracking
Use this Suede measurement playbook to build tracking that supports auditable marketing and product decisions.
Initial Assessment
Check for product marketing context first:
If .agents/product-marketing.md exists (or .claude/product-marketing.md, or the legacy product-marketing-context.md filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
Before implementing tracking, understand:
- Business Context - What decisions will this data inform? What are key conversions?
- Current State - What tracking exists? What tools are in use?
- Technical Context - What's the tech stack? Any privacy/compliance requirements?
Core Principles
1. Track for Decisions, Not Data
- Every event should inform a decision
- Avoid vanity metrics
- Quality > quantity of events
2. Start with the Questions
- What do you need to know?
- What actions will you take based on this data?
- Work backwards to what you need to track
3. Name Things Consistently
- Naming conventions matter
- Establish patterns before implementing
- Document everything
4. Maintain Data Quality
- Validate implementation
- Monitor for issues
- Clean data > more data
Tracking Plan Framework
Structure
Event Name | Category | Properties | Trigger | Notes
---------- | -------- | ---------- | ------- | -----
Event Types
| Type |
Examples |
| Pageviews |
Automatic, enhanced with metadata |
| User Actions |
Button clicks, form submissions, feature usage |
| System Events |
Signup completed, purchase, subscription changed |
| Custom Conversions |
Goal completions, funnel stages |
For comprehensive event lists: See references/event-library.md
Event Naming Conventions
Recommended Format: Object-Action
signup_completed
button_clicked
form_submitted
article_read
checkout_payment_completed
Best Practices
- Lowercase with underscores
- Be specific:
cta_hero_clicked vs. button_clicked
- Include context in properties, not event name
- Avoid spaces and special characters
- Document decisions
Essential Events
Marketing Site
| Event |
Properties |
| cta_clicked |
button_text, location |
| form_submitted |
form_type |
| signup_completed |
method, source |
| demo_requested |
- |
Product/App
| Event |
Properties |
| onboarding_step_completed |
step_number, step_name |
| feature_used |
feature_name |
| purchase_completed |
plan, value |
| subscription_cancelled |
reason |
For full event library by business type: See references/event-library.md
Event Properties
Standard Properties
| Category |
Properties |
| Page |
page_title, page_location, page_referrer |
| User |
user_id, user_type, account_id, plan_type |
| Campaign |
source, medium, campaign, content, term |
| Product |
product_id, product_name, category, price |
Best Practices
- Use consistent property names
- Include relevant context
- Don't duplicate automatic properties
- Avoid PII in properties
GA4 Implementation
Quick Setup
- Create GA4 property and data stream
- Install gtag.js or GTM
- Enable enhanced measurement
- Configure custom events
- Mark conversions in Admin
Custom Event Example
gtag('event', 'signup_completed', {
'method': 'email',
'plan': 'free'
});
For detailed GA4 implementation: See references/ga4-implementation.md
Google Tag Manager
Container Structure
| Component |
Purpose |
| Tags |
Code that executes (GA4, pixels) |
| Triggers |
When tags fire (page view, click) |
| Variables |
Dynamic values (click text, data layer) |
Data Layer Pattern
dataLayer.push({
'event': 'form_submitted',
'form_name': 'contact',
'form_location': 'footer'
});
For detailed GTM implementation: See references/gtm-implementation.md
UTM Parameter Strategy
Standard Parameters
| Parameter |
Purpose |
Example |
| utm_source |
Traffic source |
google, newsletter |
| utm_medium |
Marketing medium |
cpc, email, social |
| utm_campaign |
Campaign name |
spring_sale |
| utm_content |
Differentiate versions |
hero_cta |
| utm_term |
Paid search keywords |
running+shoes |
Naming Conventions
- Lowercase everything
- Use underscores or hyphens consistently
- Be specific but concise:
blog_footer_cta, not cta1
- Document all UTMs in a spreadsheet
Debugging and Validation
Testing Tools
| Tool |
Use For |
| GA4 DebugView |
Real-time event monitoring |
| GTM Preview Mode |
Test triggers before publish |
| Browser Extensions |
Tag Assistant, dataLayer Inspector |
Validation Checklist
Common Issues
| Issue |
Check |
| Events not firing |
Trigger config, GTM loaded |
| Wrong values |
Variable path, data layer structure |
| Duplicate events |
Multiple containers, trigger firing twice |
Privacy and Compliance
Privacy, consent, retention, deletion, and identifier rules vary by
jurisdiction, audience, data type, contract, and platform configuration. Do not
treat this skill as legal advice or declare a universal consent rule.
Before implementation:
- Identify the actual markets, audience age, data categories, vendors,
purposes, and data flows in scope.
- Review current official regulator and platform requirements for those
jurisdictions and configurations; obtain qualified privacy or legal review
when the requirement is unclear or material.
- Document the approved lawful basis or consent state, retention and deletion
behavior, access controls, and prohibited properties.
- Collect only approved data, avoid direct personal identifiers unless the
reviewed design expressly allows them, and test both allowed and denied
consent paths.
Output Format
Tracking Plan Document
# [Site/Product] Tracking Plan
## Overview
- Tools: GA4, GTM
- Last updated: [Date]
## Events
| Event Name | Description | Properties | Trigger |
|------------|-------------|------------|---------|
| signup_completed | User completes signup | method, plan | Success page |
## Custom Dimensions
| Name | Scope | Parameter |
|------|-------|-----------|
| user_type | User | user_type |
## Conversions
| Conversion | Event | Counting |
|------------|-------|----------|
| Signup | signup_completed | Once per session |
Task-Specific Questions
- What tools are you using (GA4, Mixpanel, etc.)?
- What key actions do you want to track?
- What decisions will this data inform?
- Who implements - dev team or marketing?
- Are there privacy/consent requirements?
- What's already tracked?
Tool Integrations
This pack does not ship analytics connectors. Use the user's authorized
property UI, debugger, export, API, or installed connector and verify current
official documentation before constructing a call.
| Tool category |
Typical use |
Required current proof |
| Web analytics |
Sessions, acquisition, web conversions |
Debug event plus property readback |
| Product analytics |
Event funnels, cohorts, retention |
Schema check plus sampled event readback |
| Tag manager |
Controlled client-side deployment |
Preview trace plus published-version ID |
| Customer data router |
Send approved events to destinations |
Source receipt plus destination receipt |
| Session replay |
Diagnose interaction friction |
Consent, masking, sampling, and replay verification |
Boundaries
- Do not claim an event, conversion, consent state, or attribution path works until a current debug or readback proves it.
- Do not mutate production tags, properties, destinations, or consent settings without explicit authorization and a rollback plan.
- Do not collect secrets, direct personal identifiers, or sensitive traits merely because a tool permits them.
- Do not decide business success from a single dashboard number; state the metric definition, window, denominator, and exclusions.
Routing
- Need experiment design or result interpretation -> use
suede-ab-testing.
- Need paid-campaign decisions -> use
suede-ads.
- Need pipeline and CRM attribution -> use
suede-revops.
- Need organic visibility diagnosis -> use
suede-seo-audit.
- From those skills, route instrumentation plans and firing verification back to
suede-analytics.
1---2name: suede-analytics3description: Suede-owned measurement discipline for tracking plans, event and conversion instrumentation, UTMs, attribution, and verification of what actually fires. Use when setting up, auditing, or repairing analytics across web, product, paid, and lifecycle surfaces. NOT FOR: experiment design or significance decisions (use suede-ab-testing), campaign optimization (use suede-ads), or revenue-process architecture (use suede-revops).4---5
6# Suede Analytics Tracking
7
8Use this Suede measurement playbook to build tracking that supports auditable marketing and product decisions.
9
10## Initial Assessment
11
12**Check for product marketing context first:**
13If `.agents/product-marketing.md` exists (or `.claude/product-marketing.md`, or the legacy `product-marketing-context.md` filename, in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
14
15Before implementing tracking, understand:
16
171. **Business Context** - What decisions will this data inform? What are key conversions?
182. **Current State** - What tracking exists? What tools are in use?
193. **Technical Context** - What's the tech stack? Any privacy/compliance requirements?
20
21---
22
23## Core Principles
24
25### 1. Track for Decisions, Not Data
26- Every event should inform a decision
27- Avoid vanity metrics
28- Quality > quantity of events
29
30### 2. Start with the Questions
31- What do you need to know?
32- What actions will you take based on this data?
33- Work backwards to what you need to track
34
35### 3. Name Things Consistently
36- Naming conventions matter
37- Establish patterns before implementing
38- Document everything
39
40### 4. Maintain Data Quality
41- Validate implementation
42- Monitor for issues
43- Clean data > more data
44
45---
46
47## Tracking Plan Framework
48
49### Structure
50
51```
52Event Name | Category | Properties | Trigger | Notes
53---------- | -------- | ---------- | ------- | -----
54```
55
56### Event Types
57
58| Type | Examples |
59|------|----------|
60| Pageviews | Automatic, enhanced with metadata |
61| User Actions | Button clicks, form submissions, feature usage |
62| System Events | Signup completed, purchase, subscription changed |
63| Custom Conversions | Goal completions, funnel stages |
64
65**For comprehensive event lists**: See [references/event-library.md](references/event-library.md)
66
67---
68
69## Event Naming Conventions
70
71### Recommended Format: Object-Action
72
73```
74signup_completed
75button_clicked
76form_submitted
77article_read
78checkout_payment_completed
79```
80
81### Best Practices
82- Lowercase with underscores
83- Be specific: `cta_hero_clicked` vs. `button_clicked`
84- Include context in properties, not event name
85- Avoid spaces and special characters
86- Document decisions
87
88---
89
90## Essential Events
91
92### Marketing Site
93
94| Event | Properties |
95|-------|------------|
96| cta_clicked | button_text, location |
97| form_submitted | form_type |
98| signup_completed | method, source |
99| demo_requested | - |
100
101### Product/App
102
103| Event | Properties |
104|-------|------------|
105| onboarding_step_completed | step_number, step_name |
106| feature_used | feature_name |
107| purchase_completed | plan, value |
108| subscription_cancelled | reason |
109
110**For full event library by business type**: See [references/event-library.md](references/event-library.md)
111
112---
113
114## Event Properties
115
116### Standard Properties
117
118| Category | Properties |
119|----------|------------|
120| Page | page_title, page_location, page_referrer |
121| User | user_id, user_type, account_id, plan_type |
122| Campaign | source, medium, campaign, content, term |
123| Product | product_id, product_name, category, price |
124
125### Best Practices
126- Use consistent property names
127- Include relevant context
128- Don't duplicate automatic properties
129- Avoid PII in properties
130
131---
132
133## GA4 Implementation
134
135### Quick Setup
136
1371. Create GA4 property and data stream
1382. Install gtag.js or GTM
1393. Enable enhanced measurement
1404. Configure custom events
1415. Mark conversions in Admin
142
143### Custom Event Example
144
145```javascript
146gtag('event', 'signup_completed', {
147 'method': 'email',
148 'plan': 'free'
149});
150```
151
152**For detailed GA4 implementation**: See [references/ga4-implementation.md](references/ga4-implementation.md)
153
154---
155
156## Google Tag Manager
157
158### Container Structure
159
160| Component | Purpose |
161|-----------|---------|
162| Tags | Code that executes (GA4, pixels) |
163| Triggers | When tags fire (page view, click) |
164| Variables | Dynamic values (click text, data layer) |
165
166### Data Layer Pattern
167
168```javascript
169dataLayer.push({
170 'event': 'form_submitted',
171 'form_name': 'contact',
172 'form_location': 'footer'
173});
174```
175
176**For detailed GTM implementation**: See [references/gtm-implementation.md](references/gtm-implementation.md)
177
178---
179
180## UTM Parameter Strategy
181
182### Standard Parameters
183
184| Parameter | Purpose | Example |
185|-----------|---------|---------|
186| utm_source | Traffic source | google, newsletter |
187| utm_medium | Marketing medium | cpc, email, social |
188| utm_campaign | Campaign name | spring_sale |
189| utm_content | Differentiate versions | hero_cta |
190| utm_term | Paid search keywords | running+shoes |
191
192### Naming Conventions
193- Lowercase everything
194- Use underscores or hyphens consistently
195- Be specific but concise: `blog_footer_cta`, not `cta1`
196- Document all UTMs in a spreadsheet
197
198---
199
200## Debugging and Validation
201
202### Testing Tools
203
204| Tool | Use For |
205|------|---------|
206| GA4 DebugView | Real-time event monitoring |
207| GTM Preview Mode | Test triggers before publish |
208| Browser Extensions | Tag Assistant, dataLayer Inspector |
209
210### Validation Checklist
211
212- [ ] Events firing on correct triggers
213- [ ] Property values populating correctly
214- [ ] No duplicate events
215- [ ] Works across browsers and mobile
216- [ ] Conversions recorded correctly
217- [ ] No PII leaking
218
219### Common Issues
220
221| Issue | Check |
222|-------|-------|
223| Events not firing | Trigger config, GTM loaded |
224| Wrong values | Variable path, data layer structure |
225| Duplicate events | Multiple containers, trigger firing twice |
226
227---
228
229## Privacy and Compliance
230
231Privacy, consent, retention, deletion, and identifier rules vary by
232jurisdiction, audience, data type, contract, and platform configuration. Do not
233treat this skill as legal advice or declare a universal consent rule.
234
235Before implementation:
236
2371. Identify the actual markets, audience age, data categories, vendors,
238 purposes, and data flows in scope.
2392. Review current official regulator and platform requirements for those
240 jurisdictions and configurations; obtain qualified privacy or legal review
241 when the requirement is unclear or material.
2423. Document the approved lawful basis or consent state, retention and deletion
243 behavior, access controls, and prohibited properties.
2444. Collect only approved data, avoid direct personal identifiers unless the
245 reviewed design expressly allows them, and test both allowed and denied
246 consent paths.
247
248---
249
250## Output Format
251
252### Tracking Plan Document
253
254```markdown
255# [Site/Product] Tracking Plan
256
257## Overview
258- Tools: GA4, GTM
259- Last updated: [Date]
260
261## Events
262
263| Event Name | Description | Properties | Trigger |
264|------------|-------------|------------|---------|
265| signup_completed | User completes signup | method, plan | Success page |
266
267## Custom Dimensions
268
269| Name | Scope | Parameter |
270|------|-------|-----------|
271| user_type | User | user_type |
272
273## Conversions
274
275| Conversion | Event | Counting |
276|------------|-------|----------|
277| Signup | signup_completed | Once per session |
278```
279
280---
281
282## Task-Specific Questions
283
2841. What tools are you using (GA4, Mixpanel, etc.)?
2852. What key actions do you want to track?
2863. What decisions will this data inform?
2874. Who implements - dev team or marketing?
2885. Are there privacy/consent requirements?
2896. What's already tracked?
290
291---
292
293## Tool Integrations
294
295This pack does not ship analytics connectors. Use the user's authorized
296property UI, debugger, export, API, or installed connector and verify current
297official documentation before constructing a call.
298
299| Tool category | Typical use | Required current proof |
300|---------------|-------------|------------------------|
301| Web analytics | Sessions, acquisition, web conversions | Debug event plus property readback |
302| Product analytics | Event funnels, cohorts, retention | Schema check plus sampled event readback |
303| Tag manager | Controlled client-side deployment | Preview trace plus published-version ID |
304| Customer data router | Send approved events to destinations | Source receipt plus destination receipt |
305| Session replay | Diagnose interaction friction | Consent, masking, sampling, and replay verification |
306
307---
308
309## Boundaries
310
311- Do not claim an event, conversion, consent state, or attribution path works until a current debug or readback proves it.
312- Do not mutate production tags, properties, destinations, or consent settings without explicit authorization and a rollback plan.
313- Do not collect secrets, direct personal identifiers, or sensitive traits merely because a tool permits them.
314- Do not decide business success from a single dashboard number; state the metric definition, window, denominator, and exclusions.
315
316## Routing
317
318- Need experiment design or result interpretation -> use `suede-ab-testing`.
319- Need paid-campaign decisions -> use `suede-ads`.
320- Need pipeline and CRM attribution -> use `suede-revops`.
321- Need organic visibility diagnosis -> use `suede-seo-audit`.
322- From those skills, route instrumentation plans and firing verification back to `suede-analytics`.