folder_open Analytics & Attribution

Lead tracking for florist companies in Singapore

Martin Marinov Martin Marinov
20 min read
Topics florist-conversion-eventswhatsapp-utm-trackingsingapore-paid-searchenhanced-conversionsorder-value-ga4

A Bukit Timah studio can close a $2,400 wedding consult on WhatsApp while the Google Ads dashboard still counts a $38 same-day bunch as the same conversion. That is the Singapore florist problem in one afternoon. You are not short on enquiries. You are short on a map that tells you which channel paid for the bridal trial, which one paid for the condolence wreath, and which one only produced a screenshot of a bouquet with no deposit.

Search CPC has been climbing. CPCs for florist-adjacent terms in Singapore have been climbing-industry benchmarks for retail and local services now average well above $2 in many markets, and Singapore’s competitive CBD targeting pushes that higher. Mobile still takes 63% or more of paid clicks while converting 30-40% worse than desktop. For florist companies here, that mix is brutal: most high-intent traffic is on the phone, in Instagram DMs, or in a WhatsApp thread that never fires a thank-you page. If you cannot tell a $180 corporate standing order from a $28 mixed bunch, smart bidding will keep buying the cheap form.

This piece is for marketing owners at florist companies in Singapore who already run Google Ads, Meta, or Google Business Profile and still cannot reconcile spend to booked orders in SGD. We will stay on the marketing number: cost per qualified consult, cost per paid order, and which offer actually covered GST and delivery.

When a Marina Bay enquiry and a HDB bunch share one conversion

Walk the last 30 days of your CRM or inbox and you will usually find three products stuffed into one “lead” event. Same-day mixed bunches from Tampines or Punggol. Funeral and condolence work that starts with a phone call and ends with a same-evening delivery. Wedding and hotel lobby installs that sit in a 4-12 week consult cycle with a 30-50% deposit. If all three ping the same Google Ads conversion, last-click will keep congratulating the cheapest keyword.

Singapore makes this worse because the path after the click is almost never a clean form. Shoppers tap Call on Google Business Profile, paste a photo into WhatsApp, or ask “can deliver to Orchard by 4pm?” in Instagram. Ad-blockers and privacy changes already strip 20% or more of pixel conversions. Your florist stack loses even more because the real close happens in a chat your tag never sees. Automated bidding then inflates spend on whatever still fires, which is often the wrong job.

You also get a currency and tax problem the US dashboards ignore. A $45 CPL looks fine until you remember GST, same-day Grab surcharge, and a $12 ribbon upgrade that never made it into the order value. Google’s 4.2x average ROAS across industries is a useful north star, not a florist P&L. Meta’s 2.8x average is even less useful if half your “leads” are people asking for the price of 12 roses with no postcode.

A typical leak: Performance Max “drives the bulk now,” the in-platform CPA looks stable, and the till is quiet on Tuesdays. The missing piece is not another campaign. It is a first-party record of which enquiry became a paid order, in which shop, for which SKU family. If your agency (or your intern) still sends every ad to the homepage, you already know the next sentence: the homepage cannot price a funeral spray and a wedding quote with one button.

If you want a second pair of eyes on the measurement layer without rebuilding the whole media plan, HeyLead’s analytics and attribution work is built around this exact handoff, not a generic dashboard.

How Singapore florist companies should split events before they split budgets

Start with the jobs, not the platforms. Name three conversion families that match how your shops actually take money: same-day order (paid or confirmed in chat), funeral or condolence booking (name, venue, date, value), and wedding or event consult (qualified if they gave a date, venue, and budget band in SGD). Everything else is a micro-event: click-to-call, WhatsApp tap, menu view, delivery-slot check. Micro-events train ads. They do not get to sit in the ROAS column.

Then attach a source you control. UTM on every Google, Meta, and email link. Unique call tracking numbers on Google Business Profile versus paid search, because a CBD lunch-hour call is not the same as a night-time Google Ads tap. A WhatsApp deep link with a campaign parameter, not a bare wa.me on the homepage. Instagram “DM us the occasion” still needs a UTM on the bio and a staff habit of tagging the thread. Without that, you will keep arguing with last-click while SparkToro’s 2024 analysis found roughly 60% of Google searches in the US end without a click; AI Overviews are pushing that figure higher for informational queries, including many floral inspiration searches-and that same zero-click pressure shows up for Singapore shoppers researching bouquets before they ever tap WhatsApp.

Page speed is part of tracking, not a vanity score. According to the Chrome UX Report (CrUX), fewer than 60% of origins pass all three Core Web Vitals globally-mobile performance is the consistent failure point. A florist landing page that stalls on INP while someone tries to pick a delivery slot in Toa Payoh will drop the mobile session before your event fires. That looks like a media problem. It is a page problem with a media invoice. See web.dev/reports/cwv-tech-report or the HTTP Archive CWV report.

Use HeyLead Insights on the order and consult pages so you can see where people stop: the GST-inclusive price, the cut-off clock for same-day, or the form that asks for a full address before they know you deliver to their condo. Session recordings will not replace WhatsApp. They will tell you why the form never became a chat.

