# OurDigital GTM Manager Comprehensive Google Tag Manager management toolkit powered by Playwright. > **Note**: For lightweight audit-only functionality, see [13-ourdigital-gtm-audit](../13-ourdigital-gtm-audit/). ## Features - **Audit Mode**: Validate GTM installations, dataLayer events, forms, and checkout flows - **Inject Mode**: Generate custom HTML tags for dataLayer pushes - **Container Detection**: Verify GTM installation, position, and duplicates - **DataLayer Validation**: Event structure, types, sequence checking - **Form Tracking**: Form discovery, field analysis, event verification - **E-commerce Checkout**: Full funnel flow simulation and validation - **Multi-Platform**: GA4, Meta Pixel, LinkedIn, Google Ads, Kakao, Naver - **Notion Integration**: Export audit results to Notion database ## Installation ```bash cd ourdigital-gtm-manager # Install dependencies pip install -r requirements.txt # Install Playwright browsers playwright install chromium ``` ## Audit Mode Analyze existing GTM implementations: ```bash # Full audit python gtm_manager.py audit --url "https://yoursite.com" --journey full # Specific container validation python gtm_manager.py audit --url "https://yoursite.com" --container "GTM-XXXXXX" # Form tracking only python gtm_manager.py audit --url "https://yoursite.com/contact" --journey form # Audit and generate missing tags python gtm_manager.py audit --url "https://yoursite.com" --generate-tags # Export to Notion python gtm_manager.py audit --url "https://yoursite.com" --notion ``` ### Audit Options | Option | Description | Default | |--------|-------------|---------| | `--url` | Target URL (required) | - | | `--container` | Expected GTM container ID | None | | `--journey` | pageview, scroll, form, checkout, datalayer, full | full | | `--output` | Output file path | gtm_audit_report.json | | `--generate-tags` | Generate missing dataLayer tags | False | | `--notion` | Export to Notion database | False | ## Inject Mode Generate GTM custom HTML tags when you can't modify source code directly: ```bash # 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 events 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 code python gtm_manager.py inject --event view_item --scrape ``` ### Inject Options | Option | Description | Default | |--------|-------------|---------| | `--event` | Event type(s) to generate | - | | `--preset` | ecommerce, engagement, all | - | | `--from-audit` | Generate from audit report | - | | `--output` | Output directory | ./gtm_tags | | `--format` | html or json | html | | `--currency` | Currency code | KRW | | `--scrape` | Generate DOM scraping code | False | | `--list-events` | Show available events | - | ### Supported Events **Ecommerce**: view_item, add_to_cart, remove_from_cart, view_cart, begin_checkout, add_shipping_info, add_payment_info, purchase **Forms**: 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 ## Notion Integration ```bash # Set Notion API token export NOTION_TOKEN="secret_xxxxx" # Export audit to Notion python gtm_manager.py audit --url "https://yoursite.com" --notion --notion-detailed ``` ## Using with Claude Code This project includes a `CLAUDE.md` file optimized for Claude Code. ```bash claude # Then ask Claude: > Run a GTM audit on https://example.com > Generate ecommerce dataLayer tags for my site > Check the checkout flow and create missing tags ``` ## Documentation See `docs/` folder for: - GA4 event specifications - E-commerce dataLayer schemas - Form tracking patterns - Checkout flow sequences - Common issues and fixes ## License MIT