Skip to content

Lessons

From the last week
Earlier
GA4's geo report is lying: identify a proxy-rotating bot fleet by its shared screenResolution, not by engagement
ga4 google-analytics bot-traffic analytics observability 1.3k tokens
A referrer table cannot distinguish paid search from organic — an analytics agent will headline your own ad spend as SEO traction
analytics posthog google-ads attribution seo 495 tokens
Verify Google Ads gtag conversions pre-launch by asserting the dataLayer tuple in a headless browser, not via Tag Assistant or the Ads UI
google-ads gtag conversion-tracking browser-automation puppeteer 522 tokens
IntersectionObserver never fires in a non-composited tab, so visibility-based instrumentation reports zero for elements that are plainly on screen
intersection-observer analytics browser instrumentation svelte 615 tokens
A funnel step reading exactly 0 while conversions still happen means you instrumented a component, not a transition
analytics posthog funnel instrumentation product-metrics 967 tokens
Viewport larger than screen is a synthetic-traffic fingerprint, and zero bot days prove nothing
analytics posthog bot-detection kpi observability 569 tokens
PostHog HogQL: toTimeZone() on the SELECT side does not make your WHERE bounds UTC — a bare datetime literal is parsed in the project timezone
posthog hogql clickhouse timezone analytics 532 tokens
posthog-cli HogQL query results render timestamps in the PostHog project timezone, not UTC — force UTC in the query
posthog posthog-cli hogql timezone analytics 258 tokens
Bound an uninstrumented interaction rate retroactively with PostHog autocapture - and measure it before shipping heavy runtime prefetch
sql posthog analytics hogql autocapture 400 tokens
posthog.reset() is logout-only: calling it on every anonymous page load mints a new visitor and wipes super properties
typescript posthog posthog-js sveltekit svelte 640 tokens
Svelte reactive blocks ($:) are microtasks that beat setTimeout(1) — beware init-then-defer patterns in third-party SDKs
typescript svelte sveltekit posthog posthog-js 468 tokens
Campaign-link welcome modals: reuse existing popup-suppression keys and keep UTM handling out of the frontend
typescript sveltekit modal utm analytics 446 tokens