Monitor and troubleshoot
Check your conversion tracking health inside OpenCourt and fix the most common problems — missing test events, failing sends, and numbers that look off.
Everything you need to keep conversion tracking healthy lives inside OpenCourt — no log-diving in Meta or Google required.
Your dashboard in OpenCourt
Open Admin → Settings → Ad and Conversion Tracking. Each connected provider has a health card showing:
- Sent / Failed (7d) — how many events went out and how many failed over the last 7 days.
- Last sent — when the most recent event went out.
- A red "Sending is failing" banner when recent sends are failing — this is your one signal that something needs attention. No banner, and Sent is climbing? You're healthy.
Below that, the Recent conversion events table lists every event OpenCourt captured. Click any row to open a detail slideout with the exact request and response payload and a Copy button.

Status glossary
| Status | Meaning |
|---|---|
| Sent | The event was delivered and the platform accepted it. |
| Failed | Delivery was attempted but the platform rejected it — see the slideout for the response. |
| Not sending yet | The event was captured but not sent yet. This is normal, not an error — it's expected until your Conversions API token is live. Once your token is saved and working, new events send for real. |
Symptom → fix
Test events don't appear in Meta
Meta's Test Events tab is a live listener — open it first, keep it open, then send, and allow up to a minute. And the test code in OpenCourt must match the one in Meta's tab exactly — a wrong code still reports "Sent" but lands the events in a bucket you can't see. Full walkthrough: Send a test event.
The red "Sending is failing" banner is up
Your Conversions API token was most likely revoked or is invalid. Generate a new token in Meta and paste it into OpenCourt — the steps are in Set up Meta conversion tracking. Check the failing rows' slideouts to confirm the platform's error response.
A Custom Conversion stopped counting bookings
Court, bay and lane bookings used to report as content_category event. They now report as space,
and the old court value is gone. If you built a Custom Conversion on content_category equals event, it
still counts league, clinic, tournament and open-play registrations — but no longer counts bookings. Add a
second Custom Conversion on content_category equals space to count them again. If you want one
conversion covering both, build the rule so it matches event or space — not a rule that requires
both, which nothing can satisfy. The recipe is in
Understand your conversion data.
Expect a step change in volume around the release date. That is the rename, not a drop in real bookings.
Google Ads: bookings stopped uploading
Different symptom, worse outcome. Google Ads credits a sale to the conversion action you mapped against its
order type. If your map still has a court row, nothing will ever match it — move that resource name to the
space row in Settings → Ad and Conversion Tracking → Google Ads. And make sure the default row is
filled: an order type with no mapping, and any charge OpenCourt cannot classify, falls back to default.
With default empty those conversions are never uploaded, and no error is shown.
A sale is missing
Was it rung up by staff at the front desk (an admin or POS sale)? Those are excluded by design — ad platforms only need the sales your ads could have driven, and a front-desk sale isn't one. See What OpenCourt sends — and what it never sends.
Two events for one membership sale
Expected. A new membership fires Purchase + Subscribe — Meta uses one for revenue and one for subscription optimization. See Understand your conversion data.
Value looks lower than the price
Also by design: OpenCourt reports net cash captured, not the list price. Discounts, credits, and partial payments all reduce the reported value — so your ad platforms optimize toward real revenue. See What OpenCourt sends — and what it never sends.
Reported revenue is higher than what you actually kept
Refunds are not reversed. When you refund a booking or a membership, the original purchase stays in Meta and Google as reported revenue. Clubs that refund often will see ad-platform revenue — and return on ad spend — read better than reality. Always reconcile against OpenCourt's own reports. See What OpenCourt sends — and what it never sends.
A free booking or registration is missing
Expected. A sale that captures $0 — fully covered by a pass, account credit, or a 100% promo code, or a free event — sends no event at all. If a campaign's goal is free signups, talk to your OpenCourt contact before you launch.
A sale from the app isn't credited to an ad
In-app purchases are reported server-side, so the revenue arrives — but the browser pixel does not run inside the OpenCourt app, so those sales often land without a link to a specific ad. Send your ad traffic to the web booking pages instead. See Purchases made in the OpenCourt app.
Understand your conversion data in Meta
How to read OpenCourt's Purchase and Subscribe events in Meta, break out sale types with content_category, and set realistic attribution expectations.
How access controls work in OpenCourt (overview)
How OpenCourt connects to your club's smart locks for per-booking door codes and in-app unlocking — and how to choose between Seam, RemoteLock, Rhombus, and UniFi Access.