diff --git a/src/Schema/Events/Click.ts b/src/Schema/Events/Click.ts index 56131e5c..d70bf039 100644 --- a/src/Schema/Events/Click.ts +++ b/src/Schema/Events/Click.ts @@ -2698,3 +2698,50 @@ export interface ClickedHeader { context_page_owner_type: PageOwnerType subject: string } + +/** + * User clicks an item within a navigation dropdown on web (desktop or mobile) + * Triggered before navigation to the destination + * Note: Clicks on actual items (e.g., "Banksy"), not category headings (e.g., "Blue-Chip Artists") + * + * This schema describes events sent to Segment from [[ClickedNavigationDropdownItem]] + * + * @example Desktop - clicking "Banksy" from the Blue-Chip Artists group: + * ``` + * { + * action: "click", + * flow: "Header", + * context_module: "HeaderArtworksDropdown", + * context_page_owner_type: "home", + * parent_navigation_item: "Artworks", + * dropdown_group: "Blue-Chip Artists", + * subject: "Banksy", + * destination_path: "/artist/banksy" + * } + * ``` + * + * @example Desktop - clicking "View All Artists": + * ``` + * { + * action: "click", + * flow: "Header", + * context_module: "HeaderArtistsDropdown", + * context_page_owner_type: "home", + * parent_navigation_item: "Artists", + * subject: "View All Artists", + * destination_path: "/artists" + * } + * ``` + */ +export interface ClickedNavigationDropdownItem { + action: "click" + flow: string + context_module: ContextModule + context_page_owner_type: PageOwnerType + context_page_owner_id?: string + context_page_owner_slug?: string + parent_navigation_item: string + dropdown_group?: string + subject: string + destination_path: string +} diff --git a/src/Schema/Events/ImpressionTracking.ts b/src/Schema/Events/ImpressionTracking.ts index 3decdfd6..1b36b725 100644 --- a/src/Schema/Events/ImpressionTracking.ts +++ b/src/Schema/Events/ImpressionTracking.ts @@ -550,3 +550,42 @@ export interface ImmersiveViewArtworkDisplayed { context_page_owner_id?: string artwork_id: string } + +/** + * User views a navigation dropdown on web + * - Desktop: triggered after hovering over a top-level nav item (e.g., "Artists") with delay + * - Mobile web: triggered when drilling down into the navigation menu hierarchy + * + * This schema describes events sent to Segment from [[NavigationDropdownViewed]]. + * + * @example Desktop hover: + * ``` + * { + * action: "navigationDropdownViewed", + * context_module: "header", + * context_page_owner_type: "home", + * navigation_item: "Artists", + * interaction_type: "hover" + * } + * ``` + * + * @example Mobile web drilldown: + * ``` + * { + * action: "navigationDropdownViewed", + * context_module: "header", + * context_page_owner_type: "artist", + * navigation_item: "Artists", + * interaction_type: "drilldown" + * } + * ``` + */ +export interface NavigationDropdownViewed { + action: ActionType.navigationDropdownViewed + context_module: ContextModule + context_page_owner_type: PageOwnerType + context_page_owner_id?: string + context_page_owner_slug?: string + navigation_item: string + interaction_type: "hover" | "drilldown" +} diff --git a/src/Schema/Events/index.ts b/src/Schema/Events/index.ts index 9e5c5e64..aedf222a 100644 --- a/src/Schema/Events/index.ts +++ b/src/Schema/Events/index.ts @@ -187,6 +187,7 @@ import { ImmersiveViewArtworkDisplayed, ImmersiveViewOptionViewed, ItemViewed, + NavigationDropdownViewed, OrderDetailsViewed, OrderProgressionViewed, ProgressiveOnboardingTooltipViewed, @@ -460,6 +461,7 @@ export type Event = | ItemViewed | MaxBidSelected | MyCollectionOnboardingCompleted + | NavigationDropdownViewed | OnboardingUserInputData | OrderDetailsViewed | OrderProgressionViewed @@ -1263,6 +1265,10 @@ export enum ActionType { * Corresponds to {@link MyCollectionOnboardingCompleted} */ myCollectionOnboardingCompleted = "myCollectionOnboardingCompleted", + /** + * Corresponds to {@link NavigationDropdownViewed} + */ + navigationDropdownViewed = "navigationDropdownViewed", /** * Corresponds to {@link OnboardingUserInputData} */