GA dataLayer diagnostic
Phase 1 of the measurement-integrity plan. Reads state only, changes nothing.
Probes fired
How to read it
- In the first snapshot, note where
jlp_diag_arraysits relative to thejsandconfigentries. If our event is at a lower index thanconfig, it was queued before the property was configured. - Open GA4 → Admin → DebugView (or the Realtime report) and note which of the three probe names arrive.
| jlp_diag_real_trackevent arrives | THE 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 arrives | Seeding 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 arrives | Unexpected — the old broken path now works, so something else changed. Re-check before trusting any of this. |
| jlp_diag_late also missing | Nothing 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.