← knowledge.oriz.in

UTM-only marketing attribution

decision marketingattributionutmanalyticsposthogoriz-kit

UTM-only marketing attribution

Decision

The family's only marketing-attribution mechanism is UTM query parameters on every outbound campaign / share / referral link. UTMs are captured by PostHog (primary) and Cloudflare Web Analytics (secondary). No paid attribution tool, no SaaS click-tracker, no bounce-redirect domain.

@chirag127/oriz-kit ships a <UtmLink> component + buildUtmUrl() helper that enforce the family's naming convention at compile time so attribution data stays clean.

Why

UTM tracking is the universal, free, no-service convention every analytics tool reads. Picking a paid attribution tool (Bitly, Branch.io, Rebrandly) would:

Skipping attribution entirely is the other option, and it's wrong — it's the only way to know which channels actually move users to the sites. The middle path is the right path: ride the convention every analytics tool already knows.

Naming convention (locked)

Param Required? Meaning Allowed values
utm_source required Where the link is twitter, dev-to, hashnode, newsletter, oriz-extension-<name>, etc.
utm_medium required What kind of link social, email, cross-post, referral, cpc
utm_campaign required Why we shipped this 2026-q2-launch, oriz-finance-beta, weekly-2026-06-20
utm_term optional Paid keywords rare for us — only on paid placements
utm_content optional A/B variant or link position header, footer-cta, variant-b, thread-1

Rules:

<UtmLink> helper in oriz-kit

import { UtmLink } from "@chirag127/oriz-kit";

<UtmLink
  href="https://oriz.in/finance"
  source="twitter"
  medium="social"
  campaign="2026-q2-launch"
  content="thread-1"
>
  Try oriz-finance
</UtmLink>;

buildUtmUrl() is the same logic for non-React contexts (CLI scripts, omnipost adapters, Worker-side replies).

Implications

Cross-refs