Website DesignUI/UX DesignSEO & ContentBrand IdentityLogo DesignGraphic DesignGoogle AdsMeta AdsWordPress Dev
About UsProcessContactGet a Custom Quote →
Working time: Monday to Friday 9 AM – 5 PM
Call for free consultation: +919729712388
9 years · 65+ SMBs shipped 216 keywords on page 1 of Google 96% retention at 18mo+ US · UK · CA · IL

How to Track Medspa Campaigns in Google Analytics 4

How to Track Medspa Campaigns in Google Analytics 4

How to Track Medspa Campaigns in Google Analytics 4

How to Track Medspa Campaigns in Google Analytics 4

I have audited enough medspa marketing accounts to know that the majority of practices running paid ads have GA4 installed but not configured for campaign tracking. The snippet fires, pageviews record, and that is where setup stops. There are no conversion events. UTMs are inconsistent. The reports are full of noise and short on answers.

This guide walks through the specific configuration steps that turn a default GA4 property into a campaign tracking system that answers the question every medspa owner actually needs answered: which campaigns are producing booked appointments?

Confirm Your GA4 Property Is Set Up Correctly

Before worrying about campaigns, verify the foundation is solid. In GA4, open Admin and check three things:

Data streams: You should have one web data stream for your medspa website. Confirm the measurement ID (G-XXXXXXXXXX) matches what is installed on your site — either via Google Tag Manager or directly in the site code.

Enhanced measurement: Within the web data stream settings, enable enhanced measurement. This automatically tracks scroll depth, outbound link clicks, video plays, and file downloads without requiring custom event code. For medspas, the outbound click tracking is valuable if your booking platform lives on a subdomain or external URL.

Google Signals: Enable Google Signals under Admin > Data Settings. This improves demographic reporting and allows remarketing audiences to be shared with Google Ads.

Once the property is verified, move to campaign-specific configuration.

Setting Up Conversion Events for a Medspa

GA4 records everything as an event by default. Converting a standard event into a “conversion” tells GA4 this event represents a meaningful patient action. Without conversions configured, you have traffic data with no outcome data — you can see campaigns driving visits but cannot see which campaigns drove the actions that matter.

Here are the est. 4-5 events every medspa should mark as conversions:

1. Booking Page Visit

If your booking system lives at a unique URL (e.g., /book-appointment/ or a subdomain), create a conversion from the page_view event filtered to that URL. In GA4, go to Configure > Events, click “Create event,” name it booking_page_visit, and set the condition: page_location contains /book-appointment.

Then go to Configure > Conversions and mark booking_page_visit as a conversion.

2. Consult Form Submission

If your consultation request form triggers a thank-you page, create a conversion based on the thank-you URL: page_location contains /thank-you or /consultation-confirmed. Name it consult_form_submit.

If your form does not redirect to a thank-you page, you need either a Google Tag Manager trigger on the form submit button or a developer to push a custom GA4 event on successful submission. The redirect method is simpler — I recommend adding thank-you pages to all medspa forms.

3. Phone Call Click

Mobile users tap phone numbers directly from search results and your website. GA4 enhanced measurement tracks outbound clicks, but phone tel: links need a specific setup. In Google Tag Manager, create a trigger for link clicks where the Click URL contains tel:. Fire a GA4 event named phone_call_click and mark it as a conversion in GA4.

This is one of the highest-value conversions for medspas — patients who call are typically further along in the decision process than patients who fill out a form.

4. Treatment Page View (High-Intent)

Create a conversion for visits to your highest-intent treatment pages: Botox, filler, laser resurfacing, body contouring. Name it treatment_page_view and set the condition to trigger on any URL containing /botox, /filler, or other treatment slugs. This is a softer conversion but useful for top-of-funnel campaign comparison.

5. Chat or Virtual Consult Start

If your medspa uses a chat widget or virtual consult tool, configure a conversion for the start event. Most chat platforms offer a GA4 integration or a JavaScript callback you can fire through GTM.

Reading the Traffic Acquisition Report for Campaign Data

In GA4, navigate to Reports > Acquisition > Traffic acquisition. This report breaks sessions by the first source/medium that brought the visitor. Change the primary dimension to “Session source / medium” to see UTM data.

The columns you care most about for medspa campaign evaluation:

  • Sessions — volume of visits from each source/medium
  • Engaged sessions — sessions lasting more than 10 seconds or viewing more than one page (filters out bounces)
  • Engagement rate — engaged sessions divided by total sessions; a low rate on paid traffic warrants landing page review
  • Conversions — total conversion events from each source/medium
  • Session conversion rate — conversions divided by sessions; this is your efficiency metric by channel

Sort by conversions descending to immediately identify your top-performing campaigns. If google / cpc has est. 200 sessions and est. 18 conversions while facebook / paid_social has est. 350 sessions and est. 6 conversions, you have a clear signal about where to shift budget.

Use our UTM builder to ensure every campaign link feeds clean data into this report.

Building a UTM-Based Custom Report in GA4

The default Traffic Acquisition report shows top-level source/medium data. For campaign-level detail, build a custom Exploration report:

  1. In GA4, click Explore in the left navigation
  2. Start a blank exploration
  3. Under Dimensions, add: Session campaign, Session source, Session medium, Landing page
  4. Under Metrics, add: Sessions, Engaged sessions, Conversions, Session conversion rate
  5. Drag Session campaign into the Rows section
  6. Drag your chosen metrics into Values
  7. Add a filter: Session campaign does not contain “(not set)”

