The journal

Ad problems we solved,
written down.

Real fixes from real ad accounts: tracking, attribution and conversion APIs. No theory, only what we built and what broke.

Guide

Track Boulevard bookings in Meta, Google & TikTok: the full guide

The complete build: click capture, Boulevard webhooks, revenue from GraphQL, and Conversions APIs for Meta, Google, TikTok, Snapchat and Nextdoor.

Tracking

Why Facebook ads show 0 bookings with Boulevard

Your calendar is full but Ads Manager shows nothing. Here's why Boulevard bookings stay invisible to the pixel, and how to fix it.

Technical

The iframe problem: tracking Boulevard bookings

window.blvd has no .on(), the iframe sends no booking messages, and the widget preloads on every page. What we tried and what works.

Case study

Case study: our match-by-IP attribution bug

Perfect in solo tests, wrong on 35 of 43 real bookings. How a recency guess corrupted our ad signals, and how we fixed it.

Technical

Google Ads click conversions: gbraid errors & silent failures

HTTP 200, nothing recorded. How to catch partialFailureError, fix the BRAID counting error and stop uploading conversions Google can't use.

Technical

TikTok Events API for bookings: events, errors & hashing

SubmitForm is now Lead, CompletePayment is now Purchase, and HTTP 200 doesn't mean TikTok accepted your event. What we learned sending bookings.

Technical

Snapchat & Nextdoor conversion tracking for local businesses

RESERVE is report-only on Snapchat web campaigns, Nextdoor needs ndclid and data_source_id. How we send bookings to both, server-side.

Technical

Looker Studio ROAS dashboard: fixing Data Set Configuration Error

Blends that throw Data Set Configuration Error, new columns that break charts, rows that silently vanish. How we built a dashboard that holds.

Technical

Boulevard Admin API authentication, explained

Payload, HMAC with a base64-decoded secret, token with no separator, Basic header. The exact steps and code that work.

Technical

Verifying Boulevard webhooks in a Cloudflare Worker

x-blvd-hmac-salt, x-blvd-hmac-sha256, PING events and the seconds you have to reply. Working Worker code and the traps.

Technical

Real revenue from Boulevard GraphQL: Order, OrderSummary, cents

No total field, amounts in cents, orderId null at booking. The queries and math we use to send real revenue to ad platforms.

Technical

Custom Boulevard booking flow for exact attribution: a planning guide

In our proof of concept, the appointment ID at checkout matched the webhook exactly. Here's the plan to get 100% deterministic attribution.

Tracking

TikTok campaign failing, or tracking broken? A 10-minute check

Five checks you can do yourself before deciding TikTok doesn't work for your business. Most 'failing' campaigns we audit are measurement problems.

Tracking

Pixel vs Conversions API, explained for salon owners

The pixel watches your website. The Conversions API reports from your systems. Why salons with booking widgets need both, in plain language.

Tracking

Platform results vs real bookings: which numbers to trust

Every platform claims credit, the total beats your calendar, and none of them is lying. How to build one number you can make decisions on.

Strategy

Custom tracking or platform numbers? An honest cost/benefit

We build this for clients, and we still tell some of them not to. How to decide whether custom tracking pays off for one salon.

Tracking

GA4 cross-domain tracking with a booking engine

Bookings credited to your own booking engine instead of your ads? The fix was one empty list in GA4's tag settings, plus three checks.

Tracking

Meta pixel events missing for clinics: health restrictions

Your pixel fires, but Meta shows no leads or bookings? Meta may be restricting your data as health and wellness. How to check in 2 minutes.

Tracking

Wix + Google Tag Manager duplicate events, fixed

Wix pushes its own events into the data layer, and tracking the same conversion twice doubles it. How to find duplicates and keep one source.

Tracking

CallRail calls not showing in Google Ads: the checklist

Visitor tracking, a conversion action that must be named 'Phone Call', duplicates from call extensions. The checklist for CallRail and Google Ads.

Free ad audit

Tell us the problem.
We'll fix it.