We met a regional e-commerce team with five spellings of the same campaign across LINE, search, and a QR taped to a cooler. Their MMP was not confused. Their humans were. Attribution windows were applying credit to a source name that no longer existed in the creative brief.

A naming contract, not a style guide

Hygiene here means a written contract: source, medium, campaign, content, and a window label that belongs in the brief before anyone designs a sticker. The window label is the part most templates skip. Without it, Re-engagement Windows Lab has nothing to argue with — only vibes.

Apipacketbase does not care whether you use utm_source or a custom packet field, so long as the deep-link wrapper and the web landing page agree. Disagreement is how last-click stories get invented after the fact.

Stop pasting yesterday’s query string

LINE operators are busy. The fastest path is copy-paste from the last blast. That paste carries an old campaign token into a new window. Finance then asks why a “March sale” is still receiving April installs. The honest answer is operational, not algorithmic.

In the studio we make someone read the live URL aloud. Embarrassment is a better linter than a wiki page nobody opens.

What belongs in the deep link itself

Not every UTM belongs in the app payload. Quiet SDK Telemetry exists because teams forwarded the entire query string “for later.” Later never came. Privacy review did. If a parameter cannot change a routing or credit decision inside the attribution window you published, delete it before the hop.

Related reading: windows and Bangkok media, and payload deletion. Seats: catalogue.