Tracking links

Generate links for your YouTube descriptions. These should point at go.brettdev.com and log clicks into PostHog.

Create tracking link

Link path (slug)

This is the path after your tracking domain (e.g. …/k3m9xq2a), not the ?utm_… part. Each link needs a unique path so we know which click to attribute. You can’t use the exact same URL on every video without putting something different in the link — the browser only sends the URL to the server, not “which YouTube video you watched.” Same path everywhere would make every click identical.

If you leave slug blank, we default to v- plus the video ID (~13 chars). For a short, tidy path, use Generate — meaning lives in Campaign, not in the slug.

Slug (optional)
Each slug must be unique across all your links (it is the path in the URL). If you use the same phrase for several videos (e.g. “7 days to Thailand”), either leave this blank so each link gets a unique v-… path from the video ID, or add something unique per video (e.g. 7-days-thailand-dQw4w9WgXcQ). Put the shared promo name in Campaign below—that can match across videos.Two CTAs on the same video? Create two links with the same video ID and two different slugs (e.g. v-abc123-community and v-abc123-guide). The default blank slug only gives one path per video (v-…); extra CTAs need a custom slug each. Use medium or campaign to label “pinned comment” vs “description” in reports if you like.

UTM labels

These become utm_source, utm_medium, and utm_campaign on the full tracking URL (they do not change the path above).

Destination

Where visitors land after the redirect (full URL, including https://).

Link to paste in YouTube

Use the short URL only — no ?utm_… on the go link. Your Cloudflare Worker loads this link’s destination and UTM settings from the app and adds them when redirecting (set Worker env LINK_RESOLVE_BASE and TRACKING_LINK_RESOLVE_SECRET to match Vercel).

Existing links

VideoTracking linkUTMsDestinationActions
No tracking links yet.