Rebuilding the measurement layer for a 300K THB/month paid media account.
J.D. Pools was spending at scale with broken attribution. Arctis Labs refused to touch budget until the data could be trusted — and started by surfacing every leak hidden under the performance headline.
- Monthly paid media under management
- ~300K THB
- Attribution webhooks active at audit
- 0 of 4
- Display traffic bounce rate
- 71.4%
- Meta CPL vs Google CPL (baseline)
- 2.75×
Thailand's only vertically integrated pool company.
J.D. Pools designs, manufactures, installs, and services swimming pools end-to-end — no subcontractors, no finger-pointing. That vertical integration is the company's structural advantage in a fragmented market where most competitors own only one link in the chain.
By 2026 the business was running a nationwide network of 22 branches, preparing for a SET (Stock Exchange of Thailand) listing, and deploying roughly 300,000 THB a month across Google Ads, Google Display, and Meta. The paid media was live. The problem was invisible from the top line.
Spending to scale a funnel no one could measure.
A 300K THB/month account with broken attribution doesn't fail loudly. It fails quietly — by making every optimisation decision a guess and every "good month" unrepeatable. The audit surfaced four compounding problems:
-
Attribution was fiction.
Four webhook scenarios had been built to capture lead source from Google Ads, Meta, LINE, and Call-In. All four were inactive or invalid. Leads landed in the business, but their source was a black box. No channel could be credited, defunded, or defended.
-
Channel economics were wildly uneven.
Over an 11-day audit window, Google Ads delivered a ~546 THB cost per lead on search. Meta delivered ~1,502 THB per pixel-reported lead — roughly 2.75× more expensive — with only 14 leads from 21,000 THB of spend.
-
Display was burning budget.
The Google Display campaign produced a 71.4% bounce rate against an overall site bounce of 58.9%. High reach, low intent, no post-click signal tying it to enquiries.
-
Positioning was underselling the category's structural advantage.
In a category where J.D. Pools is priced higher than competitors, the ad creative was leading with credentials (ISO certification, years in business, branch count) rather than the outcome certainty that justifies the premium. Teams were being asked to win price comparisons they didn't need to be in.
Measurement first. Budget second. Creative third.
The strategic bet: don't scale a leaky funnel. Arctis Labs made an explicit call to hold spend flat while rebuilding the data layer underneath, so every subsequent decision could be defended with a number rather than a hunch.
Repair the attribution layer
Scope the four dead Make.com webhooks, rebuild lead-source capture across Google Ads, Meta, LINE, and Call-In, and validate end-to-end with live leads before trusting any reported CPL again.
Install an operating dashboard
Replace monthly recap decks with a live weekly read — spend, CPL, conversion volume, and channel mix visible in Notion, tied directly to the live Google Ads and Meta data sources.
Diagnose creative with hook-rate framework
Apply the Arctis audit lens — hook rate plotted against cost per result — to separate "good hook, weak value" ads from "bad hook, strong offer" ads. Early read on Meta: hook works, the value articulation underneath doesn't.
Reframe the premium position
Shift messaging from credential recitation to outcome certainty. Working tagline delivered to leadership: "The last pool you'll ever need to build." Premium positioning requires premium promise, not premium proof points.
Visibility before velocity.
These are week-one outcomes — the kind of results that don't show up in an agency pitch deck because they're not revenue numbers. They're the prerequisites that make revenue numbers trustworthy.
Metrics drawn from an 11-day live-data audit window. Full before/after deltas will follow the attribution repair — by design, we don't claim lift until the measurement layer can prove it.
The 90-day read.
The measurement layer is the unlock — not the creative.
Most agencies would have answered a 300K THB/month account with a creative refresh and a scale recommendation. That's the expensive way to repeat the same mistake a larger number of times.
The Arctis play is boring on the surface and structurally decisive underneath: fix the data, earn the right to move budget, then let creative testing compound against a clean baseline. J.D. Pools is the proof that this sequence works on accounts that have never been managed this way.
Running paid media without a measurement layer?
If this case study sounds uncomfortably familiar — the reports look fine, the spend is live, but you can't defend which channel is actually working — that's the engagement we're built for.
Get in touch