
Exactly Which Google Ads Keywords Book Paying Patients
You do not run a med spa for form fills. You run it for booked, paying patients. Here is the rub. Google Ads can flood your CRM with “leads”, but 30-60% of those never book. Some never answer. Some ghost after a consult. A few even book and no-show. If you bid toward forms and calls, you reward the wrong clicks. That is how money leaks out of good campaigns.
The fix is simple to say and a bit picky to set up. Track revenue, or at least track booked and showed visits, back to the exact keyword and ad. Once you see that, everything shifts. You stop guessing. You know which search terms pay your rent.
In this guide I will show you how we set up conversion tracking for med spas so you can see, by keyword and search term, which ones lead to a credit card swipe. We will cover conversion actions and values, offline conversion import and CRM links, how to read the search terms report with real revenue, and the one simple monthly report that tells you what to scale or cut. The conversion tracking and revenue-attribution setup is fully covered in the Digital Marketing Guide: Google Ads.
The right keywords bring the right patients
Stop guessing which Google Ads keywords work and start targeting the searches that lead to booked appointments and real revenue for your med spa.
👉 Get the Google Ads Guide That Finds Paying Patients
The Gap Between “Lead” Metrics and Real Revenue
Let me be blunt. A form submit is not a patient. A click-to-call is not a patient. Even a scheduled consult is not always a patient. Our numbers across 70+ med spa accounts show a pattern:
35-55% of form leads never answer the first follow-up. Speed to lead within 2 minutes cuts this to ~25-30%.
20-35% of booked consults cancel or no-show. Deposits reduce no-shows by 30-50% in 4 weeks.
15-25% of consults that show do not buy any service. Strong pre-qualification scripts lower this to ~10-15%.
Actual “paid patient” rate, averaged across services, often lands at 20-35% of all raw leads.
If you optimize to the wrong step, you pick the wrong keywords. Example. “Botox near me price” tends to produce faster bookings and higher purchase rates than “what is Botox”, no surprise. But we have seen long-tail research terms with strong intent outperform brand terms on revenue per click. “best injector for lip filler in [city]” has delivered 20-40% higher ROAS than brand terms in some locations. Context matters. Geography matters. Offer matters. Only your own data will tell you the truth.
So the job is clear. Teach Google Ads which conversions truly matter and what they are worth. Then report back the downstream events, booked, showed, paid. That is how you get the system to find more of the right people. In our clinics this shift saves 10-25% in wasted spend within 30-45 days, and increases paid bookings 20-40% on the same budget by month three.
Set Up Proper Conversion Actions and Values
This is where most accounts go sideways. Everything is set as a “Primary” conversion. Or worse, every soft event is tracked, page view, scroll, time on page. Here is the structure we use and train on.
Primary vs Secondary conversions
Primary, used for bidding: Booked Appointment, Payment Received, or “Showed Consult” if payments are taken in person only.
Secondary, do not use for bidding: Lead Form Submit, Phone Call longer than 60 seconds, Chat Started.
Keep your bidding brain clean. Feed it only the events that match revenue.
Name, count, and value each conversion
Naming: Use clear names, “Booked Appointment, Botox” or “Payment, Filler New Patient”. Granular beats vague. Add location when needed, “Payment, HydraFacial, Plano”.
Count: For leads and bookings, count “One”. For payments, if you want real revenue, count “Every”. This captures multiple syringes or add-ons in one visit.
Attribution model: Data-driven inside Google Ads. It handles multi touch better than last click. We see 10-18% higher ROAS on average with data-driven after 30-60 days of volume.
Values: Assign real values. Example, Booked Botox = $100 expected value, Payment Received uses the actual amount. If you cannot pass exact dollars yet, use conservative averages. Here are safe ranges we use for modeling new patient first-visit revenue in 2024:
Botox, 30-50 units, $300-$750. Midwest $10-$14 per unit. Coastal cities $14-$22 per unit. Results in 3-7 days, peak at 14 days, lasts 3-4 months.
Lip or cheek filler, 1-2 syringes, $650-$1, 200 per syringe. Immediate result, settles 7-14 days, lasts 6-12 months depending on product.
Laser hair removal, underarm to full legs, $150-$450 per session, packages 6-8 sessions, $900-$2, 400. Sessions every 4-6 weeks, 70-90% reduction by session 6-8.
RF microneedling (e.g., Morpheus8), $700-$1, 200 per session, packages 3 sessions $1, 800-$3, 000. Redness 24-72 hours, collagen changes over 6-12 weeks.
HydraFacial or DiamondGlow, $150-$275 per treatment. 30-45 minutes, instant glow, no downtime.
Why values? Because once you pass values, you can use Maximize Conversion Value or Target ROAS. That is when the system favors keywords that drive dollars, not noise. We see CPCs hold steady while revenue per click climbs 15-35% in 30 days of value-based bidding.
Calls, bookings, and website tags, how to wire it
Google tag: Install the Google tag sitewide. Check in Google Ads “Tag status” that it is active. Use Tag Assistant to verify within 10 minutes. Fire a “Page view” and a test “Lead” to confirm. If you use a CMP, make sure the tag sends consent flags.
Booking events: If you use Go High Level, Aesthetic Record, Boulevard, or Acuity, fire a conversion on the confirmed booking step. Use server-side or webhooks if the platform is off site. For off-site iframes, use postMessage to signal back to your domain. Plan 1-2 hours of dev time to test edge cases.
Phone calls: Turn on call reporting and use a call tracking provider with number pools, CallRail, WhatConverts, CallTrackingMetrics. Track calls from ads and calls from the site. Only count calls over 60-90 seconds as secondary conversions. Qualify later in the CRM. Most clinics see 35-55% of first calls under 45 seconds, so do not bid on them.
Before launch checklist (15-30 minutes): clear cache, test one new lead form, one phone call over 60 seconds, and one booking. Screenshot everything. Save the GCLID on the CRM record and confirm the same ID appears in Google Ads within 24-48 hours after import.
During the first week: spot check daily. Expect 10-20% of records missing IDs at first. Fix source forms, duplicate pages, and pop-ups that do not include your hidden fields.
After two weeks: turn off any micro conversions as Primary. Keep your bidding clean. Move to value-based bidding once you see at least 30-50 Booked conversions in 30 days.
Offline Conversion Import or CRM Integration Basics
This is the bridge from “lead” to “paid”. It sounds technical. It is, a bit. I will give you a clear path. Our team has done this for 70+ clinics. Once it is in place, it runs with almost no upkeep.
Capture the click ID on every lead
GCLID/GBRAID/WBRAID: Store the Google click ID in a hidden field on every form. Keep it in your CRM record. For calls, your call tracking tool can push the GCLID when available. GCLID is a long string, 30-100 characters. It expires after 90 days on many sites, so keep it in localStorage or server-side for at least 90 days.
Storage window: Retain it at least 90 days. Many med spa purchases happen within 7-45 days. For packages and lasers we see 20-30% of payments at day 21-45, so 60-90 day windows catch most revenue.
Map your funnel stages
Lead Created, Booked Appointment, Showed, Paid. Keep it simple and consistent. If you need more, add “Rescheduled” and “Refunded”.
When a record moves to Booked, trigger an Ads “Booked” conversion with the original GCLID. Use the booking time as the conversion time.
When a record is marked Paid, send a “Payment” conversion value, $ amount and currency. Use the time of payment as the conversion time. Google will link this back to the click time for attribution.
How to send conversions back to Google Ads
Native integrations: Some CRMs sync with Google Ads directly, Go High Level can, Salesforce can. Use the native if you have it. Match rates of 60-80% are common with correct GCLIDs.
Zapier/Make: Use the Google Ads Offline Conversions action. You will need the conversion name, time, value, currency, and GCLID. Plan 1-2 hours to map fields and test. Cost is usually $20-$50 per month at light volume.
CSV upload: Download a weekly or monthly CSV from your CRM with GCLID and sale info. Import in Google Ads “Uploads”. Good for starting out. You will see data in 4-48 hours.
Privacy and safety: Be HIPAA-aware. Do not send diagnosis or notes. Do not transmit PHI beyond what is needed for attribution. A click ID, a timestamp, and a dollar amount are enough. If you use Enhanced Conversions for Leads with email or phone, get consent, hash client-side, and follow your Notice of Privacy Practices. Train staff to avoid free text about conditions in fields that sync.
Common errors and how to avoid them:
Mismatched timezones, conversions look like they failed. Set all systems to the same timezone.
Wrong conversion names, Google rejects the upload. Copy the exact name from Google Ads.
Stale GCLIDs older than 90 days, low match rate. Keep IDs for 90 days minimum.
Dupes, you import the same payment twice. Add a unique order or invoice ID in the import and enable de-duplication.
Every wrong keyword is costing you money
While your competitors attract high value patients, you could be paying for clicks that never convert. Learn which keywords to target before you waste another advertising dollar.
👉 Stop Wasting Money on the Wrong Keywords
Analyze Search Terms by Actual Revenue
This part is fun. And eye opening. Open Google Ads, go to Keywords, then Search Terms. Add columns: Conversions, Conversion Value, Conv. value per cost, Cost, Clicks. Segment by Conversion action to see Booked and Payment separately. Add Device and Hour of day to spot patterns. In many clinics, mobile delivers 70-85% of bookings, but desktop can carry larger ticket package sales.
Sort by Conv. value / cost. Anything above 3.0 is printing money. Label it “Scale”. We often scale exact match terms over 3.0 ROAS by 15-25% per week for two weeks, then re-check margins.
Look at Cost with zero Payment conversions. If a term has spent over your target CPA, say $250, with no bookings after 50-100 clicks, add as a negative or downbid. For lasers with longer lags, wait 100-150 clicks before a hard pause.
Break out brand vs non-brand. Keep separate budgets. Brand can hide poor generic terms. Aim for brand CPA under $30 and ROAS over 600% in most markets.
Use match types smartly. Exact for high-ROI terms. Phrase for testing. Broad only when you have strong value-based bidding and negatives dialed in. Expect broad to need 2-3x more negatives in the first 30 days.
Watch the phrasing in search terms. “Near me today” and “same day botox” often show high show-up rates. “Cheap botox” fills the calendar and kills margins. We exclude “free”, “cheap”, “template”, “jobs”, “training”, “Groupon”, “Reddit”, “YouTube”, “DIY”, “at home”. Build your negative list weekly for the first 6-8 weeks. Expect to add 40-100 negatives in month one in a metro area.
Real example: In Austin, “lip filler near me price” at $7.80 CPC drove 32 bookings at $92 CPA and $21, 450 in first-visit revenue in 30 days, ROAS 412%. “what is hyaluronic acid filler” at $3.10 CPC looked cheap but drove 0 payments on 110 clicks. We paused the research term and doubled budget on the price intent term the next week.
Simple Monthly Report That Tells You What to Scale or Kill
I keep this report to one page. One glance, clear action. Build it in Looker Studio, Sheets, or your CRM. Columns per keyword or search term:
Cost, Clicks, Leads
Booked Appointments, Show Rate %, Cost per Booking
Payments, Revenue, ROAS
Book-to-Paid %, Avg Order Value
Recommendation: Scale, Hold, Fix, Pause
Rules we use:
Scale: ROAS over 300% for 2+ weeks, at least 3 payments, CPA under target. Raise budget 15-25% weekly.
Hold: Learning, 1-2 payments, CPA within 20% of target. No changes besides bid tweaks. Give lasers and packages a 30-45 day lag window.
Fix: Strong leads and bookings, weak show rates. Work phones, reminders, deposits. Do not pause the keyword. Fix operations. Add text “$50 deposit applies, applied to treatment” to stop no-shows.
Pause: 100+ clicks, $300+ spend, zero bookings. Add negatives and pause the term. Revisit with better ad copy or a service-specific page.
We add a simple note per row, “Call quality low, lots of price shoppers” or “High filler revenue from over-40 demo”. These notes guide creative and landing pages next month. After a quarter of this, your team will agree on what to do in 10 minutes. That saves hours.
Recommended Attribution Options, Quick Comparison
Use this to choose how you will track revenue to keywords. Yes, it is a “treatment” table, but the idea holds.
Treatment Best For Cost Range Results Timeline Duration Offline Conversion Import, RECOMMENDED Exact revenue by keyword using GCLID from CRM $0 with CSV, $20-$50/mo with Zapier Data in 1-3 days Ongoing, automates after setup Native CRM to Google Ads sync Teams using Go High Level, Salesforce $97-$297/mo for CRM plans Same day to 48 hours Always on once connected Call tracking with revenue tags Phone-heavy clinics tracking booked and paid by call $45-$150/mo for CallRail or similar 1-7 days, depends on manual review Continuous, staff marks outcomes Enhanced Conversions for Leads Clinics with consented emails or phones to improve match rates $0, part of Google Ads Match uplift visible in 7-14 days Always on, requires hashing client-side Server-side tagging (sGTM) Teams with dev support wanting better data quality $20-$100/mo for server + setup time 2-4 weeks to deploy and test Long term, higher accuracy with iOS traffic
Bidding And Budgeting Once Values Flow
Start simple. For the first 2-4 weeks, run Maximize Conversions with only Booked set as Primary. Once you have 30-50 Booked conversions in 30 days, switch to Maximize Conversion Value. Add Payment as Primary with real values. After you hit 50-75 Payment conversions, consider Target ROAS. Start at 300%. Adjust by 50% up or down based on margin.
Separate campaigns for brand, generic, and competitor terms. Keep clean budgets. Generic gets most of the testing. Brand protects your name at low CPCs. Competitor only if you have a strong offer and tight negatives.
Budgets and guardrails:
Brand, $20-$60 per day in most markets, CPA under $30, ROAS 600-1000%.
Generic injectables, $80-$250 per day to start. Expect CPAs $60-$220 and ROAS 300-500% with good ops.
Lasers and RF, $60-$180 per day, longer lags, ROAS target 400-600% by day 45-60.
Competitor, $20-$80 per day, expect 30-50% higher CPC and weaker close rates. Use strong copy or skip it.
Seasonality: January and September book fast. July and late December slow. Shift 10-20% of budget into hot months. Use seasonality adjustments in Google Ads if you run prepaid promos.
Real Numbers, So You Can Benchmark
Average first purchase values: Botox $300-$750, Filler $650-$1, 200 per syringe, Laser hair removal package $900-$2, 400, RF microneedling $700-$1, 200 per session, HydraFacial $150-$275.
Lead to paid timing: Same day to 21 days for injectables, 7-45 days for packages, 14-60 days for RF and body contouring.
Target CPAs we see work: Botox booking $60-$120, Filler booking $120-$220, Laser package booking $120-$200, RF microneedling booking $120-$200, HydraFacial booking $35-$75.
ROAS targets: 300%+ for injectables, 400-600% for lasers and packages, 250-400% for facials if used as feeder to higher-ticket services.
Show rates: No deposit 55-70%. With $25-$50 deposit 75-90% within 30 days. Reminder texts the day before raise show rate 5-10%.
CPC ranges: “botox near me” $3-$10 in smaller cities, $8-$18 in major metros. “lip filler near me” $4-$12 smaller cities, $10-$22 large metros. “laser hair removal” $2-$8 smaller, $6-$16 large.
Close rates by channel: High-intent search 25-45% to paid. Discovery/Performance Max 10-25% to paid if retargeting is set well.
Lifetime value: New injectable patient average 2.5-4 visits per year, $900-$2, 400 in 12 months with cross-sell. Build this into your scale decisions.
Conversion lag: 30-60% of payments arrive within 7 days for injectables, 60-80% arrive within 21-45 days for lasers and packages.
Refunds: Under 2% in most clinics. Import negative revenue for accuracy.
What Clients Actually Feel When You Do This
Relief. That is the word. One owner told me, “I finally stopped arguing with my front desk. We look at the same report and make the same decision.” Another sent a Friday text, paid from two search terms we almost paused the month before. We bumped budgets 20% the next week and doubled paid bookings in 30 days. This works when you close the loop. We run this framework for 70+ med spas, and about 9 out of 10 keep it long term because it is simple and it pays for itself fast.
How to Build Keyword-to-Revenue Tracking at Your Med Spa
Here is exactly how we roll this out, step by step.
Step 1: Define conversion events and values, Day 1
Decide your Primary events, Booked and Payment. Set conservative values if you cannot pass real revenue yet, Botox $100, Filler $200, Laser $250. Add service-level versions if you have volume. Do not make form submits Primary. Do not lump “All payments” in one bucket. Measurable outcome, within 48 hours you should see only 2-3 Primary conversions in Google Ads.Step 2: Capture click IDs everywhere, Week 1
Add hidden GCLID, GBRAID, WBRAID fields to all forms. Turn on call tracking with number pools. Store the IDs in your CRM. Use a 90-day localStorage script to keep IDs across visits. Cost is usually $0 if you or your web dev adds it. Pro tip, add a visible “Source” field in the CRM for staff to spot check. Expect a 10-20% lift in match rates when you add GBRAID/WBRAID.Step 3: Wire your CRM to Google Ads, Week 1-2
Use native integrations if available. Or set up Zapier to send “Booked” and “Payment” conversions back with GCLID, time, and value. Cost, usually $20-$50 per month. Test three records, one for each conversion. Do not send the wrong conversion name. Keep time zones aligned. Expected result, Google shows imported conversions within 4-48 hours.Step 4: Clean up Google Ads conversions, Week 2
Switch micro events to Secondary. Keep only Booked and Payment as Primary. Use Data-driven attribution. Verify tag firing with Google Tag Assistant. Send a $1 test payment if your system allows. Outcome, your bidding focuses on booked and paid inside 7 days.Step 5: Build your monthly report, Week 2
Create a sheet with Cost, Booked, Paid, Revenue, ROAS by keyword. Add your Scale/Hold/Fix/Pause rules. Share with your team. Expect a 15-30% spend shift in the first month. Pro tip, color code ROAS, green over 3.0, yellow 1.5-3.0, red under 1.5.Step 6: Optimize weekly, Ongoing
Kill non-performers after 100 clicks and no bookings. Raise budgets 15-25% on winners. Expand exact match on proven search terms. Add negatives every week for 6-8 weeks, then monthly. Measurable outcome, CPA drops 10-20% in 30 days, ROAS climbs over 3.0 in 45-60 days in most markets.Step 7: Train the front desk, Ongoing
Speed to lead within 2 minutes, 3 attempts in 24 hours, text and call, then nurture. Add deposits for high demand slots. Cost $0-$50 for calendar tools. Expect show rates to rise 10-20 points in 2-4 weeks. Do not turn off good keywords when the ops issue is the real problem.
What to do before, during, and after launch:
Before launch, QA every form and calendar, test calls for 60-90 seconds, set SLA for follow-up, and pin your best ad headlines with price or offer. Block “free” and “cheap” terms. 60-90 minutes.
During the first 7 days, watch spend hourly, cap budgets to avoid runaway broad matches, check imported conversions daily at the same time. 15-20 minutes per day.
After 14 days, switch to value-based bidding if you have the volume. Add exact match for your top 5 revenue terms. 30 minutes.
FAQs, Straight Answers
How do we track phone bookings that never touch a form?
Use dynamic number insertion with a call tracking tool so each visitor sees a unique number. That number ties the session to a GCLID. Mark outcomes in the call platform or your CRM, “Booked” or “Paid”. Import “Booked” and “Payment” using the call’s GCLID and the time of the event. In our clinics this captures 60-80% of phone-only bookings within 14 days of setup.
What about Apple iOS and privacy limits?
Google uses GBRAID and WBRAID for some iOS traffic. Capture and store these like GCLID. Enhanced Conversions for Leads can improve match rates by 5-20% when you hash email or phone with consent. Keep attribution windows realistic, 30-60 days. Expect some untracked revenue, usually under 10-15% after ECFL is live.
Should we use GA4 conversions or Google Ads conversions?
Use Google Ads conversions for bidding when possible. They update faster and avoid cross-channel duplicates. GA4 is helpful for analysis but can lag and sample. If you must use GA4, import only hard events like “Booked” and “Payment” and keep attribution windows aligned, 30 days click, 7 days engaged view.
What if our booking system is off site?
Fire conversions via server-side webhook on the booking confirmation. Many schedulers support webhooks. Worst case, export a daily CSV of new bookings with GCLID to upload. A 24-hour delay is fine for bidding. Test with three bookings before you scale budget.
How do we handle cancellations and refunds?
When a Paid visit refunds, send a negative revenue import for that GCLID or adjust in your CRM revenue. At minimum, do not double count refunds as new sales. Aim to post adjustments within 7 days to keep ROAS honest. We see refunds under 2% in most practices.
How much does this cost to set up?
Expect $0-$500 in software if you already have CRM and call tracking. If you hire a pro, $750-$2, 000 one time for setup. Monthly tools, $20-$50 Zapier, $45-$150 call tracking, CRM $97-$297. Most clinics recover these costs within 14-30 days from reduced wasted spend.
How long before we can trust the numbers?
You will see booked data in days. For stable ROAS trends, give it 30-45 days and at least 30-50 conversions. For lasers and packages with longer lags, budget for a 45-60 day learning window.
What are the best keywords to start with?
Intent terms tied to services and location, “botox near me”, “lip filler appointment”, “laser hair removal clinic”, “diamond glow facial price”, “hydrafacial same day”. Start with 10-20 exact and phrase terms per service. Avoid research-only terms at first like “what is microneedling” until value-based bidding is live.
Do we need deposits to improve show-up rates?
Deposits help a lot. Even $25 reduces no-shows by 30-50% in our data. That boosts the quality of your “Booked” conversion signal too. Make the deposit applied to treatment, refundable with 24-hour notice. Add this in ad copy and on your booking page.
Can we run Max Performance and still see keyword revenue?
Yes, but search term visibility is limited. Use brand-separated campaigns and strong negatives. Consider Standard Search for control while you build your data set. If you run Performance Max, feed it exact match “Search themes” from your winners and keep a separate Search campaign to confirm ROAS by term.
What values should we assign if we cannot pass real revenue yet?
Use expected first-visit revenue by service. Safe examples in most US markets: Botox booking $100-$150, Filler booking $200-$300, Laser package booking $250-$400, RF microneedling booking $200-$300, HydraFacial booking $50-$80. Update values quarterly as you see real payments.
How do we stay compliant with HIPAA and ads?
Do not send health conditions, diagnosis, or notes to Google. Keep data to click IDs, timestamps, and amounts. Hash emails and phones if you enable Enhanced Conversions for Leads. Update your privacy policy and consent. Train staff to keep clinical notes out of fields that sync to marketing platforms. Review access logs monthly.
Quick Tips Only A Practice Owner Tells You
We tag “price shopper” calls in the CRM. Those keywords get their own ad group with firm pricing language. It cuts wasted consults by 15-25% in a month.
Landing pages with real prices or ranges qualify better. Lead count drops 10-20%. Paid patients rise. Staff is happier.
I would rather have 30 good leads that book than 100 freebies. Your staff will thank you. Your ROAS will tell you the same story.
Pin one headline with your price or deposit. “Botox from $12/unit” or “$50 booking deposit, applied to treatment”. It sets the tone and improves show rate.
Appointments in our clinics book 2-3 weeks out in busy months. Build urgency in copy, keep schedule rules tight, protect your injectors’ time.
Next Step
Set up the conversions and the import. Do not overthink it. One hour a week after launch is enough to maintain. The conversion tracking and revenue-attribution setup is fully covered in the Digital Marketing Guide: Google Ads. If you want our team to wire this for you, say the word. We have done it for 70+ med spas and clinics and we treat your data like our own. Join owners who see 300-600% ROAS on core services within 45-60 days once values flow.























