folder_open Analytics & Attribution

Lead tracking for mattress cleaning in Singapore

Martin Marinov Martin Marinov
14 min read
Topics whatsapp-enquiry-handlingcall-trackinglead-source-attributionutm-trackinggoogle-business-profile

A toddler won’t stop sneezing at 2am, and by sunrise his mother has already typed “mattress cleaning Singapore” into Google, tapped the first ad that looks legitimate, and sent a WhatsApp message before she’s even finished her coffee. That’s the whole buying journey for most of this trade: short, urgent, and settled on a phone screen in under ten minutes.

Here’s the part that costs owners real money: that enquiry almost never shows up as a “lead” in any report you’d recognise. It shows up as a green tick on WhatsApp, maybe a missed call to your Google Business Profile number, sometimes a Facebook Messenger ping from an ad you boosted three weeks ago and forgot about. You book the job, you clean the mattress, you get paid. But if someone asked you next month which channel actually earned that booking, you’d be guessing. Multiply that guess across forty or fifty jobs a month and you’ve got a business spending real dollars on ads and SEO with no honest read on which ones are working.

This is the quiet problem behind lead tracking for mattress cleaning in Singapore: the booking happens in a channel that was never built to report back to you. Fix that one gap and everything downstream, your ad spend, your Google Business Profile effort, your pricing decisions, gets sharper. Leave it unfixed and you’re running a business on vibes dressed up as data.

Why the WhatsApp tick marks are the enquiry your tracking never counts

Think about what actually happens when a Google Ads conversion gets recorded. Someone clicks your ad, lands on a page, fills a form or calls a tracked number, and a conversion event fires back into the account. Google sees it, your reporting sees it, your cost-per-lead math holds up. That whole mechanism was built around forms and phone calls, because that’s how most industries convert.

Mattress cleaning doesn’t convert that way here. A customer sees your ad or your Google Business Profile listing, taps “WhatsApp” or “Message”, and the conversation opens in a completely separate app. No page reload. No form submit. No tracked call. As far as your Google Ads account or GA4 property is concerned, that click just evaporated. It looks like a bounce. It looks like wasted spend. In reality, it’s sitting in your personal WhatsApp thread as “Hi can I get a quote for queen size, got some stains”. Same story with Google Business Profile. Someone searches “mattress cleaning near me”, sees your listing with its photos and reviews, and taps the call button straight from the search results, no website visit at all. If that number isn’t a tracked line tied back to your ad platforms, that enquiry is invisible to everything except your own memory of answering the phone. Owners running three or four channels at once, Google Ads, Meta, organic search, word of mouth from past customers, end up unable to separate which one is actually filling the diary. They just see the diary filling up, which feels like success until the month ads spend doubles and bookings stay flat.

The fix isn’t complicated in concept. It’s making sure every door a customer can walk through, the website form, the GBP call button, the WhatsApp click-to-chat link, the Facebook Messenger button, carries a tag that says where it came from before the conversation even starts. Most mattress cleaning businesses in Singapore skip this entirely, because nobody told them WhatsApp needed tracking in the first place. It does, and it’s the single biggest gap in this niche.

Building a tracking setup that matches how Singapore customers actually book

Start with the moving parts, because once you see them laid out, the setup stops feeling mysterious. There are really four sources of truth you need, and each one needs to be tagged differently.

Your website forms are the easiest. Every form submission should fire a GA4 event, “form_submit” or something equivalent, tied to the UTM parameters that brought the visitor to the page in the first place. That part most agencies get right. Where it breaks is the next layer: your WhatsApp click-to-chat buttons. Each one needs its own tagged link, not a generic wa.me number copy-pasted across the site, the ads, and the Google Business Profile description. Build a separate link for “WhatsApp button on the Google Ads landing page”, another for “WhatsApp button on the Facebook post”, another for “WhatsApp link in GBP profile”. When a message comes in, that link data tells you exactly which door it walked through.

