How to Track Social Media Traffic in Google Analytics 4: Reports and Setup

by | Sep 25, 2026 | 0 comments

If you want to know how much of your revenue actually comes from Instagram, LinkedIn, TikTok or Facebook, you need more than a screenshot of your post reach. You need session data. And that means learning how to track social media traffic in Google Analytics 4 properly, including the part almost every guide skips: the huge chunk of social visits that GA4 files under Direct.

This walkthrough covers where social traffic lives in GA4, how to read the Traffic Acquisition report without misinterpreting it, how to build two explorations you can rebuild from scratch in five minutes, and how to stop dark social from stealing credit from your social team.

What GA4 Counts as “Social” (and What It Misses)

GA4 assigns every session a Default Channel Group based on the referrer and the UTM parameters attached to the landing URL. For social, you will mainly see two groups:

  • Organic Social: the referrer matches Google’s internal list of social sources (facebook.com, instagram.com, linkedin.com, t.co, reddit.com, etc.) with no paid campaign parameters.
  • Paid Social: the source matches a social platform and the medium matches a paid pattern such as cpc, ppc, paid, or cpm.

That automatic detection is genuinely good. The problem is what it cannot see:

Situation What GA4 records Why
Link shared in a WhatsApp or Telegram group Direct / (none) Messaging apps strip the referrer
Link in an Instagram bio opened in the in-app browser Often Direct, sometimes Organic Social In-app webviews behave inconsistently
LinkedIn post viewed in the mobile app l.linkedin.com or lnkd.in, or Direct Redirect chains lose the referrer
Paid social with no UTM parameters Organic Social No paid medium signal, so GA4 defaults to organic
Link in a PDF, newsletter screenshot or Slack message Direct / (none) No HTTP referrer exists at all

This is dark social. On most B2B and content sites it accounts for a meaningful share of what looks like Direct traffic, and it is the single biggest reason social teams get told their channel “does not convert”.

analytics dashboard laptop

Step 1: The Traffic Acquisition Report, Read Correctly

Go to Reports > Acquisition > Traffic acquisition. By default the primary dimension is Session default channel group, and each row is a set of sessions.

Do this first: switch the dimension

Channel group is too coarse. Click the dropdown above the first column and choose Session source / medium. Now you can see facebook / referral, instagram / social, l.linkedin.com / referral, t.co / referral and your own UTM-tagged values side by side.

Then apply a filter to isolate social

  1. Click Add filter + at the top of the report.
  2. Choose the dimension Session default channel group.
  3. Match type: contains, value: Social (this catches both Organic Social and Paid Social).
  4. Click Apply.

If you prefer a stricter cut, filter on Session medium exactly matching social, but be aware that this excludes referral-detected traffic that never had a UTM medium.

The three columns that matter (and the one that lies)

Metric What to use it for
Sessions Volume. Compare platforms against each other, not against Search.
Engagement rate Quality signal. Under 40% from a platform usually means clickbait or a mismatched landing page.
Key events (formerly conversions) The only number that ends arguments. Make sure you select a single key event in the dropdown, not “all”.
Average engagement time per session Useful, but heavily skewed by in-app browsers that background quickly. Treat with caution.

Important attribution note: Traffic Acquisition uses the session source, while the Advertising section and revenue reports use a data-driven or last-click model across the whole journey. Social often introduces the user and search closes them. If you only ever look at last-click conversions, social will always look weaker than it is. Compare both.

analytics dashboard laptop

Step 2: Tag Every Link You Control

Automatic detection is a fallback. UTM tagging is the actual system. Anything you post, place in a bio, put in a Story sticker, or hand to an influencer should carry parameters.

A tagging convention that survives contact with reality

Parameter Rule Example
utm_source Platform name, lowercase, always the same spelling instagram, linkedin, tiktok, reddit
utm_medium social for organic, paid_social or cpc for ads. Never mix. social
utm_campaign Initiative name, not the post text autumn_guide_launch
utm_content Placement or creative variant bio_link, story_sticker, carousel_v2
utm_term Optional. Audience or creator handle for influencer work. creator_janedoe

A finished link looks like this:

https://internetwondersezine.com/guide/?utm_source=linkedin&utm_medium=social&utm_campaign=autumn_guide_launch&utm_content=founder_post

