When to invoke
- You manage marketing campaigns and need consistent UTM tags across teams.
- You want to validate a batch of URLs against a naming policy and produce corrected URLs.
Inputs needed
--input: CSV with aurlcolumn.- Optional:
--policy: JSON policy file (allowed sources/mediums, required params, casing rules). - Optional:
--out: Path to write results CSV.
Workflow
- Load URLs.
- Parse query parameters.
- Validate required UTM params (
utm_source,utm_medium,utm_campaign). - Validate allowed values (if provided) and casing rules.
- Produce:
status: ok / fixed / invalidissues: semicolon-separatednormalized_url: URL with normalized UTMs (when possible)
Output format
CSV with columns:
urlstatusissuesnormalized_url
Guardrails
- Never change the base URL path or non-UTM query params.
- Do not guess missing required params; mark as invalid.
- Keep the skill vendor-neutral (no platform-specific assumptions).
Reference code
Use utm_campaign_governor.py.