the silk laser website on a laptop and phone beside the headline: silk laser's ga4 looked fine, but every booking showed $0.

Silk Laser Clinics processes thousands of online bookings every month. Each appointment has a treatment price attached to it. For a significant period, GA4 showed every single one of those bookings as worth $0.

The booking portal was not broken. The payments were going through. The problem was that the data leaving the booking confirmation page and arriving in GA4 was stripped of its most important attribute: value. When Click Click Media’s GA4 and GTM analytics consulting team audited the full implementation for Silk Laser, the scope of what was missing became clear. Not just from the booking portal, but across the entire tracking stack. Product events were missing treatment category and brand dimensions. Duplicate transactions were inflating purchase counts. Payment gateways were appearing as the traffic source for purchases. And when a major checkout redesign went live in April 2025, it launched with no GA4 or GTM implementation at all.

four result cards: $0 booking revenue visible in ga4 before the project; under 1% ga4 to woocommerce variance after the fixes; 3 new revenue dimensions added; 60+ clinic locations tracked on every transaction.
The before and after in four numbers: $0 visible booking revenue going in; under 1% variance against WooCommerce coming out, across 60+ clinics.

The Client: Australia’s Largest Laser Clinic Group

Silk Laser Clinics is one of Australia’s largest laser and cosmetic clinic groups, with more than 60 locations across every state and territory. The business offers laser hair removal, cosmetic injections, skin treatments, body sculpting, and skincare products through both in-clinic appointments and an eCommerce store.

Online bookings and product sales both run through silklaser.com.au, making GA4 the single source of truth for revenue performance across the network. Both channels carry real monetary value. Both need clean, reliable data to inform campaign decisions, budget allocation, and channel attribution. When that data is unreliable, every decision that follows it carries the same error.

The Problem: Four Tracking Failures Compounding Each Other

four tracking failures shown as cards: bookings recording as $0, revenue without dimensions, duplicates and stolen credit, and a checkout with no tracking.
Four separate failures, each one compounding the others.

Silk Laser’s GA4 was running and producing numbers. The dashboard looked functional. But the data arriving in GA4 was incomplete, missing dimensions, and in some cases counting the same transactions more than once.

1. Online bookings recording as $0

Silk Laser’s original booking flow used a generic request form. When the business launched a proper online booking portal with real treatment prices attached to each appointment, the booking confirmed event fired in GA4 but passed no value. Every booking, regardless of which treatment was selected or what clinic it was for, arrived in GA4 with a revenue value of $0.

The business could see how many bookings came in. It could not see which treatments were driving them, which clinics were performing, or what the combined revenue value was. The booking portal had become the most important conversion on the site, and it was invisible to the data.

2. Products tracking revenue without any meaningful dimensions

Skincare products and treatment add-ons were recording transactions, but the data arriving in GA4 was stripped of context. Item brand was absent. Treatment category (laser hair removal, cosmetic injections, skin and body treatments) was not populated. Primary and secondary subcategories were missing. Price was passing as a string rather than a number, which silently broke GA4’s revenue calculations on affected events.

The cart, checkout, and purchase events were firing. But the only thing consistently visible was a total dollar amount, with no way to answer which treatment line, brand, or service category was responsible for any portion of it.

3. Duplicate transactions inflating purchase counts

Payment gateway returns were causing some purchase events to fire more than once. When a customer completed payment through Afterpay or another gateway and returned to the confirmation page, GA4 logged a new session attributed to the gateway and in some cases recorded the transaction a second time. Gateways were also appearing as referring traffic sources for purchases, masking the Google Ads and paid search campaigns that had actually driven the customer.

4. A major checkout redesign launched with no tracking

In April 2025, Silk Laser launched a completely redesigned checkout. The new flow includes a clinic selection step unique to Silk’s booking model: customers choose their nearest location before completing the purchase, creating a funnel structure that does not exist in a standard WooCommerce implementation. When CCM audited the staging environment ahead of launch, neither GA4 nor GTM had been configured on the new checkout at all. Not a single tag. Not a single trigger. The redesign was days from going live with nothing to measure.