Phone calls need a tracked number, a dedicated line that forwards to your actual mobile but logs the call and, ideally, the source. If you’re running Google Ads with call extensions, Google’s own call tracking can handle a chunk of this for free. But your GBP listing’s call button needs its own number too, separate from the one on your ads, so a call from someone who found you organically through search doesn’t get credited to a paid campaign you’re running.

Then there’s the quote-to-job step, the part most tracking stops short of. A customer messages for a quote, you send a price, maybe with GST added for the invoice, and then either they book or they go quiet. That gap between “enquiry” and “paid job” is where the real signal lives. If you’re not logging, even in a simple spreadsheet, which tagged enquiry became which paying job, you’ll never know if your Google Ads traffic actually converts better than your Facebook traffic, or if it just generates more messages that go nowhere.

What a healthy setup looks like once it’s running

Once this is in place, a few things change quietly. You start noticing that your Google Ads traffic, people actively searching “mattress cleaning” with a stain or a smell they want gone today, converts into paid jobs at a noticeably higher rate than your Facebook traffic, which tends to bring window-shoppers comparing three services before picking the cheapest. That’s not a universal law, some businesses see the reverse, but you can’t know which pattern applies to you without the tagging in place.

You also start seeing which specific ad or post actually drove a booking, not just a click. An ad showing before-and-after photos of a stained mattress might get fewer clicks than one promising “same day service”, but if it converts enquiries into jobs at twice the rate, that’s the one worth the budget. Without source-level tracking tied to actual bookings, you’d keep the flashy low-converting ad running because it “performs well” on vanity metrics alone.

The numbers that look good and mean nothing

Reach and impressions on a Facebook post tell you nothing about whether anyone booked a job. A high click-through rate on a Google ad means people are curious, not that they’re ready to pay for a service today. The number of WhatsApp messages you receive in a week is encouraging, but if half of them are price-checkers who ghost after you quote, that number is a vanity metric dressed up as demand. The only numbers worth reporting monthly are: enquiries by tagged source, enquiries that became a booked job by tagged source, and the average job value by source. Everything else is noise that makes a dashboard look busy.

If you’re sending traffic to a generic homepage instead of a page built around the actual decision a customer is making, stains, odour, allergens, confinement prep, you’re also losing people after the click regardless of how well you’ve tagged the source. HeyLead Insights is worth a look here, because session recordings on your booking page will show you exactly where someone starts typing a message and then abandons, usually at the price question or a form that asks for too much before offering a quote.

A digital marketing partner who understands how attribution should work for a mattress cleaning business can take the measurement and reporting side off your plate entirely, which matters once you’re running more than one channel at once. If you want a second set of eyes on how your analytics and attribution currently reconcile source to job, that’s a reasonable first conversation to have.

Not sure where your funnel leaks?
Get a free marketing audit. We review your search, ads, and landing pages and send back what to fix first.
Get a free audit
Interior of bedroom with air conditioning above bed placed near window with curtains and dresser. Photo by Max Vakhtbovych on Pexels
Photo by Max Vakhtbovych on Pexels

The playbook: setting this up without hiring a full marketing team

None of this needs a developer on retainer. It needs about an afternoon of focused setup and then a habit of checking it monthly. Here’s the order that actually works.

Setup sequence

  1. 1Create a separate tracked phone number for your Google Business Profile call button, distinct from any number used in paid ads. Most call tracking tools or even a second SIM with call forwarding will do this cheaply.
  2. 2Build individual WhatsApp click-to-chat links for every placement: the GBP profile, the Google Ads landing page, each Facebook or Instagram ad set, and any organic posts. Pre-fill each link with a short message tag like "Hi, I saw your Google ad" so you can eyeball the source even before checking analytics.
  3. 3Tag every ad and post with a consistent UTM structure so GA4 and your ad platforms agree on naming. Keep it simple: source, medium, campaign name, nothing fancier.
  4. 4Set up a GA4 event for form submissions and a GA4 import for your call tracking data, so both live in the same reporting view instead of two disconnected spreadsheets.
  5. 5Keep a simple log, a spreadsheet is fine, that records every WhatsApp enquiry's source tag next to whether it became a paid job and the job value including GST. Review it monthly, not daily; the pattern only shows up after thirty or so enquiries.
  6. 6Check your Google Business Profile listing monthly for consistent business name, address, and phone number across your website, GBP, and any directory listings. Inconsistent details quietly hurt your local search visibility and muddy which number customers actually call.
  7. 7Once you have three months of source-to-job data, reallocate ad budget toward the channel that's actually producing booked jobs, not just enquiries. Don't make this call after two weeks; the sample is too small.

