{
  "version": "v1.2",
  "name": "GA4 Tracking Governance",
  "updated": "2026-06-19",
  "sources": {
    "google": "google",
    "facebook": "facebook",
    "instagram": "instagram",
    "linkedin": "linkedin",
    "tiktok": "tiktok",
    "line": "line",
    "newsletter": "newsletter",
    "crm": "crm",
    "youtube": "youtube",
    "threads": "threads"
  },
  "media": {
    "cpc": "search ads (paid)",
    "paid_social": "social ads (paid) — matches GA4 regex paid.*",
    "email": "email",
    "social": "organic social — GA4 default channel grouping recognized value",
    "affiliate": "affiliate",
    "display": "display",
    "qr": "qr code"
  },
  "campaign_pattern": "product_campaign_yyyymm",
  "examples": [
    {
      "landing_url": "https://app.company.com/pricing",
      "utm_source": "facebook",
      "utm_medium": "paid_social",
      "utm_campaign": "summer_sale_202606",
      "utm_content": "hero_cta"
    },
    {
      "landing_url": "https://app.company.com/course",
      "utm_source": "newsletter",
      "utm_medium": "email",
      "utm_campaign": "hugo_course_202606",
      "utm_content": "newsletter_banner"
    },
    {
      "landing_url": "https://app.company.com/course",
      "utm_source": "line",
      "utm_medium": "social",
      "utm_campaign": "june_promo_202606",
      "utm_content": "oa_broadcast"
    }
  ],
  "blocked_values": {
    "source": ["fb", "faceBook", "FacebookAds", "meta", "meta_ads", "GoogleAds", "email", "ig"],
    "medium": ["paid", "ads", "ad", "marketing", "fb", "social_ads", "organic_social", "paid-social"]
  },
  "qa_checklist": [
    "All paid links include utm_source, utm_medium, and utm_campaign",
    "Short links preserve query parameters",
    "Email templates use newsletter or crm as utm_source — never email",
    "Organic social posts use utm_medium=social (GA4 recognized); paid social ads use utm_medium=paid_social",
    "LINE OA organic broadcasts use utm_medium=social; paid LINE Ads use utm_medium=paid_social",
    "QR codes include utm_source and utm_medium=qr",
    "GA4 reports include Session source / medium, Source Platform, and Source Group",
    "Unlabeled stays under 5 percent"
  ],
  "kpi_thresholds": {
    "unlabeled_normal": "< 5%",
    "unlabeled_warning": "5–10%",
    "unlabeled_critical": "> 10%"
  }
}