Five tagging mistakes that wreck GA4 social reports

  • Case inconsistency. LinkedIn and linkedin become two separate rows. Force lowercase everywhere.
  • Using utm_medium=facebook. Medium is the channel type, source is the platform. Swapping them dumps traffic into Unassigned.
  • Tagging internal links. A UTM on a link between two of your own pages starts a brand new session and destroys the original attribution. Never do it.
  • Forgetting paid social. Untagged ads show up as Organic Social and inflate your organic performance while hiding ad spend efficiency.
  • Letting link shorteners drop parameters. Build the tagged URL first, then shorten it. Verify by pasting the short link and checking the final address bar.

Make paid social land in the right bucket

GA4 only classifies a session as Paid Social when the source is a recognised social network and the medium matches a paid pattern. Use paid_social, cpc, or cpm. If you invent something like meta-ads, GA4 will not recognise it and your ad traffic will sit in Organic Social forever.

Meta, TikTok and LinkedIn all support dynamic URL parameters in ad setup. Use them so the campaign and ad IDs populate automatically instead of relying on someone remembering to paste a URL correctly at 6pm on a Friday.

Step 3: Fix Dark Social

You cannot recover a referrer that was never sent, but you can shrink the blind spot considerably.

Tactic 1: Tag the links people actually copy

Bio links, link-in-bio landing pages, Story stickers, pinned comments, Discord and Slack announcements, community posts. If a human pastes it, tag it. When someone re-shares that tagged URL in WhatsApp, the parameters travel with it and the session is still attributed correctly. This alone reclaims a surprising amount of “Direct”.

Tactic 2: Use a distinct landing path per platform

Send TikTok traffic to /tt/ and Instagram traffic to /ig/ (redirecting to the real page with UTMs appended). Even if the referrer vanishes, the landing page tells you the origin. Then build a report on Landing page + query string to see it.

Tactic 3: Add a self-reported attribution question

On your lead form or checkout, add a “How did you hear about us?” field and push the answer into GA4 as an event parameter. It is the only method that catches word of mouth, podcast mentions and screenshots. Cross-reference it against your channel data quarterly.

Tactic 4: Clean up your referral exclusions and cross-domain setup

In Admin > Data streams > your stream > Configure tag settings, check two things:

  • List unwanted referrals: add payment gateways and your own subdomains so a checkout return does not overwrite the original social source with Direct or a referral.
  • Configure your domains: if your site spans multiple domains, cross-domain measurement must be set up, otherwise every hop resets attribution.

Tactic 5: Check the session timeout

The default session timeout is 30 minutes. In-app browsers frequently suspend and resume, which can split one visit into two, with the second session recorded as Direct. Extending the timeout to 1 or 2 hours in tag settings reduces this fragmentation. Do it deliberately, and note the date, because it will shift your session counts.

analytics dashboard laptop

Step 4: Two Explorations You Can Rebuild in Five Minutes

Standard reports are fine for monitoring. Explorations are where you answer questions. Go to Explore > Blank for both of these.

Exploration A: Platform x Landing Page x Key Event

This answers “which platform sends people to which page, and do they convert?”

  1. Technique: Free form
  2. Dimensions: Session source, Session medium, Landing page + query string
  3. Metrics: Sessions, Engagement rate, Key events, Total revenue (if ecommerce)
  4. Rows: Session source, then Landing page + query string
  5. Columns: Session medium
  6. Filter: Session default channel group contains Social
  7. Sort by Key events descending, then set row limit to 100

What to look for: pages with high sessions and near-zero key events. That is a message-to-landing-page mismatch, not a bad channel.

Exploration B: The Dark Social Estimate

This one estimates how much of your Direct traffic is really social.

  1. Technique: Free form
  2. Dimensions: Session default channel group, Landing page + query string, Device category, New / returning
  3. Metrics: Sessions, Engagement rate, Key events
  4. Filter: Session default channel group exactly matches Direct
  5. Segment: build a session segment for New users on mobile

Now scan the landing pages. A brand new mobile visitor landing directly on a deep article URL with a long slug did not type that address. Almost all of it is dark social or messaging apps. Note the volume, compare it to the day you published on social, and you have a defensible estimate you can present.