Run the UTM link builder before you launch your next ad set rather than after; retrofitting tags onto a campaign that’s already live means losing weeks of data you can never recover. And check your booking page against the Core Web Vitals checker before you spend another dollar sending traffic to it, a slow page loses mobile customers who are messaging you from a moving bus or a crowded MRT platform, long before they get to your WhatsApp button at all.

What mattress cleaning owners say about chasing their own enquiries

“We were running ads for months before I realised half our ‘leads’ were the same three aunties messaging different ads asking the same question about dust mite treatment. Once we tagged the WhatsApp links, I could see it was one person, not three enquiries.” - Owner, mattress and upholstery cleaning business

“The call button on our Google listing used to go to the same number as our website. I had no idea which one was actually bringing in the condo jobs until we split the numbers apart.” - Operations manager, home cleaning franchise, Singapore

Prefer to just ask? Message Martin directly on WhatsApp: Chat with us on WhatsApp
Elegant bedroom featuring a plush blue velvet bed and chic pendant light. Photo by Max Vakhtbovych on Pexels
Photo by Max Vakhtbovych on Pexels

FAQ

Do we really need call tracking if most of our enquiries come through WhatsApp anyway? Yes, because the phone calls you do get usually come from Google Business Profile, a different intent entirely than a WhatsApp message from an ad. Without a separate tracked number on that call button, you can’t tell whether your organic search visibility or your paid ads are driving the phone to ring.

How does GST factor into tracking quote-to-job conversion? Keep your quoted price and your invoiced price in the same log entry, GST included, so you’re comparing like for like when you look at average job value by source. Some owners quote excluding GST and then wonder why their “average job value” looks inflated or deflated depending on how a customer read the quote.

What’s the fastest way to tell if a booking came from Google or Facebook? Separate WhatsApp links per placement, pre-filled with a source tag in the message text, is the quickest fix. It takes an afternoon to set up and gives you an answer the moment a message arrives, without waiting for a monthly report to reconcile it.

Should HDB and condo jobs be tracked differently? Not for attribution purposes, but it’s worth noting in your log if condo jobs (often routed through an MCST-approved vendor list) tend to come from a different channel than HDB bookings, which are usually direct search or word of mouth. That pattern alone can tell you where to put your next dollar of ad spend.

Can one person realistically maintain all of this alongside running the cleaning jobs? Barely, and that’s usually the point where owners bring in help. The setup itself is a one-time afternoon, but the monthly review, the budget reallocation, and keeping tags consistent as you add new ad platforms is ongoing work that competes with actually cleaning mattresses.

Putting it to work

Start this week by pulling up your Google Business Profile and checking what number sits behind the call button, then compare it to the number on your website and any ads. If they’re all the same, spend twenty minutes setting up a second tracked line for the GBP listing alone. That single change will tell you, within a month, how much of your call volume is coming from people who found you through search rather than through the ads you’re paying for.

If you’d rather hand off the ongoing work of tagging every channel, reconciling WhatsApp enquiries against booked jobs, and reallocating budget based on what the data actually shows, HeyLead builds and maintains exactly this kind of tracking and reporting for cleaning businesses that live and die on enquiry-to-job conversion. Chat with us on WhatsApp.

Work with HeyLead
Free marketing audit, or reach Martin directly:
Get a free audit Connect on WhatsApp · [email protected]