18,895 sessions · 100% mobile · half via Instagram (27%) + Facebook (23%) in-app browsers.
Funnel: 3,398 product views → 646 add-to-cart → 294 begin checkout → 1 purchase.
Action Plan
Headline Findings
Traffic sources
Facebook 48% · Instagram 29% · Google 22%. 100% mobile, half of which is Instagram (27%) + Facebook (23%) in-app browsers.
Biggest problem
294 people opened checkout in 15 days, 1 finished. The kill zone is the checkout itself, not the ad or the product page.
Affected ads
All of them — but especially anything pushing IG/FB cold traffic, since those clicks land in in-app browsers where Shopify checkout breaks silently.
Homepage fix
Add an "Open in Safari/Chrome" prompt when the user agent is Instagram or FBAN/FBAV. One detection script, one banner.
Rewrite needed
Yes — the 23% quick-back rate says the ad-to-page promise is mismatched. But fix the in-app-browser leak first; rewriting ads while checkout silently fails just burns more spend.
1. What's breaking on mobile (1,595 dead clicks)
Dead clicks at 8.44% on a 100% mobile audience almost always = interactive-looking elements that don't respond inside Instagram/Facebook in-app browsers.
Cart drawer or "Add to cart" button intermittently no-op'ing
Carousel arrows
Action: open Clarity → Recordings → filter "Dead click" + "Mobile" → watch 5. The dead clicks have coordinates; you'll see the exact element in 10 minutes.
2. Why people leave at Add-to-Cart (646 → 294 = 55% drop)
That's actually normal-ish for cold traffic. The catastrophic drop is 294 → 1 (99.66%) at checkout. Rewriting the AtC button won't fix that.
The real causes of the checkout collapse:
Shipping cost shock — first time users see RM rate is at checkout
In-app browser killing the session — Stripe / iPay88 / payment gateway loses cart cookies in IG webview
Form length — name, email, phone, address, alcohol age confirmation = too many fields on a 5" screen
Apple Pay / Google Pay / Shop Pay disabled — users have to type card numbers on mobile
Bag-page CTA rewrite (action-first, expectation-setting):
Current (likely): CHECKOUT or CHECK OUT
Try: Continue → Pay with Apple Pay or Card (sets the expectation that it's quick + that mobile pay exists)
Or: Reserve my box → with sub-line Free delivery within KL on orders over RM 200 (kills shipping shock pre-checkout)
3. Medium 2.2 ad rewrite
Need the current copy. Paste the ad text (primary, headline, description) and the rewrite will match what people actually see when they land — referencing the bag-page CTA above and following Caketella tone rules in CLAUDE.md (no "alcohol" lead, no discount language, premium + playful).
4. Five mobile fixes — in priority order
Each one's specific. Top two are the unlocks; the rest tighten the kill zone.
1
In-app browser escape hatch. Detect userAgent.includes('Instagram') || userAgent.includes('FBAN') → show a sticky banner: "For a smoother checkout, tap ⋮ → Open in Browser."
This alone could 5–10× the checkout completion rate for the half of traffic stuck in IG/FB.
2
Enable Shop Pay + Apple Pay + Google Pay in Shopify (Settings → Payments → Wallets). One tap, no form. Removes the typing-card-numbers-on-mobile problem entirely. Should be live today.
3
Show shipping cost on the product page, not at checkout. Add a "Delivery from RM X to KL · Free over RM 200" line under the price. Eliminates the cart → checkout shock.
4
Single-page checkout + alcohol age confirmation as a checkbox, not a modal. Inside Shopify: Settings → Checkout → "One-page checkout". Move age confirmation into a single line at the top: ☐ I confirm I am 21+.
5
Trust strip on the checkout page. Three small logos: Stripe / Apple Pay / iPay88 + a line "Trusted by 2,000+ KL gift buyers". Mobile users abandon when they can't tell if a checkout is legit — proof in the kill zone.
What to expect after fixes 1 + 2 ship
After 1 + 2 ship, re-pull Clarity in 7 days. If checkout completion goes from 0.03% → even 0.5%, that's 15× revenue on the same ad spend.