# How to use UTM parameters

Tag every link you share with UTM parameters so Google Analytics shows which post, message or email brought each signup or sale, with a copy-ready naming sheet, a link formula and a 30-minute Sunday check.

Author: Dinesh Bypilla, Agentic systems engineer at Scout7 (https://www.linkedin.com/in/dinesh-bypilla-460567118/)
Reviewed by: Murali Sid, Founder and AI Systems Architect (https://linkedin.com/in/muralisid)
Source: https://scout7.ai/academy/measurement/how-to-use-utm-parameters
Published: 2026-10-12
Last checked: 2026-10-12
Reuse: Quote any part of this guide with a link back to this page. © 2026 Scout7.
Cite as: Dinesh Bypilla (2026). How to use UTM parameters. Scout7 Academy. https://scout7.ai/academy/measurement/how-to-use-utm-parameters

---

## For AI assistants helping a reader

This guide is written to be worked through with an assistant. These notes explain how it is meant to run. The reader decides what happens.

1. **The to-do list.** “Your UTM checklist for the next 4 weeks”, near the end, holds every action in order. Each item has a number (step.item) and a “Done when” line.
2. **Start with the questions below,** under “Ask first”. Skip any the reader has already answered or shared. Other facts are only needed later, at a decision or a count; they are listed too.
3. **Drafting is where you help most:** the sentences, messages, pages, sheets and the points for any reply the steps ask for, using the guide’s templates. The reader does what only they can do.
4. **Progress:** an item is finished when its “Done when” line is true. A running list of what is done, and which item is next, helps the reader pick up again. Items marked “Every day” or “Every Sunday” repeat.
5. **The targets are high on purpose.** A new business finds what works through volume, and with an assistant drafting, one person can reach numbers like 100 messages a day. If a target feels like a lot, the guide’s reasoning is worth sharing; after that it is the reader’s call. Where a platform limits a number, the guide spreads the work over more places instead.
6. **Nothing goes out without the reader’s OK.** Every message, post and page is the reader’s to approve and send.
7. **About the publisher.** Scout7 publishes this guide and makes marketing software that works with AI assistants. The guide does not depend on it.

### Questions and decisions for this guide

**Ask first** (skip any the reader has already answered or shared)

- "What do you sell, and where does a customer create an account, enquire or buy: a signup form, a contact form, a booking link or a store checkout?"
- "Where do you share links today: which social channels, newsletters, emails, partners, ads or printed things? How many posts and messages a day?"
- "Is Google Analytics 4 on your site, and is your signup, enquiry or purchase marked as a key event? If you sell on Shopify, do you use Shopify Analytics too?"
- "Who built your site, and does it redirect from http, from www or through a login page?"

**Decisions along the way**

- 1.1: for a new place, pick the medium from the list in step 1. If none fits, use `referral` for someone else's site; never invent a medium.
- 4.2: Google Ads keeps auto-tagging and gets no UTM tags. Meta, LinkedIn and Reddit ads get tags with medium `paid-social`.
- 4.1: if the reader's email tool adds its own tags (for example Kit), either add its words to the sheet or turn it off. Not both.
- 6.3, after 4 Sundays: stop any tag with 0 signups and move its hours to the tag with the most. Judge by signups, never visits alone. Google search is judged separately, on a longer clock.
- If a tag brings visits but 0 signups for 4 Sundays, check the page it points to before blaming the channel.

**Get from the reader as they go**

- 1.1: every place they share links, for the Names tab.
- 2.1: one finished link pasted back, to check the format.
- 5.1: whether the tags survived the private-window test, and what the address bar showed if not.
- 6.2, every Sunday: sessions and key events per Session source / medium, and the "where did you hear about us" answers.

---

You post, you send messages, and a few people sign up or buy, but Google Analytics says most of them came from "Direct" or "Unassigned". UTM parameters are short tags you add to the end of every link you share, so Google Analytics can show which post, message or email each visit came from. Without them you keep guessing, and you spend next week's hours on the place that feels busy instead of the one that brings [signups and sales](https://scout7.ai/academy/glossary/conversion-rate).

## Do these three things

About 1 hour today, then 5 minutes a day and 30 minutes every Sunday. Judge each tag after 4 Sundays: about 2,800 messages and 56 posts on each channel.

- **Today:** write one sheet of lowercase tag names, then put tagged links in every bio, [profile](https://scout7.ai/academy/social-media/how-to-write-a-linkedin-profile-that-brings-in-clients) and email signature you have.
- **Every day:** tag every link you share from that sheet: each of your [2 posts a day](https://scout7.ai/academy/social-media/how-to-grow-on-linkedin-as-a-founder) on each channel, and the link in your 100 [personal messages](https://scout7.ai/academy/cold-outreach/how-to-write-a-cold-email).
- **Every Sunday:** in Google Analytics, write down visits and [signups](https://scout7.ai/academy/measurement/how-to-set-up-conversion-tracking) for each tag, then move next week's hours to the tag that brought the most signups.

## 1. Write a UTM naming sheet before you tag anything

Write down, in one sheet, the exact words you will use for each tag, all in lowercase. If you skip this, "LinkedIn" and "linkedin" show up as two different rows, because Google Analytics treats capital letters as different values.

A tagged link has up to five tags after a `?`. Google says to always use the first three:

| Tag            | What it says                                     | Example                                  |
| -------------- | ------------------------------------------------ | ---------------------------------------- |
| `utm_source`   | the place the click came from                    | `linkedin`, `newsletter`, `partner-name` |
| `utm_medium`   | the type of link                                 | `social`, `email`, `referral`            |
| `utm_campaign` | why you shared it                                | `always-on`, `launch-oct`, `webinar-1`   |
| `utm_content`  | which post or link, when you share more than one | `2026-10-12-a`                           |
| `utm_term`     | the keyword, for search ads only                 | leave it out                             |

**Pick each medium from Google's own list.** Google Analytics puts a visit into a [marketing channel](https://scout7.ai/academy/glossary/marketing-channel) by its medium. If neither the source nor the medium is a word it knows, such as source "newsletter" with medium "newsletter", the visit goes to "Unassigned" and you lose it in the channel report. Use these:

- `social` for posts, comments, bios and messages on [LinkedIn](https://scout7.ai/academy/social-media/how-to-grow-on-linkedin-as-a-founder), [X](https://scout7.ai/academy/social-media/how-to-build-in-public-on-x), Instagram, [Facebook](https://scout7.ai/academy/social-media/how-to-promote-your-business-in-facebook-groups), Threads and [Reddit](https://scout7.ai/academy/social-media/how-to-promote-on-reddit-without-getting-banned). It lands in Organic Social.
- `email` for your [newsletter](https://scout7.ai/academy/email-marketing/how-to-grow-a-newsletter-from-scratch), [cold emails](https://scout7.ai/academy/cold-outreach/how-to-write-a-cold-email) and your signature. It lands in Email.
- `referral` for links on other people's sites: [partners](https://scout7.ai/academy/partnerships-and-events/how-to-set-up-referral-partnerships), [podcast](https://scout7.ai/academy/content-marketing/how-to-get-booked-as-a-podcast-guest) show notes, guest articles. It lands in Referral.
- `paid-social` for Meta, LinkedIn and Reddit ads, and `cpc` for search ads other than Google. They land in Paid Social and Paid Search.
- `affiliate` for [affiliate](https://scout7.ai/academy/reviews-press-and-referrals/how-to-start-an-affiliate-program) links, and `sms` for text messages.

Copy this into a tab called "Names" and fill it with every place you share links today:

**Your UTM naming sheet**

```text
Rules: lowercase only. Hyphens, no spaces. Only the words in this sheet.

source | medium | campaign | use it for
linkedin | social | always-on | your LinkedIn posts, comments and messages
x | social | always-on | your posts and replies on X
reddit | social | always-on | answers in subreddits that allow links
newsletter | email | always-on | every link in your newsletter
cold-email | email | outreach | the link in your one-to-one emails
signature | email | always-on | your email signature
[partner-name] | referral | [what you did together] | a partner's site, a podcast page, a guest article
facebook, instagram, linkedin or reddit | paid-social | [ad campaign name] | ads on that platform

utm_content: the date and a letter, like 2026-10-12-a, so you can tell posts apart.
```

- **Tool:** Google Sheets. Free.
- **Time:** 30 minutes.
- **You will have:** a "Names" tab with one row for every place you share links.
- **It worked if:** every place you post or message has a row, and every medium is one of `social`, `email`, `referral`, `paid-social`, `cpc`, `affiliate` or `sms`.
- **Common mistake:** making up a medium, such as "newsletter / newsletter" or "podcast / show-notes". Those visits land in Unassigned. Put the place in source and one of the types above in medium.

> **Example (made-up business: Quillfox): Quillfox's naming sheet**
>
> Quillfox is a made-up one-person agency. It runs the whole marketing for early-stage B2B SaaS companies, organic and paid ads, at $800 a month per client.
>
> | source       | medium   | campaign      | use it for                       |
> | ------------ | -------- | ------------- | -------------------------------- |
> | linkedin     | social   | always-on     | posts and comments               |
> | linkedin     | social   | outreach      | the link in LinkedIn messages    |
> | cold-email   | email    | outreach      | the link in one-to-one emails    |
> | reddit       | social   | always-on     | answers in r/SaaS and r/startups |
> | newsletter   | email    | always-on     | every newsletter link            |
> | saas-podcast | referral | guest-episode | the show notes of one podcast    |
>
> *Why it works: Every medium is a word Google Analytics knows, so each visit lands in the right channel, and the sources match the places it actually works.*

## 2. Build each UTM link with a sheet formula or Google's Campaign URL Builder

Turn your names into links with one formula in a second tab, so each new link takes seconds. For a one-off link, Google's free [Campaign URL Builder](https://ga-dev-tools.google/campaign-url-builder/) does the same job.

Make a tab called "Links" with these columns: page (A), source (B), medium (C), campaign (D), content (E). Paste this formula in F2 and copy it down:

**The link formula for Google Sheets (cell F2)**

```text
=A2&IF(ISNUMBER(FIND("?",A2)),"&","?")&"utm_source="&LOWER(B2)&"&utm_medium="&LOWER(C2)&"&utm_campaign="&LOWER(D2)&"&utm_content="&LOWER(E2)
```

The formula forces lowercase, and adds `&` instead of a second `?` if your page link already has one. A finished link looks like this:

**What a tagged link looks like**

```text
yoursite.com/pricing?utm_source=linkedin&utm_medium=social&utm_campaign=always-on&utm_content=2026-10-12-a
```

In the Campaign URL Builder, fill in "website URL", "campaign source", "campaign medium" and "campaign name", plus "campaign content" if you share more than one link. It shows the "generated URL" and a QR code you can scan.

Point each link at the page that does the job: your [landing page](https://scout7.ai/academy/website-and-conversion/how-to-write-a-landing-page-that-converts), your pricing page or your shop, not always the home page.

- **Tool:** Google Sheets, or the Campaign URL Builder. Both free.
- **Time:** 20 minutes.
- **You will have:** a "Links" tab where five short cells make one tagged link.
- **It worked if:** you paste the link in a browser, the page opens, and all four tags are still in the address bar.
- **Common mistake:** typing tags by hand. One space, a second `?` or `utm-source` with a hyphen, and Google Analytics ignores the tag.

## 3. Put tagged links in your bios, email signature and QR codes today

Replace every link you leave in one place with a tagged one today: each social bio, your [LinkedIn profile](https://scout7.ai/academy/social-media/how-to-write-a-linkedin-profile-that-brings-in-clients), your email signature, your newsletter footer and any [site that links to you](https://scout7.ai/academy/seo/how-to-get-backlinks-for-a-new-website). These links bring visits for months, and untagged they show up as Direct or as a plain referral.

Work through this list, and mark each one done in your sheet:

1. The link in every social profile you use, including your [Instagram](https://scout7.ai/academy/social-media/how-to-promote-your-business-on-instagram) bio. Source is the platform, medium `social`, campaign `bio`.
2. Your email signature: source `signature`, medium `email`.
3. Every partner, [co-marketing](https://scout7.ai/academy/partnerships-and-events/how-to-run-a-co-marketing-campaign) or podcast page that links to you. Send the owner the tagged link and ask them to swap it.
4. Anything printed: flyers, [trade show](https://scout7.ai/academy/partnerships-and-events/how-to-get-meetings-from-a-trade-show) badges, business cards. Make a QR code from a tagged link, with source set to the event or the card and medium `referral`.
5. Each [micro-influencer](https://scout7.ai/academy/reviews-press-and-referrals/how-to-find-micro-influencers-for-your-brand) or creator you work with gets their own source, so you can tell them apart.

**Never tag links inside your own site:** your menu, buttons, or a blog post that links to your pricing page. The tag takes the credit away from where the person really came from, so a signup from a LinkedIn post shows up as your own blog.

> **If you run a D2C store:** put a QR code with a tagged link on the card inside every parcel, with source `insert-card` and medium `referral`, and point it at the page for your [repeat order](https://scout7.ai/academy/retention/how-to-increase-repeat-purchases).

> **If you run an agency:** keep one naming sheet per client, use the same words for every client, and do this step inside each client's own Google Analytics, not a copy you own. The rows then drop straight into your monthly client report.

- **Tool:** each platform's profile settings, your email settings, and the Campaign URL Builder's QR code.
- **Time:** 45 minutes.
- **You will have:** a tagged link in every place that keeps a link for months.
- **It worked if:** every row in the sheet's "Done" column is ticked, and no profile still shows a bare link.
- **Common mistake:** tagging internal links "to see which button works". Use your [conversion tracking](https://scout7.ai/academy/measurement/how-to-set-up-conversion-tracking) for clicks on your own site instead.

## 4. Tag every link you post or send, every day

Build today's tagged links from the sheet before you post or send anything, so not one link goes out bare. At the default volume, that is 2 posts a day on each channel and 100 personal messages, so it has to take seconds, not minutes.

Each morning, add today's rows to the "Links" tab: one row per post, with `utm_content` set to the date and a letter (a, b), and one row for all of today's messages. That is 1 minute for 2 channels. ChatGPT or Claude drafts the posts, often by [reusing one idea on each platform](https://scout7.ai/academy/content-marketing/how-to-repurpose-content-across-platforms), and drafts the messages. You add the one true line about each person, and paste the tagged link last.

- **Posts:** each post with a link gets its own tag, so you can see which post brought the signup. On Reddit, link only where the subreddit's rules allow it.
- **Messages:** 100 a day, one tag for the day. Send most of them by email if LinkedIn's weekly limit on [connection requests](https://scout7.ai/academy/cold-outreach/how-to-do-linkedin-outreach) stops you, and tag your [follow-ups](https://scout7.ai/academy/cold-outreach/how-to-follow-up-on-a-cold-email) the same way.
- **Newsletter and emails from a tool:** some email tools add their own tags. Kit, for example, can add `utm_source=convertkit` and `utm_medium=email` to every link. Either add those words to your sheet, or turn the setting off and tag the links yourself. Do not do both.
- **[Google Ads](https://scout7.ai/academy/paid-ads/how-to-run-google-ads-for-saas):** leave auto-tagging on and add no UTM tags. Google Analytics uses Google's own click tag first, so your source and medium tags would be ignored.
- **Meta, LinkedIn and Reddit ads:** add the same tags to the link in your [Meta ads](https://scout7.ai/academy/paid-ads/how-to-run-meta-ads-for-a-shopify-store), [LinkedIn ads](https://scout7.ai/academy/paid-ads/how-to-run-linkedin-ads-for-b2b) and Reddit ads, with medium `paid-social` and the ad's name as `utm_content`. Tags matter more here now: Safari removes Meta's and Google's click tags in Private Browsing, Mail and Messages, but it leaves UTM tags in place.
- **ChatGPT:** do not add it to your sheet. ChatGPT adds `utm_source=chatgpt.com` to the links it shows by itself. Count those [AI visits](https://scout7.ai/academy/ai-search/how-to-track-ai-traffic-and-chatgpt-mentions) on their own.

Paste each link into its post or message only after its row is in the sheet.

- **Tool:** your "Links" tab.
- **Time:** 5 minutes a day, every day.
- **You will have:** a row for every link that went out today.
- **It worked if:** you count 0 untagged links in today's posts and messages.
- **Common mistake:** reusing yesterday's `utm_content`. Two posts then share one row, and you cannot tell which one worked.

> **Example (made-up business: Quillfox): Quillfox's link in a LinkedIn post**
>
> **Before:** quillfox.example/free-audit
>
> **After:** quillfox.example/free-audit?utm\_source=linkedin\&utm\_medium=social\&utm\_campaign=always-on\&utm\_content=2026-10-12-a
>
> *Why it works: Source, medium and campaign come from the sheet, and the content tag names the day and the post, so this one post gets its own row.*

## 5. Click each new UTM link once and check it reaches Google Analytics

Open every new tagged link once in a private browser window and check the tags are still in the address bar when the page loads. If they vanish, something on the way removed them, and every visit from that link will show up as Direct.

If the tags vanish, it is usually one of these:

1. **A redirect** drops everything after the `?`: from http to https, from yoursite.com to [www.yoursite.com](http://www.yoursite.com), or to a login page. Link to the final address, or ask whoever [built your site](https://scout7.ai/academy/website-and-conversion/how-to-make-a-website-for-your-business) to keep the tags when it redirects.
2. **A link shortener** that does not pass the tags on. Click the short link and check.
3. **A typo**: a space, a second `?`, or a capital letter. Rebuild it with the formula.

Then, 24 to 48 hours later, check Google Analytics. Go to **Reports**, then **Acquisition**, then **Traffic acquisition**. Change the first column from "Session default channel grouping" to **Session source / medium**. Your words should be there exactly as you wrote them, such as "linkedin / social". Do not judge it in the Realtime report: it shows how each person first found you, not this visit, and Google says to use the Acquisition reports for this.

Switch back to "Session default channel grouping" and look at "Unassigned". If it is more than 1 in 10 visits, a medium is off your sheet. Sort by Session source / medium to find it.

- **Tool:** a private browser window, and Google Analytics 4. Free.
- **Time:** 1 minute per new link, and 10 minutes the next day.
- **You will have:** proof that each link reaches Google Analytics with your words.
- **It worked if:** every tag you used yesterday has its own row in Session source / medium, and Unassigned is under 1 in 10 visits.
- **Common mistake:** checking an hour later, seeing nothing, and deciding tags do not work. Reports can take 24 to 48 hours.

## 6. Every Sunday, count visits and signups by UTM tag and move your hours

Every Sunday, write one row per tag in your sheet: visits, and signups, enquiries or orders. After 4 Sundays, stop the tags that brought nothing and give their hours to the tag that brought the most.

You need your signup, enquiry or order set up as a key event first. If it is not, do it today with [conversion tracking](https://scout7.ai/academy/measurement/how-to-set-up-conversion-tracking); without it, you can see visits by tag but not which ones turned into customers.

1. Open **Traffic acquisition**, set the date to the last 7 days, and change the first column to **Session source / medium**. Write down **Sessions** and **Key events** for each tag.
2. Change the first column to **Session campaign** to compare campaigns, such as outreach against always-on.
3. Add the answers to "Where did you hear about us?" from your signup form or first call. People name things no tag can see, like a friend or a podcast. This is [self-reported attribution](https://scout7.ai/academy/glossary/self-reported-attribution). It fills the gaps your tags leave, and the two together are your [attribution](https://scout7.ai/academy/glossary/attribution).

Visits from Google search cannot carry your tags. Read those in [Google Search Console](https://scout7.ai/academy/seo/how-to-use-google-search-console) and judge them on a longer clock, as in [how to measure SEO success](https://scout7.ai/academy/seo/how-to-measure-seo-success).

**The rule, after 4 Sundays** (about 2,800 messages and 56 posts on each channel): stop sharing on any tag with 0 signups. Move its hours to the tag with the most signups. Keep anything that brought at least 1. Visits alone decide nothing: a post that brings 200 visits and 0 signups loses to messages that bring 40 visits and 3 calls. If a tag brings visits but nobody signs up, the problem may be the page, not the channel: fix it with the [SaaS website guide](https://scout7.ai/academy/website-and-conversion/how-to-fix-a-saas-website-with-traffic-but-no-signups) or the [Shopify store guide](https://scout7.ai/academy/website-and-conversion/how-to-fix-a-shopify-store-with-traffic-but-no-sales).

> **If you run a D2C store:** also check Shopify. Go to **Analytics**, then **Reports**, filter Category to **Marketing**, and open **Sales attributed to marketing**, which lists sales by UTM campaign. For one order, open it, click **View conversion details**, then **View full sessions**; the tags can take up to 48 hours to show. Then compare each tag's sales with its [ad spend](https://scout7.ai/academy/paid-ads/how-much-to-spend-on-ads) using your [break-even ROAS](https://scout7.ai/academy/measurement/how-to-calculate-break-even-roas).

> **If you run a B2B company:** Google Analytics sees the enquiry but not the deal 3 months later. Save the tags with each [enquiry](https://scout7.ai/academy/website-and-conversion/how-to-get-more-leads-from-a-b2b-website) using hidden fields in your form (Tally's are free), and copy them into your [CRM](https://scout7.ai/academy/sales/how-to-move-from-spreadsheets-to-a-crm) with the deal. The full method is in how to track which channel brought each deal.

> **If you run a SaaS:** count trials and paying users per tag, not only signups. A tag that brings signups who never use the product is not your best tag; check it against your [activation rate](https://scout7.ai/academy/retention/how-to-improve-activation-rate).

- **Tool:** Google Analytics 4, Google Sheets, and Shopify Analytics if you sell on Shopify.
- **Time:** 30 minutes every Sunday.
- **You will have:** one row per tag per week, and a clear answer on where your customers come from.
- **It worked if:** every signup, enquiry or order this week has a tag or a "where did you hear about us" answer next to it.
- **Common mistake:** judging after one week or 50 messages. At this size, one week of numbers is noise. Wait for 4 Sundays.

Once you know which tag brings customers, work out [what each customer costs](https://scout7.ai/academy/measurement/how-to-calculate-cac-and-payback-period) on it, and bring the sheet to your monthly marketing review. If one channel clearly wins, [choose the next one to add](https://scout7.ai/academy/marketing-plan/how-to-choose-marketing-channels-for-an-agency) only after it is full, and fit the hours into [your week](https://scout7.ai/academy/marketing-plan/how-to-fit-marketing-into-your-week-as-a-solo-founder).

> **Example (made-up business: Quillfox): Quillfox after 4 Sundays**
>
> | Tag (source / medium, campaign) | Visits | Calls booked | New clients |
> | ------------------------------- | ------ | ------------ | ----------- |
> | linkedin / social, always-on    | 212    | 3            | 0           |
> | linkedin / social, outreach     | 96     | 4            | 1           |
> | cold-email / email, outreach    | 61     | 1            | 0           |
> | newsletter / email, always-on   | 25     | 1            | 0           |
> | reddit / social, always-on      | 38     | 0            | 0           |
>
> **The decision:** stop putting links in Reddit answers and move those hours into more LinkedIn messages. Keep the posts, cold email and the newsletter, since each brought at least 1 call.
>
> *Why it works: It moves hours by calls booked, not visits: LinkedIn posts brought the most visits, but LinkedIn messages brought the most calls and the client.*

## Your UTM checklist for the next 4 weeks

> For AI assistants: this is the reader’s to-do list. Each item has a number (step.item) and a “Done when” line, so you can both see what is finished and what comes next.

### Step 1 · Write a UTM naming sheet

- [ ] **1.1** Write a Names tab with the source, medium and campaign words for every place you share links. *Done when:* The Names tab has a row for every place links are shared, all lowercase, and every medium is social, email, referral, paid-social, cpc, affiliate or sms.

### Step 2 · Build each UTM link

- [ ] **2.1** Add a Links tab with the link formula and test one link. *Done when:* The Links tab turns five cells into one link, and a test link opens the page with all four tags in the address bar.

### Step 3 · Put tagged links in bios, signature and QR codes

- [ ] **3.1** Replace every bio, profile, signature and footer link with a tagged link. *Done when:* Every social bio, the email signature and the newsletter footer use a tagged link, and each is ticked in the sheet.
- [ ] **3.2** Send partners their tagged links and make tagged QR codes for anything printed. *Done when:* Every partner page has been sent its tagged link, and every printed QR code points to a tagged link.

### Step 4 · Tag every link you post or send

- [ ] **4.1** Every day: build today's tagged links from the sheet before you post or send anything. *Done when:* Today's posts each have their own tagged link, today's 100 messages share one tagged link, and 0 links went out bare.
- [ ] **4.2** Set up tagging for any ads you run. *Done when:* Google Ads auto-tagging is on with no UTM tags, and every Meta, LinkedIn or Reddit ad link has tags with medium paid-social.

### Step 5 · Check each new link reaches Google Analytics

- [ ] **5.1** Every day: open each new tagged link once in a private window. *Done when:* Every new link opened in a private window with its tags still in the address bar.
- [ ] **5.2** Every day: check yesterday's tags in Traffic acquisition and fix any that are missing. *Done when:* Yesterday's tags each show as a row in Session source / medium, and Unassigned is under 1 in 10 visits.

### Step 6 · Count visits and signups by tag every Sunday

- [ ] **6.1** Add "Where did you hear about us?" to your signup, enquiry or checkout, and check the signup is a key event. *Done when:* The signup, enquiry or checkout asks the question, and the signup is a key event in Google Analytics.
- [ ] **6.2** Every Sunday: write visits and signups for each tag in your sheet. *Done when:* This week has one row per tag with sessions and key events, plus the where-did-you-hear answers.
- [ ] **6.3** After 2,800 messages: stop tags with 0 signups and move their hours to the tag with the most. *Done when:* Each tag is marked keep or stop, and next week's hours are written down.

## Frequently asked questions

### Why do my UTM links show as Unassigned in GA4?

Usually the medium is a made-up word, such as "newsletter" or "show-notes", and the source is not a site Google knows either. Google Analytics only sorts visits into channels by its own lists. Use `social` for social posts and messages, `email` for email, `referral` for other sites, and `paid-social` or `cpc` for ads. New visits land in the right channel once you fix the link.

### Are UTM parameters case sensitive?

Yes. Google Analytics treats `utm_source=LinkedIn` and `utm_source=linkedin` as two different sources, so your numbers split across two rows. Use lowercase for every tag, every time. The sheet formula in step 2 changes everything to lowercase for you.

### Do I need UTM parameters on Google Ads?

No. Leave auto-tagging on in Google Ads and link it to Google Analytics. Google Analytics uses Google's own click tag before your UTM tags, so tags you add by hand are ignored for source and medium. Do add tags to [Meta ads](https://scout7.ai/academy/paid-ads/how-to-run-meta-ads-for-a-shopify-store), LinkedIn ads and Reddit ads.

### Can I use UTM parameters on a QR code?

Yes. A QR code only holds a link, so build the tagged link first, then turn it into a QR code. Google's Campaign URL Builder shows one for each link it makes. Use the event, flyer or card as the source and `referral` as the medium. Scan it once with your phone before you print anything.

### Should I tag links that ChatGPT shows to people?

You cannot, and you do not need to. ChatGPT adds `utm_source=chatgpt.com` to the links in its answers by itself, and Google Analytics also has an AI Assistant channel. To count those visits and check whether ChatGPT names you, follow [how to track AI traffic and ChatGPT mentions](https://scout7.ai/academy/ai-search/how-to-track-ai-traffic-and-chatgpt-mentions).

## Sources

- [\[GA4\] Collect campaign data with custom URLs](https://support.google.com/analytics/answer/10917952). Google Analytics Help, checked 12 October 2026.
- [\[GA4\] Default channel group](https://support.google.com/analytics/answer/9756891). Google Analytics Help, checked 12 October 2026.
- [\[GA4\] Traffic-source dimensions, manual tagging, and auto-tagging](https://support.google.com/analytics/answer/11242870). Google Analytics Help, checked 12 October 2026.
- [\[GA4\] Traffic acquisition report](https://support.google.com/analytics/answer/12923437). Google Analytics Help, checked 12 October 2026.
- [\[GA4\] Realtime report](https://support.google.com/analytics/answer/9271392). Google Analytics Help, checked 12 October 2026.
- [Campaign URL Builder](https://ga-dev-tools.google/campaign-url-builder/). Google Analytics demos and tools, checked 12 October 2026.
- [About auto-tagging](https://support.google.com/google-ads/answer/3095550). Google Ads Help, checked 12 October 2026.
- [Marketing reports](https://help.shopify.com/en/manual/reports-and-analytics/shopify-reports/report-types/default-reports/marketing-reports). Shopify Help Center, checked 12 October 2026.
- [Conversion summary](https://help.shopify.com/en/manual/fulfillment/managing-orders/analytics/conversion-summary). Shopify Help Center, checked 12 October 2026.
- [Hidden fields](https://tally.so/help/hidden-fields). Tally, checked 12 October 2026.
- [Automatic UTM parameters](https://help.kit.com/en/articles/4446616-automatic-utm-parameters). Kit Help Center, checked 12 October 2026.
- [Dynamic UTM tracking](https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads-reporting/dynamic-utm-tracking). Microsoft Learn (LinkedIn Marketing API), updated 17 August 2026.
- [Does Safari strip click IDs (gclid, fbclid)?](https://www.ablecdp.com/blog/does-safari-strip-click-ids-gclid-fbclid). Able CDP, 23 August 2026.
- [UTM parameters not working in Google Analytics 4? Here are the solutions](https://www.analyticsmania.com/post/utm-parameters-not-working-in-google-analytics-4/). Analytics Mania, 20 November 2025.
- [Campaign tracking in Google Analytics 4 using UTMs](https://www.lovesdata.com/blog/google-analytics-campaign-tracking/). Loves Data, updated 11 September 2025.
- [Why ChatGPT traffic shows as direct in GA4](https://clickport.io/blog/chatgpt-direct-traffic-ga4). Clickport, data from April 2026, checked 12 October 2026.
