mirror of
https://github.com/velocitatem/PHANTOM.git
synced 2026-05-31 08:33:36 +00:00
event unification
This commit is contained in:
@@ -2,31 +2,46 @@ import { z } from 'zod';
|
|||||||
|
|
||||||
// canonical events for tracking user interactions
|
// canonical events for tracking user interactions
|
||||||
export type EventName =
|
export type EventName =
|
||||||
|
// navigation & discovery
|
||||||
| 'page_view'
|
| 'page_view'
|
||||||
| 'click'
|
| 'view_item_page'
|
||||||
| 'product_view'
|
| 'learn_more_about_item'
|
||||||
| 'product_hover'
|
// cart operations
|
||||||
| 'search'
|
| 'add_item_to_cart'
|
||||||
| 'filter_apply'
|
| 'remove_item'
|
||||||
| 'sort_change'
|
|
||||||
| 'add_to_cart'
|
|
||||||
| 'remove_from_cart'
|
|
||||||
| 'checkout_start'
|
| 'checkout_start'
|
||||||
| 'purchase_complete'
|
| 'purchase_complete'
|
||||||
|
// filtering & search
|
||||||
|
| 'search'
|
||||||
|
| 'filter_for_date'
|
||||||
|
| 'filter_for_amenities'
|
||||||
|
| 'filter_for_price'
|
||||||
|
| 'sort_change'
|
||||||
|
// dwell signals (3s threshold)
|
||||||
|
| 'hover_over_title'
|
||||||
|
| 'hover_over_paragraph'
|
||||||
|
| 'hover_over_link'
|
||||||
|
| 'hover_over_button'
|
||||||
|
// session
|
||||||
| 'session_start';
|
| 'session_start';
|
||||||
|
|
||||||
export const eventNames: readonly EventName[] = [
|
export const eventNames: readonly EventName[] = [
|
||||||
'page_view',
|
'page_view',
|
||||||
'click',
|
'view_item_page',
|
||||||
'product_view',
|
'learn_more_about_item',
|
||||||
'product_hover',
|
'add_item_to_cart',
|
||||||
'search',
|
'remove_item',
|
||||||
'filter_apply',
|
|
||||||
'sort_change',
|
|
||||||
'add_to_cart',
|
|
||||||
'remove_from_cart',
|
|
||||||
'checkout_start',
|
'checkout_start',
|
||||||
'purchase_complete',
|
'purchase_complete',
|
||||||
|
'search',
|
||||||
|
'filter_for_date',
|
||||||
|
'filter_for_amenities',
|
||||||
|
'filter_for_price',
|
||||||
|
'sort_change',
|
||||||
|
'hover_over_title',
|
||||||
|
'hover_over_paragraph',
|
||||||
|
'hover_over_link',
|
||||||
|
'hover_over_button',
|
||||||
'session_start',
|
'session_start',
|
||||||
] as const;
|
] as const;
|
||||||
|
|
||||||
@@ -51,16 +66,21 @@ export const eventBaseSchema = z.object({
|
|||||||
page: z.string().min(1),
|
page: z.string().min(1),
|
||||||
eventName: z.enum([
|
eventName: z.enum([
|
||||||
'page_view',
|
'page_view',
|
||||||
'click',
|
'view_item_page',
|
||||||
'product_view',
|
'learn_more_about_item',
|
||||||
'product_hover',
|
'add_item_to_cart',
|
||||||
'search',
|
'remove_item',
|
||||||
'filter_apply',
|
|
||||||
'sort_change',
|
|
||||||
'add_to_cart',
|
|
||||||
'remove_from_cart',
|
|
||||||
'checkout_start',
|
'checkout_start',
|
||||||
'purchase_complete',
|
'purchase_complete',
|
||||||
|
'search',
|
||||||
|
'filter_for_date',
|
||||||
|
'filter_for_amenities',
|
||||||
|
'filter_for_price',
|
||||||
|
'sort_change',
|
||||||
|
'hover_over_title',
|
||||||
|
'hover_over_paragraph',
|
||||||
|
'hover_over_link',
|
||||||
|
'hover_over_button',
|
||||||
'session_start',
|
'session_start',
|
||||||
]),
|
]),
|
||||||
productId: z.string().optional(),
|
productId: z.string().optional(),
|
||||||
|
|||||||
Reference in New Issue
Block a user