The Approach: Fix the Foundation, Then the Dimensions, Then the Revenue

CCM approached the project in stages, working through the most data-damaging issues first before moving to the dimension and value layers. Each stage required close coordination with the Silk Laser development team to spec, test, and deploy correctly.

Fixing the data foundation

flow diagram: after a customer returns from the payment gateway, google tag manager reads a transaction id cookie and blocks the purchase event if that id has already fired.
The dedupe fix: one cookie, one blocking trigger, and the GA4-to-WooCommerce variance fell to 0.69%.

The first priority was stopping the active damage. CCM added the Afterpay portal and other payment gateway domains to GA4’s unwanted referral exclusions, so session attribution correctly reflected the original traffic source rather than the payment provider.

To eliminate duplicate transactions, CCM built a transaction ID cookie and a blocking trigger in GTM. The cookie captures each transaction ID on the order confirmation page and stores it in the browser. A custom blocking trigger reads the cookie on subsequent page loads and prevents the purchase event from firing a second time if that transaction ID has already been recorded. Post-fix, the variance between GA4 revenue and WooCommerce dropped to 0.69% on revenue and 0.23% on transaction count. Those figures have held since.

Rebuilding product tracking with full dimensions

gtm preview mode and ga4 debugview side by side, showing a bookingconfirmed event carrying clinic location, treatment name, booking value and day of week.
Every fix was proved in GTM Preview and GA4 DebugView before it went anywhere near production.

Working from a detailed datalayer specification, CCM identified every location on the Silk Laser site where a standard GA4 eCommerce event was firing but missing critical parameters. The list covered service pages, category pages, cart, checkout, and the booking request flow. Every affected event and page was logged, specced, and sent to the development team with specific corrective actions.

The fix covered:

  • Product and treatment brand across all service pages
  • Primary category (laser hair removal, cosmetic injections, skin treatments, body sculpting)
  • Secondary treatment subcategory across all service lines
  • Correct numeric formatting for price and quantity fields on all affected events
  • Missing events on add-on pages, skincare product pages, and cosmetic injection booking flows

Each fix was tested in GTM Preview mode and confirmed in GA4 DebugView before deployment. Once the changes were live, the internal review confirmed: “tested data and it looks a lot cleaner, all sales are fairly close to the ones reported in WooCommerce.”

Building the new checkout from scratch

the rebuilt checkout funnel: cart, a choose-clinic step tracked by a custom virtualpageview, account or guest, payment, confirmation.
Silk’s checkout carries a step a standard WooCommerce build does not: choosing your clinic.

When the April 2025 checkout redesign was approaching launch, CCM created a new GTM container for the staging environment and built full GA4 eCommerce tracking across both the new and existing customer purchase funnels. The new customer journey through Silk’s checkout is distinct: a clinic selection step sits between cart and payment, which required custom virtualPageview events that do not exist in a standard checkout implementation.

Custom datalayers were built for the choose-clinic step, account creation, and login flows. Discount value tracking was added so promotional pricing is visible against purchase events. The full funnel was tested on staging, signed off, deployed to the live site, and tested again before the new checkout went live.

Adding booking value to the online booking portal

before and after datalayer code: the bookingconfirmed event originally sent no value; after the rebuild it carries booking value, currency, clinic and state.
The same event, before and after — now carrying everything it was always missing.

The most significant gap was the booking portal. When Silk Laser’s online booking system launched, the bookingConfirmed event was firing but carrying no value and no context. CCM built a booking confirmed tracking tag that captures the full context of every appointment:

  • Clinic location and state
  • Service type and treatment name
  • Total booking value
  • Booking date, time, and day of week

Every online booking now arrives in GA4 with the same revenue dimensions as a product purchase. For the first time, the business can see booking revenue by clinic, by treatment, and by service category, and compare that against the paid and organic channels that drove it.

The Results: Revenue Now Visible, Attributed, and Trusted

