GA dataLayer diagnostic

Phase 1 of the measurement-integrity plan. Reads state only, changes nothing.

Probes fired

How to read it

  1. In the first snapshot, note where jlp_diag_array sits relative to the js and config entries. If our event is at a lower index than config, it was queued before the property was configured.
  2. Open GA4 → Admin → DebugView (or the Realtime report) and note which of the three probe names arrive.
jlp_diag_real_trackevent arrivesTHE FIX WORKS. Cold-load events now reach GA4 through the real trackEvent(), which is the same path `purchase` uses. Mark purchase as a Key Event once a real booking confirms it.
jlp_diag_real_trackevent missing, jlp_diag_seeded arrivesSeeding works in principle but the shipped sendToGa is not doing it correctly. Bug is in src/lib/analytics.ts, not in the theory.
jlp_diag_array arrivesUnexpected — the old broken path now works, so something else changed. Re-check before trusting any of this.
jlp_diag_late also missingNothing transmitted at all. Check the red banner above: this browser or network is not reaching GA4.

These probe events are named jlp_diag_* so they are distinguishable in GA4, and they are not in the analytics sync whitelist, so they never reach Neon. Delete this page once the cause is confirmed.