How-to guide

How to Track Social Media Clicks with UTM Links

Last updated: 2026-04-30 · Cross-platform · By SocialKit Team

UTM parameters are short tags you append to any link that tell Google Analytics 4 exactly which social network, post, or campaign sent each visitor. This guide walks through building a tagged URL with SocialKit's free UTM Builder, adding it to a scheduled post, and reading the attribution data in GA4 — turning every scheduled post into traceable ROI.

Before you start

You need a destination URL (the page you are sending traffic to), a GA4 property set up for that domain, and a SocialKit account — the 7-day free trial is enough to schedule posts and test tracking, with €0.00 due today.

The free UTM Builder works without an account, so you can start building and previewing tagged links immediately. Decide on a naming convention for utm_source, utm_medium, and utm_campaign before you begin — inconsistent casing ("Instagram" vs "instagram") splits your GA4 data into separate rows and makes reporting painful.

Step by step

  1. Agree on a UTM naming convention before you build any links

    GA4 treats parameter values as case-sensitive strings, so "Instagram" and "instagram" appear as two separate sources. Before generating a single link, write down the values you will use for each parameter: utm_source is typically the network name in lowercase (e.g. instagram, linkedin, x), utm_medium is your channel type (social), and utm_campaign is the campaign or content series name you want to track. Keep it in a shared doc or spreadsheet so every teammate uses the same strings.

    Tip: A simple convention like source=instagram / medium=social / campaign=june-promo is more useful than elaborate naming, because it survives team turnover and still reads clearly in GA4 reports six months from now.

  2. Open the free UTM Builder and fill in the required fields

    Go to the SocialKit UTM Builder (no login required). Paste your destination URL, then fill in utm_source, utm_medium, and utm_campaign. Optionally add utm_content to distinguish individual posts or creative variants (e.g. utm_content=carousel-01 vs utm_content=video-01). The builder assembles and encodes the full tagged URL as you type so you can copy it immediately.

    Tip: Use utm_content generously when A/B testing creatives or post formats — it is the only parameter that lets GA4 tell two posts with identical campaigns apart at the individual-post level.

  3. Click the tagged link yourself and confirm GA4 receives it

    Paste the tagged URL into a private/incognito browser tab, navigate to it, and then open GA4 > Reports > Acquisition > Traffic acquisition. Within a few minutes (real-time view: within seconds) you should see a row with your utm_source and utm_medium values. If nothing appears, check that the destination domain has the GA4 tag installed and that the URL did not break during copy-paste. Fix the link before scheduling anything.

  4. Create your post in SocialKit and paste the tagged URL into the post body or link field

    Open the SocialKit composer, select the accounts you want to target, and write your caption. Paste the tagged URL where the link should appear. As of June 2026, SocialKit does not automatically append UTM parameters to links you enter — the tagging must be done before you paste. The composer shows a character count and post preview per network, so you can confirm the full URL fits or shorten it if needed.

    Tip: On some networks the link in the caption is not clickable (Instagram feed posts, TikTok captions). For those, put the UTM link in your bio or link-in-bio page and use utm_content to label the specific campaign driving traffic there.

  5. Customize the caption per network if cross-posting, then schedule

    If you are sending the post to multiple platforms in one go, use SocialKit's per-platform caption editor to tailor each version — the UTM link can stay the same across all of them, or you can give each network its own utm_source value for granular attribution. Pick your publish date and time, then schedule. As of June 2026, auto-publish availability depends on network and account type; SocialKit indicates whether a given post will publish automatically or send a mobile reminder to finish posting.

  6. Watch for network-level link wrapping that could affect UTM persistence

    Some networks rewrite outbound URLs through their own redirect layer as of June 2026. LinkedIn, for example, wraps shared links through lnkd.in; Facebook uses l.facebook.com; X (Twitter) shortens links via t.co. In most cases your UTM parameters survive the redirect and land intact in GA4, but if you use an additional third-party link shortener (bit.ly, etc.) on top of a network redirect, test the full chain in GA4's real-time report before launch to confirm the parameters are not dropped.

    Tip: If you must shorten a UTM link, use a shortener that 301-redirects rather than one that strips query strings. Always test the final short URL in a fresh incognito window and check GA4 real-time before the post goes live.

  7. Review campaign performance in GA4 after the post publishes

    In GA4, go to Reports > Acquisition > Traffic acquisition and filter by Session source/medium. Your utm_source and utm_medium values will appear as rows. Switch to the Campaigns report to break down results by utm_campaign, and add utm_content as a secondary dimension to compare individual posts. SocialKit's Analytics section also surfaces engagement metrics per scheduled post, giving you reach and engagement on the social side alongside the GA4 click and conversion data.

Best practices

  • Tag every link you ever share on social media — including bio links, story links, and link-in-bio destinations — so GA4 can always attribute the session rather than lumping it into "(direct)" traffic.
  • Keep utm_source values identical to the network domain root (instagram, tiktok, linkedin, x, facebook, youtube, pinterest, threads, bluesky, mastodon) so they align cleanly with GA4's channel grouping rules.
  • Create one UTM template per network in a shared spreadsheet and let teammates copy-paste from it, rather than composing values by hand each time — this prevents the casing drift that splits reports.
  • When running a time-limited campaign across multiple networks, use a shared utm_campaign value and differentiate networks with utm_source, rather than encoding the network name inside utm_campaign. This lets GA4 aggregate the full campaign impact in one row.
  • Do not use UTM parameters on internal links (links from your own website to other pages on the same site) — they override the original session source and corrupt attribution for that user.
  • After every campaign, export the GA4 Traffic acquisition report filtered by that utm_campaign and compare click-through and conversion rates across networks. Over time this data tells you which platforms actually drive ROI for your specific audience.

Good to know

Networks where caption links are not clickable

As of June 2026, Instagram feed post captions do not render URLs as clickable links — the standard practice is to put the tagged URL in your profile bio or a link-in-bio page and reference it in the caption ("link in bio"). TikTok captions are similarly not clickable for most accounts, and the clickable bio link is the primary traffic driver there. For both platforms, use a consistent utm_source and a descriptive utm_content value so GA4 can still attribute sessions that arrive via the bio link to the specific post campaign.

Link shorteners and redirect chains

A UTM link that passes through one redirect (the network's own link wrapper) nearly always preserves the parameters. A link that passes through two redirects — your own shortener and then the network's wrapper — can occasionally drop parameters depending on how the shortener is configured. If you rely on link shorteners for tracking branded short URLs, test the full redirect chain in GA4's real-time view before each campaign launch and confirm all five UTM parameters land on the destination page.

Do it in SocialKit

SocialKit's Analytics section surfaces reach, engagement, and post-level performance across all 11 platforms in one place. Pair it with GA4 UTM data to connect social engagement with the traffic and conversions that actually grow your business. Included on every plan — 7-day free trial, €0.00 due today.

See social analytics in SocialKit
Free tool
Free UTM Builder

No login needed.

All 11 platforms included

Try it free

Schedule and cross-post to all 11 networks from one calendar on one flat plan. 7-day free trial — €0.00 due today.

Start My Free Trial

€0.00 due today · cancel anytime · 7-day money-back guarantee

FAQ

Frequently asked questions

The questions people ask before they schedule — answered honestly, hedged where platform behavior changes.

Start My Free Trial

€0.00 due today · cancel anytime · 7-day money-back guarantee