
=================================================================
  TRACKING PLAN GENERATOR
=================================================================

📋 BUSINESS TYPE: ECOMMERCE

📊 EVENT TAXONOMY (5 events)

  🔴 CRITICAL (3 events)
     add_to_cart
       Params: item_id, item_name, value, currency... +1 more
     checkout_started
       Params: value, currency, num_items
     checkout_completed ← CONVERSION
       Params: transaction_id, value, currency, tax... +1 more

  🟡 HIGH (1 events)
     product_viewed
       Params: item_id, item_name, item_category, value

  ⚪ MEDIUM (1 events)
     search_performed
       Params: search_term, results_count

🎯 CONVERSION EVENTS (1)
   • checkout_completed

📐 CUSTOM DIMENSIONS
   User-scoped (5): user_id, plan_name, billing_period, signup_method, onboarding_completed
   Event-scoped (5): cancel_reason, feature_name, form_name, content_name, error_type

🏷️  GTM CONFIGURATION
   Tags to create:     7
   Triggers to create: 5
   Variables to create:12

🔒 CONSENT MODE: Advanced (required)
   Default state: analytics_storage=denied, ad_storage=denied

📋 IMPLEMENTATION ORDER
   1. Register custom dimensions in GA4 (Admin > Custom Definitions)
   2. Set up GTM container structure (variables first, then triggers, then tags)
   3. Implement dataLayer pushes in application code
   4. Test each event in GTM Preview + GA4 DebugView
   5. Mark conversion events in GA4 (Admin > Conversions)
   6. Link GA4 to Google Ads if running paid search
   7. Enable internal traffic filter
   8. Implement consent mode if required

=================================================================
  Run with --json flag to output full config as JSON
=================================================================

{
  "event_taxonomy": [
    {
      "category": "acquisition",
      "event": "product_viewed",
      "trigger": "User views a product page",
      "parameters": [
        "item_id",
        "item_name",
        "item_category",
        "value"
      ],
      "priority": "high",
      "is_conversion": false
    },
    {
      "category": "acquisition",
      "event": "search_performed",
      "trigger": "User submits a search query",
      "parameters": [
        "search_term",
        "results_count"
      ],
      "priority": "medium",
      "is_conversion": false
    },
    {
      "category": "conversion",
      "event": "add_to_cart",
      "trigger": "User adds item to cart",
      "parameters": [
        "item_id",
        "item_name",
        "value",
        "currency",
        "quantity"
      ],
      "priority": "critical",
      "is_conversion": false
    },
    {
      "category": "conversion",
      "event": "checkout_started",
      "trigger": "User begins checkout",
      "parameters": [
        "value",
        "currency",
        "num_items"
      ],
      "priority": "critical",
      "is_conversion": false
    },
    {
      "category": "conversion",
      "event": "checkout_completed",
      "trigger": "Order placed successfully",
      "parameters": [
        "transaction_id",
        "value",
        "currency",
        "tax",
        "shipping"
      ],
      "priority": "critical",
      "is_conversion": true
    }
  ],
  "conversion_events": [
    "checkout_completed"
  ],
  "gtm_configuration": {
    "tags": [
      {
        "tag_name": "GA4 - product_viewed",
        "tag_type": "ga4_event",
        "event_name": "product_viewed",
        "trigger": "DL Event - product_viewed",
        "parameters": [
          "item_id",
          "item_name",
          "item_category",
          "value"
        ],
        "priority": "high"
      },
      {
        "tag_name": "GA4 - search_performed",
        "tag_type": "ga4_event",
        "event_name": "search_performed",
        "trigger": "DL Event - search_performed",
        "parameters": [
          "search_term",
          "results_count"
        ],
        "priority": "medium"
      },
      {
        "tag_name": "GA4 - add_to_cart",
        "tag_type": "ga4_event",
        "event_name": "add_to_cart",
        "trigger": "DL Event - add_to_cart",
        "parameters": [
          "item_id",
          "item_name",
          "value",
          "currency",
          "quantity"
        ],
        "priority": "critical"
      },
      {
        "tag_name": "GA4 - checkout_started",
        "tag_type": "ga4_event",
        "event_name": "checkout_started",
        "trigger": "DL Event - checkout_started",
        "parameters": [
          "value",
          "currency",
          "num_items"
        ],
        "priority": "critical"
      },
      {
        "tag_name": "GA4 - checkout_completed",
        "tag_type": "ga4_event",
        "event_name": "checkout_completed",
        "trigger": "DL Event - checkout_completed",
        "parameters": [
          "transaction_id",
          "value",
          "currency",
          "tax",
          "shipping"
        ],
        "priority": "critical"
      },
      {
        "tag_name": "Google Ads - checkout_completed",
        "tag_type": "google_ads_conversion",
        "event_name": "checkout_completed",
        "trigger": "DL Event - checkout_completed",
        "note": "Import from GA4 conversions (preferred) or configure conversion ID"
      },
      {
        "tag_name": "Meta Pixel - Base",
        "tag_type": "html_tag",
        "trigger": "All Pages",
        "note": "Meta base pixel \u2014 fires on all pages. Add Standard Events separately."
      }
    ],
    "variable_count": 12,
    "trigger_count": 5
  },
  "ga4_custom_dimensions": {
    "user_scoped": [
      {
        "name": "User ID",
        "parameter": "user_id",
        "description": "Internal user identifier"
      },
      {
        "name": "Plan Name",
        "parameter": "plan_name",
        "description": "Current subscription plan"
      },
      {
        "name": "Billing Period",
        "parameter": "billing_period",
        "description": "Monthly or annual"
      },
      {
        "name": "Signup Method",
        "parameter": "signup_method",
        "description": "Email, Google, SSO"
      },
      {
        "name": "Onboarding Status",
        "parameter": "onboarding_completed",
        "description": "Boolean: completed onboarding?"
      }
    ],
    "event_scoped": [
      {
        "name": "Cancel Reason",
        "parameter": "cancel_reason",
        "description": "Exit survey selection"
      },
      {
        "name": "Feature Name",
        "parameter": "feature_name",
        "description": "Feature being used/activated"
      },
      {
        "name": "Form Name",
        "parameter": "form_name",
        "description": "Which form was submitted"
      },
      {
        "name": "Content Name",
        "parameter": "content_name",
        "description": "Downloaded/viewed content"
      },
      {
        "name": "Error Type",
        "parameter": "error_type",
        "description": "Type of error encountered"
      }
    ]
  },
  "consent_mode": {
    "mode": "advanced",
    "defaults": {
      "analytics_storage": "denied",
      "ad_storage": "denied",
      "functionality_storage": "denied"
    },
    "update_trigger": "cookie_consent_update",
    "note": "Implement before GTM loads. Requires CMP integration (Cookiebot, OneTrust, etc.)."
  },
  "implementation_order": [
    "1. Register custom dimensions in GA4 (Admin > Custom Definitions)",
    "2. Set up GTM container structure (variables first, then triggers, then tags)",
    "3. Implement dataLayer pushes in application code",
    "4. Test each event in GTM Preview + GA4 DebugView",
    "5. Mark conversion events in GA4 (Admin > Conversions)",
    "6. Link GA4 to Google Ads if running paid search",
    "7. Enable internal traffic filter",
    "8. Implement consent mode if required"
  ]
}