This gives you a campaign-level breakdown showing which specific promotions — your Botox spring promo, membership launch, new patient offer — drove the most conversions. You can pivot to see source/medium within each campaign. This report is the central view I use when reviewing campaign performance with medspa clients.

You can run a medspa marketing audit to get a professional review of your current GA4 setup and campaign tracking gaps before building these reports.

Calculating Cost Per Appointment From GA4 Data

GA4 does not pull ad spend automatically unless you connect Google Ads (covered in the separate medspa marketing guide on Google Ads integration). For a manual cost-per-appointment calculation:

Formula: Total campaign spend ÷ Total conversions from that campaign in GA4 = Cost per conversion

Example: You spent est. $1,200 on a Meta campaign in April. GA4 shows the botox-spring-2026 / facebook / paid_social campaign produced est. 14 consult_form_submit conversions. Cost per form submission: est. $85.71.

That number only becomes meaningful when you know your close rate. If est. 40% of form submissions book, your cost per booked appointment is est. $214. If your average Botox appointment generates est. $450 in revenue and most patients return 3-4 times per year, a est. $214 acquisition cost has a positive return.

Pull this data by exporting your GA4 custom report to a spreadsheet. Add a column for ad spend per campaign and build the calculation once — then update it monthly. This is the core of a performance-driven medspa marketing review.

Common Campaign Tracking Problems and Fixes

Most Traffic Shows as “direct / none”

This usually means UTMs are missing on links, or your booking platform strips UTM parameters during a redirect. Check your highest-volume campaigns and confirm every external link is tagged. Use the UTM builder to audit and rebuild any untagged links.

Zero Conversions Recorded Despite Form Submissions

Either the conversion event is not marked in GA4, or the thank-you page URL condition is wrong. Go to Configure > Conversions, verify the event name appears, and test by submitting the form yourself and checking the Realtime report for the event firing.

Duplicate Conversion Counts

If a patient visits the thank-you page more than once (e.g., sharing the URL or pressing back), the conversion event fires again. Use GTM to fire the event only on the first page load, not subsequent visits. A session-scoped trigger resolves most duplicate counting issues.

What to Do Next

Once campaign tracking is producing clean data, the next step is reviewing it on a regular schedule. I recommend a monthly session reviewing the Traffic Acquisition and custom Exploration reports against ad spend for each active campaign. If you want help setting up your GA4 property, conversion events, and campaign UTM structure from scratch, a free consultation is the fastest path forward — I can identify the gaps in a single working session.

Frequently asked questions

Do I need Google Tag Manager to track medspa campaigns in GA4?

Not always. Basic UTM tracking and enhanced measurement events work with the native GA4 snippet. GTM becomes necessary when you need custom events like phone call clicks or chat widget interactions that require JavaScript triggers.

How long does it take for UTM campaign data to appear in GA4?

Standard reports update within est. 24-48 hours. The Realtime report shows UTM data immediately — use it to verify a new tagged link is firing correctly before a campaign goes live.

Can I track campaign performance for patients who book by phone instead of online?

Yes, with call tracking software like CallRail. Assign dynamic phone numbers per campaign source and feed call conversion data back into GA4 as a custom event via the CallRail GA4 integration.

What is a good session conversion rate for a medspa campaign?

For paid campaigns driving to a specific treatment landing page, est. 3-6% is a reasonable benchmark for consultation form submissions. Highly targeted campaigns with strong offers can reach est. 8-12%. Brand awareness campaigns will naturally be lower.

How do I know if my GA4 property is tracking the right website?

Install the GA4 Debugger Chrome extension, visit your website, and confirm the measurement ID in the debug events matches the ID in your GA4 property settings under Admin > Data Streams.

Can I import Google Ads cost data into GA4 automatically?

Yes. Linking your Google Ads account to GA4 under Admin > Google Ads Links imports cost, clicks, and impression data. This enables cost-per-conversion reporting directly in GA4 without manual spreadsheet calculations.

What if my medspa uses a third-party booking platform like Mindbody or Vagaro?

Tag the link to the booking platform with UTMs. GA4 will record the session up to the point of the external redirect. For conversion tracking inside the booking platform itself, check whether your platform offers a GA4 integration or pixel option.

Should I create a separate GA4 property for each medspa location?

For a single-brand multi-location medspa, one GA4 property with location as a custom dimension is typically more useful than separate properties — it allows cross-location campaign comparison. Separate properties are better if locations operate under different brands.

How do I exclude my own staff visits from GA4 data?

In GA4 Admin > Data Filters, create an Internal Traffic filter using your office IP address. Set it to active to exclude those sessions from all reports.

Is there a way to see which campaign led to a specific patient booking?

GA4 reports aggregate data and does not show individual user-level attribution by default due to privacy rules. You can get closer with User Explorer reports (anonymized) or by integrating GA4 with a CRM that captures the UTM source at lead submission.

Not sure where to start?

I review your marketing setup in 30 minutes and tell you exactly what to fix. No pitch.

Free. 30 minutes. No pitch.

Or call/WhatsApp: +91 97297 12388

contact

Feel Free to Write Our Tecnology Experts

    Free 30-min SEO audit3 prioritized wins. No pitch.
    Book →