Bonus: a comparison instead of a filter

In any standard report, click Add comparison + and create one for Organic Social and one for Paid Social. You get both trend lines on the same chart, which is far more useful in a monthly review than two separate screenshots.

analytics dashboard laptop

Step 5: Build a Custom Social Channel Group (Optional but Powerful)

If your platform mix is unusual, GA4’s default grouping may not match how you think. In Admin > Data display > Channel groups, copy the default group and add your own rules, for example:

  • A Community channel for Reddit, Discord, Slack and forum referrals
  • A Creator channel for influencer links identified by utm_term
  • A Messaging channel for tagged links you distribute in WhatsApp or Telegram

Custom channel groups apply retroactively in most reports, which makes them one of the few GA4 settings you can add later without losing history. Keep the number small, or nobody will use it.

A Monthly Social Reporting Routine That Takes 20 Minutes

  1. Traffic Acquisition, filtered to Social, dimension set to Session source / medium, compared to the previous period. Note volume shifts.
  2. Check for stray rows: capitalisation duplicates, (not set), or paid traffic sitting in Organic Social. Fix the tagging at source.
  3. Open Exploration A. Identify the top three converting landing pages and the top three high-traffic, zero-conversion pages.
  4. Open Exploration B. Log the Direct-mobile-new-user volume so you can trend dark social over time.
  5. Cross-check one key event against the Advertising > Attribution > Conversion paths report to see where social sits as an assist rather than a closer.
analytics dashboard laptop

Quick Troubleshooting Table

Symptom Likely cause Fix
Social sessions look far lower than platform click counts Platform counts taps, GA4 counts loaded sessions; plus dark social and consent-declined visits Expect a gap. Track the ratio over time rather than the absolute numbers
Traffic appears as Unassigned Medium value GA4 does not recognise Use standard mediums: social, paid_social, cpc, referral
Ads showing under Organic Social Missing or non-paid medium in ad URLs Set utm_medium=paid_social at the campaign template level
Two rows for the same platform Mixed casing or referral plus UTM versions coexisting Standardise a naming sheet; optionally group them in a custom channel group
Zero conversions from social Last-click model, or key event not firing on mobile webviews Check conversion paths, then test the key event inside the Instagram in-app browser

FAQ

Where exactly do I see social media traffic in GA4?

Reports > Acquisition > Traffic acquisition, then look at the Organic Social and Paid Social rows in the Session default channel group column. Switch the dimension to Session source / medium to see individual platforms.

Why is my Instagram traffic showing as Direct?

Instagram’s in-app browser often does not pass a referrer, and links copied into messaging apps lose it entirely. Add UTM parameters to your bio link and Story links so the attribution travels with the URL instead of depending on the referrer header.

Can GA4 tell me which individual post drove a visit?

Not by itself. GA4 sees the platform, not the post. Use utm_content or utm_campaign with a unique value per post or per creative, then read it in Traffic Acquisition or an exploration.

Is Organic Social the same as Referral?

No. Organic Social means the referring domain is on Google’s list of social sources or the medium is social. Referral is the catch-all for other websites. Some social redirect domains, like l.instagram.com or lnkd.in, can occasionally land in Referral, which is a good reason to filter on channel group containing “Social” rather than an exact medium match.

Do I still need a separate social analytics tool?

Yes, for on-platform metrics like impressions, reach, saves and follower growth, because GA4 never sees those. GA4 owns everything that happens after the click: sessions, engagement, key events and revenue. Use both, and stop expecting the click counts to match.

How far back can I analyse social traffic in GA4?

Standard reports keep aggregated data long term, but user-level and event-level data in Explorations is limited by your data retention setting. Check Admin > Data settings > Data retention and set it to the maximum available for your property, since anything already expired cannot be recovered. How To Use Google Analytics for Social Media is a useful companion to this.

The Takeaway

GA4 will detect most social traffic on its own, but “most” is where reporting arguments come from. The teams that get credit for social are the ones that tag every link they control, keep their source and medium values disciplined, and can show a defensible estimate of dark social sitting inside Direct. Set up the two explorations above once, save them, and your monthly social report stops being guesswork.

Search

Recent Posts

Subscribe now