Audit scorecard

  1. Three money events, not one leadCreate separate GA4 and Google Ads conve

    Three money events, not one leadCreate separate GA4 and Google Ads conversions for same-day paid order, funeral booking, and wedding consult. Do not import “generate_lead” as the only signal. If a $32 bunch and a $3,100 hotel install share an event, bidding will buy bunches.

  2. WhatsApp and call as first-partyLog every WhatsApp open and answered cal

    WhatsApp and call as first-partyLog every WhatsApp open and answered call with campaign, ad group, and landing URL. Staff should tag occasion (wedding, funeral, corporate, daily) before the thread is archived. If it is not in a sheet or CRM within 15 minutes, it did not happen for bidding.

  3. Value in SGD, GST-awarePass order value when the deposit clears, not whe

    Value in SGD, GST-awarePass order value when the deposit clears, not when the form submits. Exclude cancelled same-day jobs. Enhanced Conversions and a server-side or CRM ping protect you when 20% of browser conversions vanish.

  4. Dedicated pages per intentSame-day ads land on a page with cut-off time,

    Dedicated pages per intentSame-day ads land on a page with cut-off time, delivery map, and click-to-WhatsApp. Wedding ads land on a consult calendar and portfolio, not the daily bunches grid. Funeral ads need a discreet form and a phone number above the fold.

  5. Negatives and query hygieneTwenty to thirty percent of SEM budgets still

    Negatives and query hygieneTwenty to thirty percent of SEM budgets still leak on irrelevant queries. For Singapore florist companies that means DIY tutorials, job seekers, wholesale-only terms, and “flower delivery India” style mismatches. Review search terms weekly, not as a quarterly surprise.

  6. CNY, Valentine, and Mother’s Day as separate seasonsDo not let a January

    CNY, Valentine, and Mother’s Day as separate seasonsDo not let a January corporate baseline set February bidding. Clone conversion value rules for peak weeks, raise the floor on wedding consults, and cap cheap mixed-bunch keywords when studio capacity is already sold.

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

A Geylang shop that stopped paying for photo-only DMs

A two-location florist with a Geylang production floor and a small Orchard pickup counter was spending about S$4,800 a month on Search plus a thin Meta budget. The Ads account showed 146 conversions. The POS showed 61 paid orders that could be tied to digital. The gap was not “brand.” Staff were counting every Instagram DM as a lead, including “how much is this?” with no date and no delivery postcode.

They split events. Same-day required a paid checkout or a WhatsApp confirmation with address and slot. Funeral required a call logged with venue. Wedding required a consult booked. They added UTMs to WhatsApp buttons and a second call number on Google Ads landing pages only. Within 11 days the conversion count in Google Ads dropped to 68. Cost per paid order fell even though CPC did not, because Performance Max stopped getting credit for tire-kickers.

The mechanism was boring and it is the one that works: they stopped sending a “lead” to bidding until money or a qualified consult existed. Creative still mattered on Meta (fatigue still shows in CPM before volume dies), but they refused to scale until Event Match Quality had a real order to learn from. Broad targeting without that signal is how you buy condolence traffic with a Valentine creative.

A second pattern we see in the East: a shop ranks for “florist Bedok” organically, then runs branded Search, then wonders why last-click gives Google Ads the wedding. Pull assisted conversions and the call log. Organic and GBP often start the trust. Paid closes the same-day slot. If you only fund the last click, you will starve the listings that made the bride pick up the phone.

Action checklist

  1. Export 90 days of Google Ads, Meta, and GBP calls. Tag each row as same-day, funeral, wedding/event, or junk. Count paid orders in SGD, not form fills.
  2. Build three landing URLs with matching H1s: same-day delivery Singapore, funeral flowers Singapore, wedding florist consult. Check titles, metas, and Core Web Vitals before you spend.
  3. Wrap every CTA in a UTM (source, medium, campaign, content). Use one WhatsApp number per campaign family if you cannot do dynamic numbers yet.
  4. In GA4, fire purchase or consult_qualified only after staff confirm. Keep whatsapp_click and call_click as secondary. Import the primary events into Google Ads with value.
  5. Turn on Enhanced Conversions. If you use a CRM, send the hashed email or phone when the deposit lands. That is how you fight the 20%+ data loss, not by adding another pixel.
  6. Add negatives for jobs you do not want (courses, silk-flower DIY, overseas shipping) and pause any ad group still pointing at the homepage.
  7. Reconcile weekly: ad spend vs deposits vs till. If in-platform CPA and POS diverge by more than about a third, freeze budget increases until the map is honest.

Why your Google Ads account thinks a $32 bunch and a $3,100 wedding install are the same lead

What still breaks after the tags look “clean”

Clean GTM does not fix a counter staff who marks every missed call as a lead. It does not fix a Meta Instant Form that captures a name and a vague “birthday” with no date. It does not fix Performance Max if you feed it the homepage and a mixed conversion. Fewer campaigns and broader targeting only works when the conversion is a real order. Otherwise “run broad” is a slogan that buys the wrong postcode.

