Bangkok.Digital Free CRO Audit
// 04 · INSIGHTS

Practitioner-grade CRO
and analytics research.

Working code, real datasets, statistical methods that hold up. We publish what we'd want our junior analysts to read.

// FEATURED · ATTRIBUTION · 2026-04-18 · 24 min read

Markov Attribution in BigQuery: A Working Example

Step-by-step Markov-chain attribution model in BigQuery SQL using real anonymized data. With removal-effect calculation, channel grouping, and quarterly retraining script.

Tags: attribution bigquery markov
// EXPERIMENTATION · 2026-03-25 · 14 min read

Stop Peeking: Sequential Testing for Real Experimentation

Why fixed-horizon A/B tests inflate false positive rates by 5-15x. With Python implementations of mSPRT and Always Valid Inference.

Tags: statistics ab-testing sprt
// ANALYTICS · 2026-02-14 · 12 min read

GA4 Server-Side on Cloudflare Workers

Cost notes (~฿8K/mo), latency profile, deployment scripts. Cheaper than Cloud Run for most Thai-traffic sites.

Tags: ga4 server-side cloudflare
// THAI MARKET · 2026-01-22 · 16 min read

Thai Checkout Patterns: PromptPay · LINE Pay · TrueMoney

Conversion patterns for Thai payment methods from scraped data across 200+ TH e-commerce sites. Defaults, ordering, copy patterns that work.

Tags: thai-market checkout-ux payments
// COMPLIANCE · 2025-12-15 · 13 min read

PDPA Thailand for Analytics: What You Actually Need

Most Bangkok agencies still ignore PDPA. We walk through what's required, what's optional, what's overkill — with sample consent strings.

Tags: pdpa thailand privacy
// FEATURED EXTRACT

Markov attribution — the 5-step recipe

1. Build the path. Aggregate all touchpoints per converting + non-converting user from GA4 raw export in BigQuery. Order by timestamp. Include non-converting paths — they're load-bearing for the math.

2. Build the transition matrix. Compute P(channel_j | channel_i) for every pair, including a special start and conversion node.

3. Compute removal effect. For each channel, recompute conversion probability with that channel's transitions zeroed. The drop in conversion probability is the channel's true attribution weight.

4. Normalize and reallocate. Sum removal effects to 1. Multiply by total conversions. That's your data-driven channel attribution.

5. Retrain quarterly. Channel mix and seasonality drift. A 12-month-old model is just a guess.

Subscribe — analytics deep-dives.

~1 long-form per month. With code.

💬 LINE