Restructure skill numbering: SEO 11-30, GTM 60-69, reserve 19-28 for future skills
Renumber 12 existing skills to new ranges: - SEO: 11→13, 12→18, 13→16, 14→17, 15→14, 16→15, 17→29, 18→30, 19→12 - GTM: 20→60, 21→61, 22→62 Update cross-references in gateway architect/builder skills, GTM guardian README, CLAUDE.md (skill tables + directory layout), and AGENTS.md (domain routing ranges). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
219
custom-skills/61-gtm-manager/code/CLAUDE.md
Normal file
219
custom-skills/61-gtm-manager/code/CLAUDE.md
Normal file
@@ -0,0 +1,219 @@
|
||||
# OurDigital GTM Manager
|
||||
|
||||
Comprehensive Google Tag Manager management toolkit - audit, analyze, and generate dataLayer implementations.
|
||||
|
||||
> **Note**: For lightweight audit-only functionality, see [13-ourdigital-gtm-audit](../13-ourdigital-gtm-audit/).
|
||||
|
||||
## Project Overview
|
||||
|
||||
This tool provides two main capabilities:
|
||||
1. **Audit**: Validate GTM installations, analyze dataLayer events, test form/checkout tracking
|
||||
2. **Inject**: Generate custom HTML tags for dataLayer pushes when direct code access is unavailable
|
||||
|
||||
## Quick Commands
|
||||
|
||||
```bash
|
||||
# Install dependencies
|
||||
pip install playwright
|
||||
playwright install chromium
|
||||
|
||||
# AUDIT MODE
|
||||
# Run full audit
|
||||
python gtm_manager.py audit --url "https://example.com" --journey full
|
||||
|
||||
# Audit with Notion export
|
||||
python gtm_manager.py audit --url "https://example.com" --notion
|
||||
|
||||
# Audit and generate missing tags
|
||||
python gtm_manager.py audit --url "https://example.com" --generate-tags
|
||||
|
||||
# INJECT MODE
|
||||
# List available event types
|
||||
python gtm_manager.py inject --list-events
|
||||
|
||||
# Generate all ecommerce tags
|
||||
python gtm_manager.py inject --preset ecommerce --output ./tags
|
||||
|
||||
# Generate specific event tags
|
||||
python gtm_manager.py inject --event purchase --event add_to_cart
|
||||
|
||||
# Generate from audit report
|
||||
python gtm_manager.py inject --from-audit gtm_audit_report.json
|
||||
|
||||
# Generate with DOM scraping
|
||||
python gtm_manager.py inject --event view_item --scrape
|
||||
```
|
||||
|
||||
## Audit Mode
|
||||
|
||||
### 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 |
|
||||
|
||||
### Audit 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
|
||||
|
||||
## Inject Mode
|
||||
|
||||
Generate GTM custom HTML tags for dataLayer injection when you can't modify source code directly.
|
||||
|
||||
### Event Categories
|
||||
|
||||
**Ecommerce:**
|
||||
- `view_item`, `add_to_cart`, `remove_from_cart`, `view_cart`
|
||||
- `begin_checkout`, `add_shipping_info`, `add_payment_info`, `purchase`
|
||||
|
||||
**Forms & Leads:**
|
||||
- `form_submit`, `form_start`, `generate_lead`
|
||||
|
||||
**Engagement:**
|
||||
- `scroll`, `file_download`, `search`, `outbound_click`, `share`
|
||||
|
||||
**Video:**
|
||||
- `video_start`, `video_progress`, `video_complete`
|
||||
|
||||
**User:**
|
||||
- `login`, `sign_up`, `page_view`
|
||||
|
||||
### Presets
|
||||
|
||||
| Preset | Events Included |
|
||||
|--------|-----------------|
|
||||
| `ecommerce` | All 8 ecommerce events |
|
||||
| `engagement` | Forms, scroll, downloads, video, search, sharing |
|
||||
| `all` | Everything including page_view, login, sign_up |
|
||||
|
||||
### Generated Tag Features
|
||||
|
||||
- GA4-compliant dataLayer structure
|
||||
- Ecommerce object clearing before pushes
|
||||
- DOM scraping option for dynamic values
|
||||
- Trigger recommendations and selectors
|
||||
- Korean payment method support
|
||||
|
||||
## Notion Integration
|
||||
|
||||
Export audit results directly to Notion database for tracking and collaboration.
|
||||
|
||||
```bash
|
||||
# Export to default Notion database (OurDigital GTM Audit Log)
|
||||
python gtm_manager.py audit --url "https://example.com" --notion
|
||||
|
||||
# Export with detailed content
|
||||
python gtm_manager.py audit --url "https://example.com" --notion --notion-detailed
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
|
||||
```bash
|
||||
export NOTION_TOKEN="secret_xxxxx"
|
||||
```
|
||||
|
||||
### Default Database
|
||||
|
||||
Default Notion database: [OurDigital GTM Audit Log](https://www.notion.so/2cf581e58a1e8163997fccb387156a20)
|
||||
|
||||
## Key Files
|
||||
|
||||
- `gtm_manager.py` - Main script with audit and inject functionality
|
||||
- `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. **Event Templates**: Add new events to `DataLayerInjector.EVENT_TEMPLATES`
|
||||
4. **Form Selectors**: Extend `FormAnalyzer.discover_forms()` for custom forms
|
||||
5. **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 (장바구니, 결제하기, 주문하기)
|
||||
|
||||
## Common Tasks
|
||||
|
||||
### Add support for new tag platform
|
||||
```python
|
||||
# In TAG_DESTINATIONS dict
|
||||
"NewPlatform": [
|
||||
r"tracking\.newplatform\.com",
|
||||
r"pixel\.newplatform\.com",
|
||||
],
|
||||
```
|
||||
|
||||
### Add new event type for injection
|
||||
```python
|
||||
# In DataLayerInjector.EVENT_TEMPLATES
|
||||
"custom_event": {
|
||||
"description": "Track custom action",
|
||||
"params": {
|
||||
"custom_param": "/* value */",
|
||||
},
|
||||
"trigger": "Custom Trigger",
|
||||
},
|
||||
```
|
||||
|
||||
### Extend checkout flow for specific platform
|
||||
```python
|
||||
# In CheckoutFlowAnalyzer.detect_checkout_elements()
|
||||
# Add platform-specific selectors
|
||||
```
|
||||
|
||||
## Notion Output (Required)
|
||||
|
||||
**IMPORTANT**: All GTM audit reports MUST be saved to the OurDigital GTM Audit Archive database.
|
||||
|
||||
### Database Configuration
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Database ID | `2cf581e5-8a1e-8163-997f-ccb387156a20` |
|
||||
| URL | https://www.notion.so/dintelligence/OurDigital-GTM-Audit-Archive-2cf581e58a1e80c8b358f1625356e931 |
|
||||
|
||||
### Required Properties
|
||||
|
||||
| Property | Type | Description |
|
||||
|----------|------|-------------|
|
||||
| Site | Title | Site name or domain |
|
||||
| URL | URL | Audited page URL |
|
||||
| Audit Date | Date | Audit date (YYYY-MM-DD) |
|
||||
| Audit ID | Rich Text | Format: GTM-YYYYMMDD-NNN |
|
||||
| Audit Status | Select | Pass, Warning, Fail |
|
||||
| GTM Status | Select | Installed, Not Found, Multiple Containers |
|
||||
| Journey Type | Select | full, pageview, scroll, form, checkout, datalayer |
|
||||
| Tags Fired | Multi-select | GA4, Google Ads, Meta Pixel, LinkedIn, TikTok, Kakao, Naver |
|
||||
| Container IDs | Rich Text | GTM container ID(s) |
|
||||
| Issues Count | Number | Total issues found |
|
||||
| Critical Issues | Number | Critical issues count |
|
||||
| Summary | Rich Text | Brief audit summary |
|
||||
|
||||
### Language Guidelines
|
||||
|
||||
- Report content in Korean (한국어)
|
||||
- Keep technical English terms as-is (e.g., GTM, dataLayer, GA4)
|
||||
- URLs and code remain unchanged
|
||||
|
||||
Reference in New Issue
Block a user