analytics
QUERY = 'contents'; CATEGORY = 'analytics' // 42 rows
An applied measurement
case, every week
Analytics and measurement, developer tools, server-side tracking, AI & LLM integrations: weekly real case analyses.
Dedup in OpenAI Ads: Not Counting the Same Conversion Twice
When the pixel and the Conversions API send the same conversion, double-counting happens. OpenAI Ads deduplicates it with three components: Pixel ID, event name, and event_id, keeping the pixel event_id equal to the server id. This guide shows how to generate a stable event_id, match on both sides, and the common mistakes.
Sending Server-Side Conversions with the Conversions API: An OpenAI Ads Guide
The OpenAI Ads Conversions API sends conversion events server-to-server: a POST to the bzr.openai.com/v1/events endpoint with your Pixel ID and API key. This guide shows the request structure, the event fields and their required rules, the batch behavior, testing with validate_only, and dedup with the pixel.
Setting Up the OpenAI Ads JavaScript Pixel: A Step-by-Step Guide
Setting up the OpenAI Ads pixel takes three steps: add the snippet to the head of every page, pass your Pixel ID with oaiq('init'), and call oaiq('measure') when a conversion happens. This guide shows the install snippet, the init and measure calls, standard and custom event examples, and the testing steps.
OpenAI Ads Measurement Architecture: How the Pixel and Conversions API Work Together
OpenAI Ads conversion measurement rests on two layers: the browser JavaScript pixel and the server-side Conversions API. This post explains what each layer captures, why both are needed, and how they reconcile the same conversion without double-counting, conceptually, without diving into setup steps.
Who Can Access ChatGPT Ads: Geographic Eligibility and Category Restrictions
ChatGPT ads (OpenAI Ads) are open as of June 2026 only to advertisers based in the US, Canada, Australia, and New Zealand. Türkiye is not yet eligible as an advertiser. The business location and category in the Ads Manager form determine eligibility; this post covers who can access it, which categories are excluded, and what can be done from a non-eligible region.
GDPR Compliance: Obligations When Your Tracking Tools Collect Personal Data
Tracking, email and e-commerce infrastructure collects IP, cookie and identity data, so it falls under GDPR. What obligations arise, and what must your systems do?
How to Read and Interpret Heatmaps: Click, Move, and Scroll Maps
Reading a heatmap means interpreting patterns, not colors. I walk through which question each map type answers, what common patterns mean, and when a heatmap misleads you.
When Is Data Studio Pro Worth It? A Scenario-Based Decision Matrix From Solo to Agency, Ecommerce to SaaS
Data Studio Pro offers per-user monthly licensing, a Gemini AI surface, and enterprise management. This article walks through five scenarios (solo freelancer, small agency, scaled agency, in-house ecommerce BI, SaaS embedded analytics) with ROI math, self-host alternatives (Metabase, Superset), and the absolute floor/ceiling trigger metrics that determine each transition.
Data Studio Community Connector: Niche Source Integration with Apps Script
Data Studio Community Connector architecture, the four required Apps Script functions, Head Deployment test flow, versioned production deployment, and the real cost of writing your own connector instead of paying $90/month for Supermetrics.
Data Studio: A 2026 Data Visualization Architecture
On April 10, 2026, Looker Studio officially reverted to the Data Studio name. This article maps out the product separation behind the rename, the Free vs Pro decision framework, the limits of the AI surface (Conversational Analytics + Code Interpreter), and a 2026 reference architecture for solo founders, agencies, and ecommerce teams.
Reading URLs for Tracking: Gateway Design, ITP and Pixel Sandbox
How URL parts (scheme, host, path, query, fragment) impact tracking. Server-side gateway design, first-party context, Safari LTP and Safari 26 AFP, Shopify Custom Pixel sandbox pitfalls.
Tracking Data Between iframe and Parent: postMessage, Consent and Payment Scenarios
Use window.postMessage to move consent, payment and widget events from iframe to parent safely. Origin validation pitfalls, CMP/Stripe/Shopify nuances, race conditions and replay protection.
Behavioral Analytics Guide: From Heatmaps, Session Recording, and Scroll Tracking to Signal-Driven Action
The architecture for answering the 'why did they do it?' question GA4 leaves open, using behavioral signals. A comparison of Hotjar, Microsoft Clarity, and PostHog, plus KVKK risk and an honest assessment of AI session analysis claims.
When MutationObserver Saves Tracking, and When It Breaks It
Lazy-load JS, deferred GTM, Partytown and consent gating each break tracking. When MutationObserver is a useful bridge, when it falls short, and when server-side is the only fix.
Shopify Facebook & Instagram App + Multiple Pixels: The Global Track Bug and Duplicate Events
The Shopify Facebook & Instagram app sends events with `fbq('track', ...)`; if other Pixel IDs are initialized in the page, F&I events leak onto every pixel. Source, diagnosis and three fixes for duplicate events in multi-pixel Shopify setups.