Install any skill in seconds. Free to start, no credit card required.
Get Started Free →When the user wants to set up, improve, or audit analytics tracking and measurement. Also use when the user mentions "set up tracking," "GA4," "Google Analytics," "conversion tracking," "event tracking," "UTM parameters," "tag manager," "GTM," "analytics implementation," or "tracking plan." For A/B test measurement, see ab-test-setup.
.claude/skills/davila7-analytics-tracking/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-12 | ✗→✓ | ▲ Improved | 83% | 0% |
| case-22 | ✓→✗ | ▼ Worse | 83% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 104% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 158% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 194% | 0% |
You are an expert in analytics implementation and measurement. Your goal is to help set up tracking that provides actionable insights for marketing and product decisions.
Before implementing tracking, understand:
Event Name | Event Category | Properties | Trigger | Notes
---------- | ------------- | ---------- | ------- | -----Pageviews
User Actions
System Events
Custom Conversions
Object-Action (Recommended)
signup_completed
button_clicked
form_submitted
article_readAction-Object
click_button
submit_form
complete_signupCategory_Object_Action
checkout_payment_completed
blog_article_viewed
onboarding_step_completedcta_hero_clicked vs. button_clickedNavigation
Engagement
Conversion
Onboarding
Core Usage
Monetization
Browsing
Cart
Checkout
Page/Screen
User
Campaign
Product (e-commerce)
Timing
Data Streams
Enhanced Measurement Events
Recommended Events
javascript// gtag.js gtag('event', 'signup_completed', { 'method': 'email', 'plan': 'free' }); // Google Tag Manager (dataLayer) dataLayer.push({ 'event': 'signup_completed', 'method': 'email', 'plan': 'free' });
When to use:
Setup:
Tags
Triggers
Variables
javascript// Push custom event dataLayer.push({ 'event': 'form_submitted', 'form_name': 'contact', 'form_location': 'footer' }); // Set user properties dataLayer.push({ 'user_id': '12345', 'user_type': 'premium' }); // E-commerce event dataLayer.push({ 'event': 'purchase', 'ecommerce': { 'transaction_id': 'T12345', 'value': 99.99, 'currency': 'USD', 'items': [{ 'item_id': 'SKU123', 'item_name': 'Product Name', 'price': 99.99 }] } });
| Parameter | Purpose | Example | |-----------|---------|---------| | utm_source | Where traffic comes from | google, facebook, newsletter | | utm_medium | Marketing medium | cpc, email, social, referral | | utm_campaign | Campaign name | spring_sale, product_launch | | utm_content | Differentiate versions | hero_cta, sidebar_link | | utm_term | Paid search keywords | running+shoes |
Lowercase everything
Use underscores or hyphens consistently
Be specific but concise
Track all UTMs in a spreadsheet or tool:
| Campaign | Source | Medium | Content | Full URL | Owner | Date | |----------|--------|--------|---------|----------|-------|------| | ... | ... | ... | ... | ... | ... | ... |
Provide a consistent UTM builder link to team:
GA4 DebugView
GTM Preview Mode
Browser Extensions
Events not firing
Wrong values
Duplicate events
Consent Mode (GA4)
Data Minimization
# [Site/Product] Tracking Plan
## Overview
- Tools: GA4, GTM
- Last updated: [Date]
- Owner: [Name]
## Events
### Marketing Events
| Event Name | Description | Properties | Trigger |
|------------|-------------|------------|---------|
| signup_started | User initiates signup | source, page | Click signup CTA |
| signup_completed | User completes signup | method, plan | Signup success page |
### Product Events
[Similar table]
## Custom Dimensions
| Name | Scope | Parameter | Description |
|------|-------|-----------|-------------|
| user_type | User | user_type | Free, trial, paid |
## Conversions
| Conversion | Event | Counting | Google Ads |
|------------|-------|----------|------------|
| Signup | signup_completed | Once per session | Yes |
## UTM Convention
[Guidelines]Provide ready-to-use code snippets
Specific validation steps
If you need more context:
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 24,906 | 17,207 | -31% | 1 | 1 | 0% | 4,876 | 6,377 | +31% | 0 | 0 | — |
case-02 | fail→fail | 30,515 | 20,707 | -32% | 1 | 1 | 0% | 5,830 | 6,788 | +16% | 0 | 0 | — |
case-03 | pass→pass | 14,808 | 12,948 | -13% | 1 | 1 | 0% | 2,413 | 4,920 | +104% | 0 | 0 | — |
case-04 | pass→pass | 11,135 | 12,530 | +13% | 1 | 1 | 0% | 1,920 | 4,955 | +158% | 0 | 0 | — |
case-05 | pass→pass | 8,464 | 9,628 | +14% | 1 | 1 | 0% | 1,486 | 4,372 | +194% | 0 | 0 | — |
case-06 | pass→pass | 10,168 | 7,291 | -28% | 1 | 1 | 0% | 1,901 | 4,039 | +112% | 0 | 0 | — |
case-07 | pass→pass | 12,294 | 13,019 | +6% | 1 | 1 | 0% | 2,539 | 5,293 | +108% | 0 | 0 | — |
case-08 | fail→fail | 13,675 | 14,447 | +6% | 1 | 1 | 0% | 2,454 | 5,463 | +123% | 0 | 0 | — |
case-09 | pass→pass | 6,193 | 5,697 | -8% | 1 | 1 | 0% | 1,323 | 3,855 | +191% | 0 | 0 | — |
case-10 | fail→fail | 12,700 | 15,916 | +25% | 1 | 1 | 0% | 2,321 | 5,180 | +123% | 0 | 0 | — |
case-11 | fail→fail | 10,065 | 8,129 | -19% | 1 | 1 | 0% | 2,036 | 4,456 | +119% | 0 | 0 | — |
case-12 | fail→pass | 15,017 | 12,482 | -17% | 1 | 1 | 0% | 2,974 | 5,431 | +83% | 0 | 0 | — |
case-18 | pass→pass | 15,020 | 13,403 | -11% | 1 | 1 | 0% | 2,405 | 5,007 | +108% | 0 | 0 | — |
case-13 | pass→pass | 9,444 | 13,267 | +40% | 1 | 1 | 0% | 1,891 | 5,217 | +176% | 0 | 0 | — |
case-14 | pass→pass | 16,348 | 15,015 | -8% | 1 | 1 | 0% | 2,906 | 5,366 | +85% | 0 | 0 | — |
case-15 | pass→pass | 16,471 | 21,686 | +32% | 1 | 1 | 0% | 2,994 | 6,460 | +116% | 0 | 0 | — |
case-16 | pass→pass | 7,280 | 5,417 | -26% | 1 | 1 | 0% | 1,472 | 3,812 | +159% | 0 | 0 | — |
case-17 | pass→pass | 14,821 | 16,791 | +13% | 1 | 1 | 0% | 2,515 | 5,606 | +123% | 0 | 0 | — |
case-19 | pass→pass | 15,186 | 16,535 | +9% | 1 | 1 | 0% | 2,725 | 5,606 | +106% | 0 | 0 | — |
case-20 | pass→pass | 16,037 | 15,468 | -4% | 1 | 1 | 0% | 3,643 | 6,330 | +74% | 0 | 0 | — |
case-21 | pass→pass | 17,767 | 15,358 | -14% | 1 | 1 | 0% | 3,369 | 5,357 | +59% | 0 | 0 | — |
case-22 | pass→fail | 16,199 | 12,743 | -21% | 1 | 1 | 0% | 2,713 | 4,958 | +83% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of 0 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.