What changedBeforeAfter
Booking revenue visible in GA4$0 on every bookingFull value attributed by clinic and treatment
GA4 vs WooCommerce revenue varianceMaterial discrepancy0.69% (within normal tolerance)
Transaction count varianceInflated by duplicate events0.23% (reconciled)
Item brand in purchase eventsMissing across all service pagesPopulated on all events
Treatment category in eventsAbsentPrimary and secondary categories on all events
Clinic location against transactionsNot capturedEvery booking tracked by clinic and state
New checkout trackingZero implementation at launchFull funnel including clinic selection step
Payment gateway referral attributionGateways credited as traffic sourceOriginal channel correctly attributed

The Standout: Booking Revenue From Zero to Fully Attributed

If one change captures the full scope of the shift, it is the booking portal. Silk Laser’s online booking system is a significant revenue channel. Customers select their treatment, choose a clinic, and confirm. The appointment value is known at the point of booking. But for the period between the portal launching and CCM’s tracking implementation, every single one of those bookings arrived in GA4 with a revenue value of $0.

That is not a marginal data quality issue. It is a complete absence of revenue signal from a primary conversion channel. Without it, every attribution model in the account was working from an incomplete picture. Which campaigns were driving bookings? Which channels were responsible for the most valuable treatments? Which clinics were converting paid traffic at the best rate? None of those questions could be answered from the data.

The fix was technically involved: mapping the bookingConfirmed datalayer event to capture clinic, state, service, treatment, value, date, and time, then deploying and testing across the live environment. But the business outcome was simple. The booking portal went from a black hole in the analytics to a fully attributed revenue channel with the same dimensional depth as every product transaction.

Revenue that was previously invisible is now visible. It can be split by treatment, by clinic, by service category, and by the channels that drove it. Campaign decisions that previously had to assume booking revenue can now measure it.

“Click Click Media has been an integral part of SILK’s success from day one. Their ability to adapt to our evolving needs, whether shifting our focus to online sales or helping us navigate through acquisitions and rapid growth, has been exceptional. What sets them apart is their deep understanding of both the digital landscape and our business goals. With Click Click Media by our side, we were able to scale SILK Laser Clinics into a market leader.”

Martin Perelman, CEO of MediAesthetics (formerly CEO of SILK Laser Clinics)

The Takeaway: GA4 Looks Fine Until You Look Closely

Silk Laser’s GA4 was not obviously broken. The dashboards were populating. Numbers were moving. There were no error messages. The failure was quiet. Revenue was recording without the dimensions that make it useful. Bookings were confirming without value. Transactions were duplicating without any signal that something was wrong. A new checkout launched without anyone realising there was nothing to measure.

This pattern is more common than most businesses realise, particularly in fast-growing eCommerce and multi-location businesses where the site evolves faster than the tracking does. Every new page template, checkout redesign, or booking system migration creates an opportunity for tracking to fall behind. And unlike a site that goes down, a tracking gap produces no alert. It just silently produces worse data until someone looks closely enough to find it.

The fix for Silk Laser was not a single action. It was a structured analytics audit that found four distinct problems, a prioritised remediation plan that addressed the most data-damaging issues first, and an ongoing review process to catch regressions before they compound. The result is a GA4 property that can now be trusted as the source of truth for a business operating across 60+ locations and two distinct revenue channels.

A similar pattern drove the work behind Kidz Teeth’s tracking setup, where GA4 was not capturing the specific conversion events that indicated real patient intent. The fundamentals matter more than the platform.

A free analytics audit from Click Click Media checks your conversion tracking, attribution, datalayer integrity, and revenue visibility before you make another campaign decision based on incomplete data. Google Premier Partner. In business since 2008. No lock-in contracts.

Andrei Jach
Written by Andrei Jach
Senior Manager | SEO & Analytics Specialist
Andrei has worked in digital marketing for over 15 years, seven of them at Click Click Media. He runs the SEO and analytics practice: technical audits, schema implementation, Search Console interpretation, and reporting that connects search performance to business outcomes. When a site loses rankings for a reason no one can identify, Andrei is the one who finds it. View full bio here.
Share this article
Back
NORWEST BUSINESS PARK
Unit 307, 29-31 Solent Circuit,
Norwest NSW 2153