Attribution arguments will not go away. Last-click double-counts. In-platform Meta CPA will not match GA4. CM360-style views have been getting noisier. For a florist company in Singapore, the practical answer is a simple business table: spend, qualified consults, paid orders, average order value, contribution after GST and delivery. Use channel reports to decide creative and queries. Use the table to decide whether the month worked.

Do not promise yourself a 4.2x Google ROAS because that is the cross-industry average. Your mix of condolence (high urgency, lower research) and weddings (long cycle, high value) will not average like ecommerce. Give wedding consults 3-6 months of honest tracking before you declare paid “dead.” Same-day can prove itself in days if WhatsApp is logged.

On Meta, creative is effectively your targeting. If CPMs are creeping up while lead volume holds, you are already late to refresh-change the hook before you change the account structure, or you reset the learning phase. On Search, keep keywords for high-intent strings (“same day flower delivery orchard”, “funeral wreath singapore”) even as AI Max and signals take more of the budget. Google still needs those queries. It just punishes you if the landing page and the conversion name are lies.

Prefer to just ask? Message Martin directly on WhatsApp: Chat with us on WhatsApp

What marketing leaders are seeing

A pattern we see repeatedly: a multi-outlet operator told us they had one generate_lead event for everything. Google kept buying S$22 mixed bunches while the wedding diary was empty. Splitting consult_qualified from purchase dropped reported conversions and finally made CPA match the till.

Another pattern we see with independent studios: WhatsApp was 70% of closes and 0% of the Ads account. Once they UTM’d the chat button and only fired value on deposit, Performance Max stopped taking credit for walk-ins.

Why your Google Ads account thinks a $32 bunch and a $3,100 wedding install are the same lead

FAQs

Do florist companies in Singapore need call tracking if most orders are WhatsApp?

Yes, because Google Business Profile and paid search still generate a large share of funeral and same-day calls, especially from older buyers and hotels. Track calls and chats as separate sources, then join them in one order log. If you only track forms, you will under-invest in the channel that actually rings the shop.

Should wedding consults and same-day orders share a Google Ads account conversion?

No. Use two (or three) primary conversions with values that match deposits and paid tickets. You can still run one Performance Max campaign later, but only after the account has distinct signals. Mixing them is how bidding cheapens your mix.

Is last-click useless for florist marketing?

It is a poor CEO answer and a decent tactical check for same-day keywords. Use it to prune junk queries. Do not use it to kill Google Business Profile or branded Search because a wedding closed in WhatsApp two weeks later.

How fast should staff log a lead?

Same-day and funeral: during the call or before the next order, not at closing. Wedding: before the consult slot is offered. If logging waits until night, your bidding data is already a day late and your “lead” may already be a no-show.

Can we skip landing pages and send ads to Instagram?

You can, and you will lose the ability to pass value, test offers, and see form abandon. For paid search especially, send traffic to a page that matches the query, then offer WhatsApp as the closer. “We just send traffic to the homepage” is still a reason to walk away from a media plan.

Putting it to work

Execution sprint

This week

  1. Pull 30-90 days of performance for Singapore florists (Search Console, ads, CRM, or call logs - whatever you have).
  2. Flag the top leak: wrong intent, weak page, slow response, or dirty conversion tracking.
  3. Ship one fix on the highest-traffic money path (page, campaign split, or response rule).
  4. Run the free tools below on that same URL or account and log the findings.

Next 30 days

  1. Expand the fix to the next one or two money paths only after the first one shows cleaner bookings.
  2. Align creative, keywords, or content with the same offer the page now states.
  3. Review booked outcomes weekly; cut anything that still only produces unqualified volume.

This week

  • Pull 60 days of enquiries and mark each as same-day, funeral, wedding, or junk, with SGD value where you have it.

  • Build or fix three UTMs for Search, Meta, and GBP-to-WhatsApp using the UTM link builder.

  • Confirm H1, title, and meta on the same-day and wedding URLs, then run the Core Web Vitals checker on mobile.

  • Create two GA4 events that are not “lead”: purchase and consult_qualified.

  • Add one unique call number or call-only asset to paid search so GBP organic calls are not mixed in.

  • Pause any ad still landing on the generic homepage.

Next 30 days

  • Turn on Enhanced Conversions and pass deposit value from checkout or CRM.

  • Reconcile Ads spend to POS weekly and freeze scaling if they disagree by a wide margin.

  • Write negatives from the actual search terms report, not from a generic florist list.

  • Watch Meta CPMs as the early fatigue signal and refresh creative before volume falls.

  • If DIY stalls, use the free audit as a checkpoint on tracking, not as a slogan.

Start by lining up last month’s WhatsApp deposits against the conversion names in Google Ads. If they do not match, you do not have a media problem yet, you have a lead definition problem. HeyLead can own the Singapore florist tracking layer: splitting same-day, funeral, and wedding signals, wiring UTMs and call paths, and keeping bidding tied to paid orders instead of form spam. Chat with us on WhatsApp

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