Why UTM tracking matters for coaches
You're running ads, posting on social media, sending email newsletters, and maybe even partnering with other creators — but do you actually know which of those channels is filling your coaching roster? Without UTM parameters, every client who lands on your booking page or sales funnel looks the same inside your analytics. You can't tell whether your Instagram Reels or your Google Ads drove the conversion, so you end up guessing where to spend your next marketing dollar.
UTM tracking solves this. By appending a short string of parameters to any URL you share, you can follow a potential client from their very first click all the way through to a paid enrollment — and see exactly which campaign, channel, and piece of content made it happen. This guide walks you through how UTM parameters work, how to build them correctly, and how to connect the data inside Coachful so you can make smarter marketing decisions starting today.
TL;DR
- UTM parameters are tags you add to your Coachful landing page or funnel URLs to track traffic sources.
- Five standard parameters exist:
utm_source,utm_medium,utm_campaign,utm_term, andutm_content. - Build your tagged URLs with Google's Campaign URL Builder, then paste them into your ads, emails, or social bios.
- Connect Google Analytics 4 (or any analytics tool) to your Coachful custom domain to see which campaigns convert to bookings and enrollments.
- Consistent naming conventions are the single biggest factor that separates usable data from a mess.
What UTM parameters are (and what they track)
UTM stands for Urchin Tracking Module — a naming convention inherited from Google Analytics' predecessor. Each parameter is a key-value pair appended to a URL after a question mark. When someone clicks a UTM-tagged link, their browser sends those values to whatever analytics platform you're using, and you can then filter, segment, and compare your traffic by any of them.
Here's a quick breakdown of each parameter and when to use it:
- utm_source — Where the traffic originates. Examples:
instagram,google,newsletter,podcast. - utm_medium — The marketing channel or mechanism. Examples:
paid_social,cpc,email,organic_social,referral. - utm_campaign — The specific campaign or promotion. Examples:
q3_launch_2024,summer_fitness_offer,webinar_followup. - utm_term — (Optional) The keyword that triggered a paid search ad. Examples:
life+coaching+online,executive+coach+nyc. - utm_content — (Optional) Used for A/B testing creative or distinguishing two links in the same email. Examples:
blue_cta_button,hero_image_link,footer_link.
A fully tagged URL pointing to your Coachful program landing page might look like this:
https://yourname.coachful.co/programs/12-week-fitness?utm_source=instagram&utm_medium=paid_social&utm_campaign=q3_launch_2024&utm_content=reel_v2
Every time someone clicks that link, your analytics tool logs all four values and ties them to whatever goal or conversion that visitor completes — whether that's booking a discovery call, signing up for a lead magnet, or enrolling in your program.
Setting up UTM tracking on your Coachful URLs
Coachful pages — your website, landing pages, lead-magnet funnels, booking pages, and program enrollment pages — are all standard URLs that accept UTM parameters out of the box. You don't need to configure anything inside Coachful to receive UTM tags. What you do need is an analytics layer to read those tags and report on them.
Step 1 — Connect Google Analytics 4 to your Coachful site
- In your Coachful dashboard, go to Settings → Website → Custom Code (or Integrations, depending on your plan).
- Paste your GA4 measurement ID snippet (e.g.,
G-XXXXXXXXXX) into the Head Scripts field. Coachful injects this code site-wide, including on all landing pages, funnel steps, and booking pages. - Save changes. Within 24-48 hours, GA4 will begin attributing sessions to the correct UTM source/medium/campaign automatically.
- If you're on a Coachful custom domain (e.g.,
www.yourcoachingbrand.com), confirm the domain is verified in your GA4 property under Admin → Data Streams to avoid cross-domain attribution issues.
Step 2 — Build your tagged URLs
- Open Google's Campaign URL Builder.
- Paste the destination URL — for example, your Coachful booking page (
yourname.coachful.co/book) or a specific program enrollment page. - Fill in at minimum
utm_source,utm_medium, andutm_campaign. Addutm_contentwhen you're testing multiple creatives. - Copy the generated URL and place it wherever you'd normally share a plain link — in an ad, an email CTA button, a social bio, or a podcast show notes page.
Step 3 — Set up conversion events in GA4
Traffic data alone won't tell you what converts. You need to mark specific user actions as "conversions" in GA4 so you can see which UTM campaigns are actually driving revenue, not just clicks.
- Identify the key actions: booking confirmation page load, program enrollment success page, lead magnet opt-in confirmation.
- In GA4, go to Configure → Events and mark the relevant page-view events as conversions (e.g., when
page_locationcontains/booking/confirmed). - Use GA4's Acquisition → Traffic Acquisition report, filtered by "Session campaign", to see which UTM campaigns drive the most completed bookings or enrollments.
Make it easier with Coachful funnels. Coachful's built-in funnel and landing page builder gives you dedicated URLs for each step of your coaching offer — discovery call booking, program enrollment, lead magnet delivery — making it straightforward to create clean, trackable UTM links for every stage of your funnel. Start your free trial to see it in action.
Building a naming convention that doesn't break your reports
This is where most coaches go wrong. They tag some links with Instagram, others with instagram, and others with IG — and now GA4 treats those as three different traffic sources. Your data is fragmented and useless for comparison.
Adopt a naming convention on day one and document it somewhere your whole team (or your virtual assistant) can see it. Here are the rules that work best in practice:
- Always use lowercase. UTM values are case-sensitive.
Emailandemailare different sources in GA4. - Replace spaces with underscores or hyphens. Never use spaces; they encode as
%20and look messy. Stick to one style:paid_socialnotpaid-socialin the same property. - Be specific in campaigns.
jan_2025_webinaris far more useful six months from now thanwebinar. - Keep a spreadsheet. One tab per channel, logging every tagged URL you've ever published. Include the destination, all five UTM values, the date, and the platform where it was posted. This becomes invaluable for audits.
Example naming convention for a health coach
- Email newsletter →
utm_source=newsletter&utm_medium=email&utm_campaign=may_2025_body_reset - Instagram paid ad →
utm_source=instagram&utm_medium=paid_social&utm_campaign=may_2025_body_reset&utm_content=carousel_v1 - Podcast guest spot →
utm_source=healthyminds_podcast&utm_medium=podcast&utm_campaign=may_2025_body_reset - Google Ads →
utm_source=google&utm_medium=cpc&utm_campaign=may_2025_body_reset&utm_term=online+health+coach
With this structure, you can filter GA4 by utm_campaign=may_2025_body_reset and instantly see which channel drove the most bookings — apples to apples.
Tracking UTM data through Coachful's booking and enrollment flow
One subtlety specific to coaching platforms: the conversion doesn't always happen on the first page a visitor lands on. A prospect might click your Instagram ad, land on your Coachful landing page, read your offer, and then click through to the booking page — a multi-step journey. Here's how to make sure UTM data doesn't get lost along the way.
Keep clients on your Coachful subdomain or custom domain
If your landing page and your booking page share the same root domain (e.g., both live on yourname.coachful.co or both on your custom domain), GA4 treats the entire session as one continuous visit. The UTM source from the original click is preserved throughout, and the conversion event on the booking confirmation page is correctly attributed to that campaign.
Problems arise when you send paid traffic to an external landing page hosted on a different domain and then redirect to Coachful. In that case, set up GA4 cross-domain measurement to link both domains so the session isn't broken.
Use Coachful's intake call flow for discovery sessions
Coachful's intake call booking is a separate flow from your main calendar availability. If you're driving cold traffic to a free discovery call, create a dedicated landing page inside Coachful's website builder, tag your links with utm_medium=cpc or utm_medium=organic_social, and point the CTA button directly to your intake booking URL. Because it's all on the same domain, the session stays intact and GA4 attributes the completed booking to the correct campaign.
Pro tips for advanced UTM tracking
Pro tip: Useutm_contentaggressively when running split tests on your Coachful landing pages. Tag two versions of your ad creative withutm_content=headline_aandutm_content=headline_b, point both to the same landing page, and let GA4 tell you which creative produces more booking confirmations. No separate A/B testing tool needed.
- Shorten tagged URLs for social. Raw UTM URLs are long and ugly. Use a link shortener (Bitly, your own short domain) for anything displayed publicly — Instagram bios, Twitter posts. The redirect preserves UTM parameters perfectly.
- Tag your email signature links. Many coaches forget that their email signature is a traffic source. Add
utm_source=gmail_signature&utm_medium=emailand you'll discover how many clients actually click through from your day-to-day correspondence. - Tag affiliate or referral links separately. If another coach or creator is sending you referrals, give them a unique
utm_source(e.g.,utm_source=partner_janedoe) so you know exactly how much business each relationship is worth. - Ask Michelle. Inside your Coachful dashboard, you can ask Michelle, the built-in AI assistant, for help generating UTM-tagged URLs or interpreting which of your pages gets the most traffic — a handy shortcut when you're in a hurry.
Troubleshooting common UTM tracking problems
My UTM data shows as "(not set)" in GA4
This usually means the GA4 snippet isn't firing on the destination page, or the tagged link was opened in a context that strips parameters (some email clients or mobile apps do this). Double-check that your GA4 measurement ID is correctly installed in Coachful's Settings → Website → Custom Code → Head Scripts. Also verify the tagged URL still contains the parameters after any redirects — use a tool like Redirect Checker to trace the full redirect chain.
My conversions are attributed to "(direct) / (none)"
Direct traffic typically means GA4 lost the referral context. Common causes: the user bookmarked the page and returned later, a link shortener stripped the UTM parameters (test your shortener to confirm it passes them through), or there was a domain change mid-session. Use GA4's DebugView to watch a live session and confirm parameters are arriving correctly.
I have duplicate source names in my reports (e.g., "Instagram" and "instagram")
This is a naming convention failure. Go back to your UTM spreadsheet, identify every variation, and standardize going forward. GA4 lets you create channel grouping rules under Admin → Data Settings → Channel Groups to retroactively merge Instagram and instagram into one group for reporting purposes — a useful fix while you clean up the underlying data.
Bookings are showing zero conversions despite traffic
Check that your GA4 conversion event is correctly configured. The most reliable method on Coachful is to fire a conversion event when a specific "thank you" or "booking confirmed" page loads. Go into Coachful's booking settings and ensure there is a dedicated confirmation URL (e.g., /booking/confirmed) — some setups show a modal instead of a new page, which requires an event-based trigger rather than a pageview trigger in GA4.
UTM parameters disappear after clicking through my Coachful funnel steps
If your funnel has multiple steps on different sub-pages and you notice UTM values vanishing, the likely cause is that an internal link inside the funnel is hard-coded without parameters. Since GA4 preserves the original session's UTM attribution as long as the user stays on the same domain without triggering a new session, this is usually fine — but confirm by checking the Session source / medium dimension in GA4, not the Event source / medium, which can show "(direct)" on later pages even when the session attribution is correct.
Ready to turn your marketing data into more coaching clients?
UTM tracking transforms your marketing from a leap of faith into a feedback loop. When you know that your podcast guest appearances generate three times more enrollments than your paid ads — at a fraction of the cost — you can reallocate your time and budget accordingly. When you know a specific email subject line drove 14 booking confirmations last month, you write more emails like it. The data is only as good as your setup, and your setup is only as good as the platform you build on.
Coachful gives you clean, trackable URLs for every stage of your coaching business — landing pages, funnels, booking flows, program enrollment, lead magnets — all under one domain, making UTM attribution dramatically simpler than stitching together five different tools. Start your free trial and build a marketing engine you can actually measure.