Lead Source Tracking for Gyms: Find Out Which Ads Make Members

Blog
→
Sean
Flannigan
•
September 30, 2026

Your Google Ads account can tell you what you spent last Tuesday, to the cent. Ask it which of those clicks is now on your mats twice a week, and it has nothing to say.

Lead source tracking closes that gap in your numbers. You record where each lead came from and keep that label on the person all the way to their first payment. Then you compare what each source cost you against the members it actually produced.

If you've never gotten that far, you've got plenty of company. In Gymdesk's 2024 owner survey, we found that three in four gym owners (74.8%) don't know what it costs them to acquire a member.

74.8%
of gym owners don't know what it costs them to acquire a member

Doing everything right doesn't always save you, either. A multi-location owner we spoke with recently had every ad tagged, and still couldn't connect a single campaign to a single paying member. The tags lived in Google's reports, and the member list never saw them.

So you end up with a precise bill and a shrug.

Cost Per Lead Looks Great Until You Count Members

The source that sends you the cheapest leads can be the one that costs you the most per member.

Say you spend $500 a month on Meta ads and $500 on Google Ads. (For context, here's what gyms typically spend on marketing overall.) Meta sends you 50 leads, and Google sends you 20.

On cost per lead, Meta wins easily: you're paying $10 a lead against Google's $25. Your ad dashboard probably stops there, and plenty of budget decisions do too.

Now follow those leads to your front desk. Five of your Google leads sign up. Two of your Meta leads do.

Source
Monthly spend
Leads
Cost per lead
New paying members
Cost per paying member
Meta ads
$500
50
$10
2
$250
Google Ads
$500
20
$25
5
$100

Hypothetical numbers, made up to show the math. Yours will look different.

Same money in. Meta still looks cheaper per lead, and it costs you two and a half times as much per member who pays.

So when you decide where next month's money goes, divide by paying members, source by source.

Cost per lead tells you how cheap it is to get someone to fill out a form. People who fill out forms and never show up are cheap for a reason.

✉ JOIN OUR NEWSLETTER
Get the Good Stuff

We'll keep you in the loop with fresh content, podcasts, how-to guides, tool reviews, and product exclusives.

✓ Free. No spam. Unsubscribe anytime.

Where the Source Gets Lost

You tagged your ads. So why can't you see the source on the lead?

Because the label has to survive a long trip through your systems. It travels from the ad to your website and into a form.

After that, it has to land in your CRM and stay on the person when they buy a membership. Every handoff is a chance to drop it.

1
Ad
You tag the link
2
Website
The tag sits in the web address
3
Form
Has to read the URL
4
CRM
The source lands on the lead
5
Membership
The source stays on the paying member

The tag sits in the web address. UTM tags live at the end of the URL a visitor lands on from your ad. A visitor who clicks over to your schedule or pricing page before filling out a form usually leaves the tags behind, because the new page doesn't carry them. So the form never sees them.

The form doesn't read the URL. Plenty of form and booking tools never look at the web address at all, and yours might be one of them. The lead lands in your inbox with a name and an email and no history.

Some leads never had a URL. Your phone calls, Instagram DMs, and walk-ins don't come with tags. Unless someone on your team writes the source down, it's gone.

And when the source dropdown is long and the phone is ringing, your staff pick "Other."

Names drift. You'll find "Meta," "meta," and "FB" in the same column. That's one source under three names, and your spreadsheet counts them separately.

Your analytics and your CRM never meet. Google Analytics counts visits. Your CRM holds people. Nothing connects a visit in one to a person in the other, so your marketing attribution ends at a report full of traffic and a list full of names with no line between them.

Want to know which of these leaks you have? The nine-question audit below scores your setup and shows where your source drops.

Lead Source Self-Audit

Where Are Your Leads Really Coming From?

Nine quick questions. Find out where the source label falls off between the ad click and a paying member.

How the score works: Yes = 2 points, Sort of = 1, No = 0. Every question counts the same. Your score is the share of possible points you earned, leaving out anything you mark N/A.

80–100%: your source survives the trip. 50–79%: some sources survive and some don't. Under 50%: most leads lose their source on the way in.

Question 1

Your whole team uses one short list of lead sources, spelled the same way every time.

FixPick eight to twelve sources, name each one in lowercase with hyphens (google-ads, meta-ads, referral), and freeze the list. New channels get added on purpose, never typed in freehand.

Question 2

Every link you control (ads, emails, social posts, QR codes) carries utm_source, utm_medium, and utm_campaign.

FixBuild every link with Google's Campaign URL Builder and use the names from your frozen list. The values are case-sensitive, so "meta" and "Meta" end up as separate rows.

Question 3

Each campaign sends people to its own form, so the form itself knows where the lead came from.

FixGive each campaign a dedicated form or landing page. The source rides on the form, so it survives even when a visitor clicks over to your schedule page first.

Question 4

When a lead comes in from your website, their source is saved on the lead itself, not only in your analytics.

FixIf new leads land as a name and an email with no source, your form isn't reading the web address. Give each campaign its own form so the form carries the source for you.

Question 5

Every form, and your front desk, asks "How did you hear about us?" with your source list as the answer options.

FixAsk it everywhere, and keep the answer in its own column next to the tagged source. When the two disagree, keep both. It's often the only place referrals show up.

Question 6

Phone calls, DMs, and walk-ins get logged with a source from your list the same day.

FixThese leads never had a link to tag. Log each one before the end of the day with a source from your list. Wait until Friday and every walk-in "just drove by."

Question 7

When a lead signs up, you can still see their source on their member record.

FixThe label has to stay on the person all the way to their first payment. Every handoff, from form to CRM to membership, is a chance to drop it, so check that the source carries over when a lead signs up.

Question 8

Once a month, you divide what you spent on each source by the new paying members it produced.

FixPull spend per source from each ad platform, count new paying members per source, and divide. Cost per lead can make a channel look cheap. Cost per paying member is the number to budget on, judged over three months, not one.

Question 9

If you run more than one location, every location uses the exact same source names.

FixMake the list identical at every location, spelled exactly the same way. Then the numbers roll up into one view without a monthly cleanup.

–0 of 9 answered

Answer the questions to see your score.

Your fix for each gap is shown under its question above.

Get the fix for every gap

Enter your email to see what to change under each "No" or "Sort of" answer, and to save your filled-in audit as a PDF.

Set Up Lead Source Tracking With a Spreadsheet

If you don't pay for any marketing channel, you can probably stop at a "How did you hear about us?" field and call it done. Spending money on ads? Keep reading.

You can do everything below in a shared spreadsheet. Software can come later.

Freeze a short source list

Pick eight to twelve sources and write them down where your whole team can see them. Use lowercase letters and hyphens, and give each channel exactly one name. Something like this:

  • google-ads
  • meta-ads
  • google-search
  • google-maps
  • referral
  • walk-in
  • instagram-organic
  • event

Then freeze it. Nobody on your team adds a source on the fly, and nobody types one in freehand. When a genuinely new channel shows up, you add it on purpose and tell the team.

Tag every link you control

UTM tags are short labels you add to the end of a link so your analytics can tell where a visit came from. (I work in marketing, so I'll own this acronym. It stands for Urchin Tracking Module, which helps nobody.)

Google's UTM guide says to always use three of them: utm_source, utm_medium, and utm_campaign. A link in a Meta ad for a kids' trial might end like this:

?utm_source=meta&utm_medium=paid-social&utm_campaign=fall-kids-trial

Build your links with Google's Campaign URL Builder so you don't fat-finger the syntax. The same guide notes that the values are case-sensitive, so "Meta" and "meta" land as separate rows, and a missing value shows up as "(not set)." Your frozen list takes care of both.

Google Ads handles part of this for you. Auto-tagging adds a click ID (called a GCLID) to the link someone clicks from your ad. It's on by default for new accounts, and Google Analytics 4 (GA4) uses it ahead of any UTM tracking you set up by hand.

So your ad reports usually know where the click came from. The gap sits on the CRM side, where the lead record lives.

Give each campaign its own form

This step fixes your URL problem.

Your fall kids' trial ad could send people to a landing page with a form built only for that campaign. Every lead from that form came from that campaign. The form itself carries the source, so it stays put no matter where the visitor clicks first.

Do the same for your Google Ads landing page, a QR code on your flyer, or a Meta lead form. With a form for every campaign, you never have to guess.

Ask how they heard about you

Put "How did you hear about us?" on every form, and ask it at the front desk too. Use your frozen list as the answer options.

Sometimes the answer won't match your tag. Keep both. Give your spreadsheet two columns—tagged source and self-reported source—and fill in whichever ones you have.

The tag might say google-ads while the person says their coworker trains with you, and both are probably true. Google got the click. The coworker got the decision.

Treat the answer as a second opinion. It won't be perfect (people forget, and some pick whatever's first on the list), but it catches referrals your tags will never see.

PRO TIP:

Keep two source columns in your sheet—tagged source and self-reported source. When they disagree, don't pick a winner. Google got the click, and the coworker got the decision.

Log calls and walk-ins the same day

Anyone who calls or walks in goes into your spreadsheet before the end of the day, with a source from the list. Wait until Friday and every walk-in "just drove by."

Do the division once a month

At the end of each month, pull your spend per source from each ad platform. Then count how many new paying members you got from each source. Divide the first number by the second.

What you get is your cost to acquire a member, one source at a time. Our vital metrics guide calls this CAC and covers the full definition, including costs beyond ads.

Your sheet needs four columns: source, spend, new paying members, and cost per paying member. Your referrals and other free sources have no spend, so leave them at zero and just watch the member count.

THE MONTHLY MATH

Spend per source ÷ new paying members from that source = your cost per paying member.

That's the number to move budget on. Cost per lead only tells you how cheap it is to get someone to fill out a form.

Count your members by the month they started paying, and don't stress about the lag between a click and a first payment. Over a few months, it evens out.

What to Do With the Numbers

Did Meta bring you two members in October and none in November? That's normal wobble for a small gym, and it's too little data to act on.

Look at three months together before you judge a channel, and longer if your numbers are small. When one of your sources keeps coming up expensive, move money away from it in steps. Cut it by a quarter, watch it for a couple of months, and then decide on the rest.

"Expensive" depends on your prices. The ad break-even calculator works out the most your gym can afford to pay for a new member, so you have a line to measure each source against.

Wondering where that money should go next? Our martial arts advertising guide walks through the channels.

Watch for a source that books you plenty of trials and converts few of them. That can be an audience problem, or it can be a trial problem. If it's your trial, start with turning trials into memberships.

And if leads from a good source sit uncalled for two days, check your follow-up before you blame the channel. Our speed to lead guide covers that half of the problem.

KEY TAKEAWAY:

Judge a channel on at least three months of data, and move money away from an expensive source in steps. Before you blame a source, check your trial and your follow-up—either one can make a good channel look bad.

Where Gymdesk Fits

A spreadsheet works fine. You might just get tired of updating it by hand.

A CRM built for gyms can hold most of this for you. With lead management in Gymdesk, each lead form sets its own source. That's the one-form-per-campaign step, already done for you.

You can embed those forms on the website you already have. If that site isn't bringing in many leads yet, start with our tips on driving more website leads.

Non-members who book a trial or a session become leads automatically, with the source "Booking." Calls and walk-ins go in by hand, with a source picked from your gym's own list.

From there, you can see each step from lead to member, broken out by source: Leads → Booked → Attended → Trials → Paying → Canceled. A source report shows the conversion rate for each source, so you know which channels turn into members and which ones stall early.

What Gymdesk won't do is pull in your ad spend. That number lives in Google and Meta, and you still do the division yourself. Gymdesk gives you the half that's hard to get—paying members per source.

Running More Than One Location

A lot of your marketing can stay local to each gym (here's more on marketing multiple gym locations). Your source list is the exception. Keep it identical, spelled exactly the same way at every location.

If one gym logs "meta-ads" and another logs "facebook," you can't add them up without cleaning the data by hand every month. With matching names, the numbers roll up into one view, and you can still compare locations side by side.

The Short Version

Your ad platforms will keep billing you to the cent. What you've been missing is a source on every person who signs up and a monthly count of which sources turn into paying members.

Get that for a few months, and deciding where your money goes gets a lot easier.

Odds are at least one of your ads has been getting credit for members it never sent.

FOR GYM OWNERS

See which sources turn into paying members

Your ad platforms already know what you spent. Gymdesk fills in the half that's hard to get: each lead form sets its own source, and a source report shows which channels turn into members and which ones stall early.

See lead management

Table of Contents

Gym management software that frees up your time and helps you grow.

Simplified billing, enrollment, student management, and marketing features that help you grow your gym or martial arts school.

FAQ

Lead Source Tracking FAQs

Here are quick answers to the questions you're most likely to have about tracking where your leads come from.

What is lead source tracking?
Lead source tracking means recording where each new lead came from (an ad, a search, a referral, a walk-in). Then you keep that source attached to the person until they become a paying member or drop off. It lets you compare what each marketing channel costs against the members it produces.
What are examples of lead sources for a gym?
Common gym lead sources include Google Ads, Meta ads, Google search, Google Maps, member referrals, walk-ins, phone calls, organic social media, community events, and flyers. Keep your list short, and name each source the same way every time.
What's the difference between a lead source and a UTM?
A UTM is a tag on a link that tells your analytics where a website visit came from. A lead source is a label on the person in your CRM. UTM tags can help fill in the lead source, but plenty of your leads (calls, walk-ins, DMs) never click a tagged link at all.
Should I trust "How did you hear about us?" answers?
Trust them as a second opinion. People forget, and some pick the first option on the list, so use the answer alongside your tags and form sources. Pay attention when the two disagree, because self-reported answers are often the only place your referrals show up.
How long before I judge a marketing channel?
Give most channels at least three months of data before you cut or boost them. If your gym is small, your numbers will be small, and a single month can swing a lot. When you do make a change, shift budget gradually and keep tracking.
Sean
Flannigan
Content Marketing Lead @ Gymdesk

Sean has spent the last decade creating content that helps businesses—small and not so small—grow smarter to allow operators to do more of what they love. You know, the fun stuff.

From shipping and international logistics to web development and marketing, he's done the work (not just the words) to scale retail and service businesses efficiently.

You can find his work at Sendle, Shogun, The Retail Exec, Gymdesk, and more.

sean-flannigan

Related Articles

No items found.