UTM discipline, or why your channel report is fiction
UTM parameters are the only part of channel attribution you fully control, and they are usually the part that breaks first — not through anything sophisticated, but through inconsistent typing.
The failure
utm_source=Facebook and utm_source=facebook are two different sources. So are newsletter and Newsletter, email and e-mail, cpc and ppc.
Each variant becomes its own row. A channel that should read as one line becomes six, none of which look significant, and the total is never displayed anywhere.
Then somebody concludes email is not working, because the biggest single email row is small.
The rules that prevent it
Lowercase everything, always. No exceptions, no judgement calls. This one rule prevents most of the damage.
Fix the vocabulary. utm_medium should come from a short closed list — cpc, email, social, affiliate, display, referral. Not free text. GA4's default channel grouping keys off medium, so a non-standard medium lands your traffic in "unassigned", which is where data goes to be ignored.
Never UTM-tag internal links. Tagging a link from one page of your site to another starts a new session and attributes it to whatever you typed. It is the fastest way to destroy an attribution report, and it is usually done with good intentions to "track the banner". Use an event for that.
Auto-tagging beats manual tagging for Google Ads. Leave gclid to do its job; hand-written UTMs on ad URLs cause disagreement between Ads and Analytics that nobody enjoys reconciling.
Making it stick
The rules only hold if generating a tagged URL is easier than typing one. A shared spreadsheet with dropdowns, or a small internal builder page, is enough. Anything that makes the correct path the lazy path.
Then audit quarterly: list every distinct source and medium, sort alphabetically, and look for near-duplicates. They stand out immediately when sorted, and they are invisible when sorted by traffic.
The retrospective fix
There is not one, really. You can create channel groupings that merge variants going forward, and you can filter in a reporting layer. You cannot rewrite what was collected.
Which makes this one of those areas where fifteen minutes of convention, agreed once, is worth more than any amount of subsequent analysis.