“Foot Surgery Consultation” Leads the Right Way: GTM + GA4 Setup for Service Websites
If you run lead generation for a service business, you already know the biggest headache isn’t getting traffic.
It’s knowing whether the traffic is actually converting.
This becomes even more important in high-intent industries where every lead matters. A perfect example is foot surgery in Perth, where users don’t browse casually. Most people searching are either in pain, have tried home remedies, or have been advised by a doctor and want a specialist consultation.
That means your website should do two things well:
Make it easy to book or enquire
Track enquiries accurately so you know what’s working
But tracking form submissions in 2026 is not as straightforward as it used to be. Most websites use modern AJAX forms, popup forms, embedded booking widgets, or “thank you messages” that appear without reloading the page.
So how do you track real leads properly?
This guide breaks down a clean, practical setup using Google Tag Manager (GTM) and Google Analytics 4 (GA4) so you can track consultation enquiries without inflating conversions or counting failed submissions.
Why “click tracking” is not real conversion tracking
A lot of people still track conversions like this:
Trigger conversion when user clicks “Submit”
Trigger conversion when user clicks “Book Now”
Trigger conversion when user clicks a phone number
These are not bad signals, but they’re not reliable conversion tracking.
Example: What can go wrong?
A user clicks “Submit,” but:
the form fails validation (missing phone number)
the server returns an error
the user closes the tab
the form is blocked by browser privacy settings
In all these cases, the click happened, but the lead didn’t.
If you’re running ads for foot surgery in Perth, inaccurate tracking can burn money quickly because:
you’ll think a campaign is working when it isn’t
you’ll optimize toward fake conversions
your reporting will look great but sales will stay flat
So we need a method that fires only when the form actually succeeds.
The most reliable method: track the success confirmation message
Many contact forms show a success message like:
“Thank you for your message. We will be in touch shortly.”
or:
“Your request has been submitted successfully.”
This is a much better conversion signal because it usually appears only after:
form data is validated
request is sent successfully
server responds with success
This is where Element Visibility trigger in GTM becomes a powerful tool.
Instead of tracking a click, we track the moment the success message becomes visible.
Step 1: Identify the “success message” element
Open the enquiry page on your website.
Submit a test enquiry (use a test email and phone number).
When the success message appears:
Right click on it
Click Inspect
Find the HTML element that contains the message
It might look like:
Or:
Thanks! Our team will contact you soon.
Best practice
If you have access to a developer, ask them to add a stable ID:
IDs are the most stable and easiest selectors to track.
Step 2: Create an Element Visibility trigger in GTM
Go to Google Tag Manager → Triggers → New
Choose Element Visibility.
Set it like this:
Selection Method: CSS Selector
Element Selector: #lead-success-message (or your actual selector like .form-success)
When to fire: Once per page
Minimum Percent Visible: 1%
Observe DOM changes: ✅ Enabled
Why “Observe DOM changes” matters
Most modern forms are AJAX-based, meaning the page doesn’t reload.
The success message often gets injected into the DOM after submission. If GTM isn’t observing DOM changes, the trigger may never fire.
Step 3: Send a GA4 event when the success message appears
Now create the event tag:
GTM → Tags → New → Google Analytics: GA4 Event
Set:
Configuration Tag: your GA4 config
Event Name: generate_lead
This is a recommended GA4 event name and works well for service-based lead tracking.
Add parameters (recommended)
Add these event parameters:
lead_type → foot_surgery_consultation
page_location → {{Page URL}}
page_path → {{Page Path}}
Then attach your trigger: Element Visibility trigger.
Step 4: Test with GTM Preview mode
Before publishing, always test.
Click Preview in GTM.
Submit the form again.
You should see:
Element Visibility trigger fired
GA4 event tag fired
If it doesn’t fire, check:
selector is correct
message appears in the same page (not inside an iframe)
message is not loaded as an image
message is not inside a hidden container
Step 5: Confirm in GA4 DebugView
Open:
GA4 → Admin → DebugView
You should see your event appear in real-time.
If you don’t:
confirm GA4 tag is installed properly
disable ad blockers for testing
confirm GTM container is loading
Step 6: Mark it as a Conversion in GA4
Once the event is working, make it a conversion.
Go to:
GA4 → Admin → Conversions → New conversion event
Add:
generate_lead
Now GA4 will treat this as a conversion.
Common problems (and fixes) Problem 1: The form success message is inside an iframe
If your form is embedded from a third-party booking tool, the success message might be inside an iframe.
GTM can’t easily detect element visibility inside an iframe unless you control the iframe content.
Fix options:
Use a thank you page redirect instead
Use the form tool’s built-in tracking (if available)
Fire a custom JavaScript event from the embedded tool (advanced)
Problem 2: Duplicate conversions (event fires twice)
This happens when:
the message element appears multiple times
the page is a single-page app and re-renders the component
Fix:
“Once per page” enabled
Use a more specific selector
Add a blocking trigger or a cookie-based lock (advanced)
Problem 3: The success message isn’t visible on screen
If the success message appears below the fold, element visibility won’t fire.
Fix:
move the success message near the submit button
auto-scroll to the message after submission
track DOM insertion instead (custom event)
Tracking phone calls and WhatsApp clicks (bonus)
For services like foot surgery in Perth, many conversions happen through:
phone calls
WhatsApp chats
“Book appointment” buttons
You should track these too.
Track click-to-call
Trigger type: Just Links
Condition:
Click URL starts with tel:
Event name:
click_to_call
Track WhatsApp
Condition:
Click URL contains wa.me or whatsapp
Event name:
whatsapp_click
This helps you understand lead behavior beyond forms.
Why this matters for SEO + paid ads
Once your tracking is correct, you can make better decisions like:
Which landing pages convert best?
Which keywords bring real enquiries?
Which campaigns bring low-quality leads?
For example, “foot pain treatment” may bring mixed intent, while “foot surgery consultation” is high intent.
If you’re doing SEO for foot surgery in Perth, accurate conversion tracking helps you measure the real value of your content.
Advanced tip: add UTM tracking to your leads
If you run Google Ads, Meta Ads, or email campaigns, add hidden fields to your form:
utm_source
utm_medium
utm_campaign
utm_term
utm_content
Then store those in your CRM or email notification.
This gives you a clear view of:
which campaign produced the lead
which ad creative worked
which keyword drove the conversion
Final checklist (simple and practical)
Before you publish your setup:
✅ Success message has a stable selector ✅ Element Visibility trigger set to “Once per page” ✅ Observe DOM changes enabled ✅ GA4 event fires only on success ✅ Event visible in GA4 DebugView ✅ Conversion created in GA4
Conclusion
Tracking conversions correctly is one of the most underrated skills in marketing and analytics.
For high-intent services like foot surgery in Perth, you don’t want “almost conversions.” You want real confirmed enquiries.
Element Visibility tracking is one of the cleanest methods when you don’t have a thank you page, and it helps you avoid fake conversions caused by click tracking.
Once you set it up, you’ll be able to trust your numbers and scale your SEO or paid campaigns with confidence.
All rights reserved