All SEO (10-18) and GTM (20-21) skills now require saving reports to: - Database: OurDigital SEO Audit Log (2c8581e5-8a1e-8035-880b-e38cefc2f3ef) - Format: Korean content with English technical terms - Audit ID: [TYPE]-YYYYMMDD-NNN Updated files: - 9 SEO skills (code/CLAUDE.md + desktop/SKILL.md) - 2 GTM skills (code/CLAUDE.md + desktop/SKILL.md) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
139 lines
4.3 KiB
Markdown
139 lines
4.3 KiB
Markdown
# OurDigital GTM Audit
|
|
|
|
Lightweight Google Tag Manager audit toolkit using Playwright browser automation.
|
|
|
|
> For comprehensive GTM management including dataLayer tag generation, see `14-ourdigital-gtm-manager`.
|
|
|
|
## Project Overview
|
|
|
|
This tool audits GTM container installations, validates dataLayer events, tests form tracking, simulates e-commerce checkout flows, and generates comprehensive reports.
|
|
|
|
## Quick Commands
|
|
|
|
```bash
|
|
# Install dependencies
|
|
pip install playwright
|
|
playwright install chromium
|
|
|
|
# Run full audit
|
|
python gtm_audit.py --url "https://example.com" --journey full
|
|
|
|
# Form tracking audit
|
|
python gtm_audit.py --url "https://example.com/contact" --journey form
|
|
|
|
# E-commerce checkout flow
|
|
python gtm_audit.py --url "https://example.com/cart" --journey checkout
|
|
|
|
# DataLayer deep inspection
|
|
python gtm_audit.py --url "https://example.com" --journey datalayer
|
|
|
|
# With specific container validation
|
|
python gtm_audit.py --url "https://example.com" --container "GTM-XXXXXX"
|
|
```
|
|
|
|
## Journey Types
|
|
|
|
| Journey | Description |
|
|
|---------|-------------|
|
|
| `pageview` | Basic page load + scroll simulation |
|
|
| `scroll` | Scroll depth trigger testing (25%, 50%, 75%, 90%) |
|
|
| `form` | Form discovery, field analysis, interaction simulation |
|
|
| `checkout` | E-commerce flow: cart → checkout → shipping → payment → purchase |
|
|
| `datalayer` | Deep dataLayer validation and event sequence analysis |
|
|
| `full` | All of the above combined |
|
|
|
|
## Output
|
|
|
|
Generates `gtm_audit_report.json` with:
|
|
- Container status (installed, position, duplicates)
|
|
- DataLayer analysis (events, validation issues, sequence errors)
|
|
- Form analysis (forms found, tracking readiness, missing events)
|
|
- Checkout analysis (elements detected, flow issues)
|
|
- Network requests (GA4, Meta, LinkedIn, etc.)
|
|
- Recommendations and checklist
|
|
|
|
## Key Files
|
|
|
|
- `gtm_audit.py` - Main audit script
|
|
- `docs/ga4_events.md` - GA4 event specifications
|
|
- `docs/ecommerce_schema.md` - E-commerce dataLayer structures
|
|
- `docs/form_tracking.md` - Form event patterns
|
|
- `docs/checkout_flow.md` - Checkout funnel sequence
|
|
- `docs/datalayer_validation.md` - Validation rules
|
|
- `docs/common_issues.md` - Frequent problems and fixes
|
|
|
|
## Coding Guidelines
|
|
|
|
When modifying this tool:
|
|
|
|
1. **Tag Destinations**: Add new platforms to `TAG_DESTINATIONS` dict
|
|
2. **Event Validation**: Add requirements to `GA4_EVENT_REQUIREMENTS` dict
|
|
3. **Form Selectors**: Extend `FormAnalyzer.discover_forms()` for custom forms
|
|
4. **Checkout Elements**: Add selectors to `CheckoutFlowAnalyzer.detect_checkout_elements()`
|
|
|
|
## Korean Market Considerations
|
|
|
|
- Support Korean payment methods (카카오페이, 네이버페이, 토스)
|
|
- Handle KRW currency (no decimals)
|
|
- Include Kakao Pixel and Naver Analytics patterns
|
|
- Korean button text patterns (장바구니, 결제하기, 주문하기)
|
|
|
|
## Testing a New Site
|
|
|
|
1. Run with `--journey full` first to get complete picture
|
|
2. Check `gtm_audit_report.json` for issues
|
|
3. Focus on specific areas with targeted journey types
|
|
4. Use `--container GTM-XXXXXX` to validate specific container
|
|
|
|
## Common Tasks
|
|
|
|
### Add support for new tag platform
|
|
```python
|
|
# In TAG_DESTINATIONS dict
|
|
"NewPlatform": [
|
|
r"tracking\.newplatform\.com",
|
|
r"pixel\.newplatform\.com",
|
|
],
|
|
```
|
|
|
|
### Add custom form field detection
|
|
```python
|
|
# In FormAnalyzer.discover_forms()
|
|
# Add new field types or selectors
|
|
```
|
|
|
|
### Extend checkout flow for specific platform
|
|
```python
|
|
# In CheckoutFlowAnalyzer.detect_checkout_elements()
|
|
# Add platform-specific selectors
|
|
```
|
|
|
|
## Notion Output (Required)
|
|
|
|
**IMPORTANT**: All audit reports MUST be saved to the OurDigital SEO Audit Log database.
|
|
|
|
### Database Configuration
|
|
|
|
| Field | Value |
|
|
|-------|-------|
|
|
| Database ID | `2c8581e5-8a1e-8035-880b-e38cefc2f3ef` |
|
|
| URL | https://www.notion.so/dintelligence/2c8581e58a1e8035880be38cefc2f3ef |
|
|
|
|
### Required Properties
|
|
|
|
| Property | Type | Description |
|
|
|----------|------|-------------|
|
|
| Issue | Title | Report title (Korean + date) |
|
|
| Site | URL | Audited website URL |
|
|
| Category | Select | Technical SEO (use for GTM audits) |
|
|
| Priority | Select | Critical, High, Medium, Low |
|
|
| Found Date | Date | Audit date (YYYY-MM-DD) |
|
|
| Audit ID | Rich Text | Format: GTM-YYYYMMDD-NNN |
|
|
|
|
### Language Guidelines
|
|
|
|
- Report content in Korean (한국어)
|
|
- Keep technical English terms as-is (e.g., GTM, dataLayer, GA4)
|
|
- URLs and code remain unchanged
|
|
|