Analytics funnel counts booking-flow friction events as real CTA engagement #4
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The Overview panel's
CTA clicks (7/30 days)stat and the Funnel'sClicked a CTAstage (AnalyticsOverview/AnalyticsFunnelininternal/storage/storage.go) count everycta_clickrow regardless of name — including booking-flow friction events (booking-reschedule-link-expired,booking-availability-load-error,booking-slot-conflict,booking-submit-error) fired bytrackBookingEdgeinbooking-form.js. An expired link or a slot conflict isn't real engagement, so these numbers currently overstate it.The admin panel's
What "Clicked a CTA" is made of (30 days)table (admin-analytics.js) already lists these distinctly from realdata-track-ctaclicks — the breakdown exists, the aggregate stats just don't use it.Fix, once the breakdown shows this is actually noisy in practice: exclude
booking-*-prefixed event names fromanalyticsOverviewStmt's CTA-click sum andanalyticsFunnelStmt's engaged-session count — or, more robustly, giveanalytics_eventsa real boolean/column distinguishing "real interaction" from "operational/friction event" instead of relying on a naming-convention prefix (nothing stops a future real CTA id from starting withbooking-).See
docs/future_additions.md("Analytics Funnel Purity").