69 lines
2.8 KiB
Markdown
69 lines
2.8 KiB
Markdown
---
|
|
description: GTM page audit - scan fired tags, gap analysis, tag design from DOM, and report generation
|
|
---
|
|
|
|
# GTM Audit
|
|
|
|
Comprehensive Google Tag Manager audit using Playwright to scan live pages for container health, tag firing, dataLayer events, form tracking, and e-commerce checkout flows.
|
|
|
|
## Triggers
|
|
- "audit GTM", "check dataLayer", "GTM 검사", "scan GTM tags", "audit tags on page", "check tag firing"
|
|
|
|
## Capabilities
|
|
|
|
1. **Container Analysis** — Verify GTM container loads, detect container ID, inventory tags/triggers/variables
|
|
2. **Tag Destination Detection** — Identify fired tags by network requests (GA4, Google Ads, Meta Pixel, LinkedIn, TikTok, Kakao, Naver, etc.)
|
|
3. **DataLayer Validation** — Check event structure, required fields, GA4 naming conventions
|
|
4. **Form Tracking** — Verify form submission events and field capture
|
|
5. **E-commerce Checkout Flow** — Validate purchase/cart/checkout events and required e-commerce parameters
|
|
6. **Journey-based Audit** — Target specific user journeys: `pageview`, `scroll`, `click`, `form`, `checkout`, `datalayer`, or `full`
|
|
|
|
## Script
|
|
|
|
```bash
|
|
AUDIT_SCRIPT="/Users/ourdigital/Project/our-claude-skills/custom-skills/60-gtm-audit/code/scripts/gtm_audit.py"
|
|
|
|
# Basic page audit
|
|
python "$AUDIT_SCRIPT" --url "https://example.com"
|
|
|
|
# Audit with expected container ID and specific journey
|
|
python "$AUDIT_SCRIPT" --url "https://example.com" --container GTM-XXXXXX --journey full
|
|
|
|
# E-commerce checkout flow audit with JSON report
|
|
python "$AUDIT_SCRIPT" --url "https://example.com/checkout" --journey checkout --output report.json
|
|
```
|
|
|
|
### Script Options
|
|
| Flag | Description | Default |
|
|
|------|-------------|---------|
|
|
| `--url` | Target URL to audit (required) | — |
|
|
| `--container` | Expected GTM container ID (e.g., GTM-XXXXXX) | auto-detect |
|
|
| `--journey` | Audit scope: `pageview`, `scroll`, `click`, `form`, `checkout`, `datalayer`, `full` | `pageview` |
|
|
| `--output` | Output file path for JSON report | `gtm_audit_report.json` |
|
|
| `--timeout` | Page load timeout in ms | `30000` |
|
|
| `--headless` | Run in headless mode | `True` |
|
|
|
|
## Audit Checklist
|
|
|
|
### Container Health
|
|
- [ ] GTM container loads without JavaScript errors
|
|
- [ ] Container ID matches expected value
|
|
- [ ] No duplicate container installations
|
|
|
|
### Tag Firing & Destinations
|
|
- [ ] GA4 measurement requests detected
|
|
- [ ] Ad platform pixels fire correctly (Google Ads, Meta, etc.)
|
|
- [ ] No orphaned or misfiring tags
|
|
|
|
### DataLayer Events
|
|
- [ ] `page_view` fires on all pages
|
|
- [ ] `purchase` event has required e-commerce fields
|
|
- [ ] Form submissions tracked with correct parameters
|
|
- [ ] Event names follow GA4 snake_case convention
|
|
|
|
### Common Issues
|
|
- Missing or malformed ecommerce object
|
|
- Incorrect event names (not GA4 format)
|
|
- Duplicate event firing
|
|
- Tags firing before dataLayer is ready
|