diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 00000000..56f3ed92 --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1,8 @@ +# Format the world using Prettier and ESLint +f042747aa077cda1a01a2b72ae8178c3ac04416a +e025cf5b6fd6e931ecfd2084d139ab16a467f2a9 +145df870a884d47a6c6c5cfe98c3968d28b54322 +32b45da66948c5f956299282cb81e5f6950143d3 +ed8b21a0bd02de7a01aa3814f4f7443f834d3d71 +15160fe11d7c016eedaf9e1eacd54253ff57a9ba +5dcdb2c56eff6d9527557e30b8d0fd7a4c144ff4 diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index 62fafd75..4581987a 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -16,12 +16,11 @@ jobs: with: node-version: 18 - name: Install dependencies - run: npm ci && npm i --prefix ./test-site + run: npm ci - name: build package run: npm run build - name: Run Playwright tests env: # Refer to: https://github.com/microsoft/playwright/issues/6500#issuecomment-1577221956 HOME: /root - run: npx playwright test - + run: npx playwright test \ No newline at end of file diff --git a/docs/analytics.action.md b/docs/analytics.action.md index 26af108b..49c70921 100644 --- a/docs/analytics.action.md +++ b/docs/analytics.action.md @@ -9,5 +9,5 @@ The action types accepted by the Analytics Events API. Signature: ```typescript -export declare type Action = `C_${string}` | `c_${string}` | 'ADD_TO_CART' | 'ALL_TAB_NAVIGATION' | 'APPLY' | 'AUTO_COMPLETE_SELECTION' | 'BACKWARD_PAGINATE' | 'BOOK' | 'BRAND_ICON' | 'CALL_TO_ACTION' | 'CASE_START' | 'CASE_SUBMITTED' | 'CHAT_IMPRESSION' | 'CHAT_LINK_CLICK' | 'CHAT_RESPONSE' | 'COLLAPSE' | 'DIRECTIONS' | 'EVENT' | 'EXPAND' | 'FEATURED_MESSAGE' | 'FILTERING_WITHIN_SECTION' | 'FORWARD_PAGINATE' | 'HEADER_LINKS' | 'ITEM_IN_LIST' | 'MAP_CARD' | 'MAP_PIN' | 'MENU' | 'MESSAGE' | 'ORDER' | 'PAGINATE' | 'PHONE' | 'POST' | 'PRESET_PROMPT' | 'PRODUCT' | 'PROFILE' | 'QUESTION_FOCUS' | 'QUESTION_SUBMIT' | 'REMOVED_FILTER' | 'REVIEW' | 'SCROLL_TO_BOTTOM_OF_PAGE' | 'SEARCH_BAR_IMPRESSION' | 'SEARCH_CLEAR_BUTTON' | 'THUMBS_DOWN' | 'THUMBS_UP' | 'TICKET_URL' | 'TITLE' | 'VERTICAL_TAB_NAVIGATION' | 'VERTICAL_VIEW_ALL' | 'VOICE_START' | 'VOICE_STOP' | 'WEBSITE'; +export declare type Action = `C_${string}` | `c_${string}` | 'ADD_TO_CART' | 'ALL_TAB_NAVIGATION' | 'APPLY' | 'AUTO_COMPLETE_SELECTION' | 'BACKWARD_PAGINATE' | 'BOOK' | 'BRAND_ICON' | 'CASE_START' | 'CASE_SUBMITTED' | 'CHAT_IMPRESSION' | 'CHAT_LINK_CLICK' | 'CHAT_RESPONSE' | 'COLLAPSE' | 'CTA_CLICK' | 'DRIVING_DIRECTIONS' | 'EVENT' | 'EXPAND' | 'FEATURED_MESSAGE' | 'FILTERING_WITHIN_SECTION' | 'FORWARD_PAGINATE' | 'HEADER_LINKS' | 'ITEM_IN_LIST' | 'MAP_CARD' | 'MAP_PIN' | 'MENU' | 'MESSAGE' | 'ORDER' | 'PAGINATE' | 'POST' | 'PRESET_PROMPT' | 'PRODUCT' | 'PROFILE' | 'QUESTION_FOCUS' | 'QUESTION_SUBMIT' | 'REMOVED_FILTER' | 'REVIEW' | 'SCROLL_TO_BOTTOM_OF_PAGE' | 'SEARCH_BAR_IMPRESSION' | 'SEARCH_CLEAR_BUTTON' | 'TAP_TO_CALL' | 'THUMBS_DOWN' | 'THUMBS_UP' | 'TICKET_URL' | 'TITLE' | 'VERTICAL_TAB_NAVIGATION' | 'VERTICAL_VIEW_ALL' | 'VOICE_START' | 'VOICE_STOP' | 'WEBSITE'; ``` diff --git a/docs/analytics.eventpayload.md b/docs/analytics.eventpayload.md index 1fd4e459..316fd72d 100644 --- a/docs/analytics.eventpayload.md +++ b/docs/analytics.eventpayload.md @@ -33,8 +33,9 @@ export interface EventPayload | [locale?](./analytics.eventpayload.locale.md) | string | (Optional) The locale of the user who generated the event. | | [pageUrl?](./analytics.eventpayload.pageurl.md) | string | (Optional) The URL of the page where the event occurred | | [referrerUrl?](./analytics.eventpayload.referrerurl.md) | string | (Optional) The URL of the page which the visitor came from prior to the event. | -| [search?](./analytics.eventpayload.search.md) | { searchId?: string; queryId?: string; verticalKey?: string; isDirectAnswer?: boolean; versionLabel?: [VersionLabel](./analytics.versionlabel.md); versionNumber?: number; experienceKey: string; } | (Optional) Fields specific to reporting Search Analytics Events | +| [search?](./analytics.eventpayload.search.md) | { searchId?: string; queryId?: string; verticalKey?: string; isDirectAnswer?: boolean; versionLabel?: [VersionLabel](./analytics.versionlabel.md); versionNumber?: number; experienceKey: string; } | (Optional) Fields specific to reporting Yext Search Analytics Events | | [sessionId?](./analytics.eventpayload.sessionid.md) | string \| null | (Optional) Unique identifier to tie together events in a single browsing session | +| [sites?](./analytics.eventpayload.sites.md) | { siteUid?: number; template?: string; } | (Optional) Fields specific to reporting Yext Pages Analytics Events | | [timestamp?](./analytics.eventpayload.timestamp.md) | Date \| string | (Optional) The timestamp at which the event occurred, in ISO format. | | [visitor?](./analytics.eventpayload.visitor.md) | Record<string, string> | (Optional) Information used to associate analytics with a particular user. | diff --git a/docs/analytics.eventpayload.search.md b/docs/analytics.eventpayload.search.md index fde8127b..794abaf3 100644 --- a/docs/analytics.eventpayload.search.md +++ b/docs/analytics.eventpayload.search.md @@ -4,7 +4,7 @@ ## EventPayload.search property -Fields specific to reporting Search Analytics Events +Fields specific to reporting Yext Search Analytics Events Signature: diff --git a/docs/analytics.eventpayload.sites.md b/docs/analytics.eventpayload.sites.md new file mode 100644 index 00000000..dca4a0e4 --- /dev/null +++ b/docs/analytics.eventpayload.sites.md @@ -0,0 +1,16 @@ + + +[Home](./index.md) > [@yext/analytics](./analytics.md) > [EventPayload](./analytics.eventpayload.md) > [sites](./analytics.eventpayload.sites.md) + +## EventPayload.sites property + +Fields specific to reporting Yext Pages Analytics Events + +Signature: + +```typescript +sites?: { + siteUid?: number; + template?: string; + }; +``` diff --git a/etc/analytics.api.md b/etc/analytics.api.md index cf3282ca..477504cd 100644 --- a/etc/analytics.api.md +++ b/etc/analytics.api.md @@ -5,7 +5,7 @@ ```ts // @public -export type Action = `C_${string}` | `c_${string}` | 'ADD_TO_CART' | 'ALL_TAB_NAVIGATION' | 'APPLY' | 'AUTO_COMPLETE_SELECTION' | 'BACKWARD_PAGINATE' | 'BOOK' | 'BRAND_ICON' | 'CALL_TO_ACTION' | 'CASE_START' | 'CASE_SUBMITTED' | 'CHAT_IMPRESSION' | 'CHAT_LINK_CLICK' | 'CHAT_RESPONSE' | 'COLLAPSE' | 'DIRECTIONS' | 'EVENT' | 'EXPAND' | 'FEATURED_MESSAGE' | 'FILTERING_WITHIN_SECTION' | 'FORWARD_PAGINATE' | 'HEADER_LINKS' | 'ITEM_IN_LIST' | 'MAP_CARD' | 'MAP_PIN' | 'MENU' | 'MESSAGE' | 'ORDER' | 'PAGINATE' | 'PHONE' | 'POST' | 'PRESET_PROMPT' | 'PRODUCT' | 'PROFILE' | 'QUESTION_FOCUS' | 'QUESTION_SUBMIT' | 'REMOVED_FILTER' | 'REVIEW' | 'SCROLL_TO_BOTTOM_OF_PAGE' | 'SEARCH_BAR_IMPRESSION' | 'SEARCH_CLEAR_BUTTON' | 'THUMBS_DOWN' | 'THUMBS_UP' | 'TICKET_URL' | 'TITLE' | 'VERTICAL_TAB_NAVIGATION' | 'VERTICAL_VIEW_ALL' | 'VOICE_START' | 'VOICE_STOP' | 'WEBSITE'; +export type Action = `C_${string}` | `c_${string}` | 'ADD_TO_CART' | 'ALL_TAB_NAVIGATION' | 'APPLY' | 'AUTO_COMPLETE_SELECTION' | 'BACKWARD_PAGINATE' | 'BOOK' | 'BRAND_ICON' | 'CASE_START' | 'CASE_SUBMITTED' | 'CHAT_IMPRESSION' | 'CHAT_LINK_CLICK' | 'CHAT_RESPONSE' | 'COLLAPSE' | 'CTA_CLICK' | 'DRIVING_DIRECTIONS' | 'EVENT' | 'EXPAND' | 'FEATURED_MESSAGE' | 'FILTERING_WITHIN_SECTION' | 'FORWARD_PAGINATE' | 'HEADER_LINKS' | 'ITEM_IN_LIST' | 'MAP_CARD' | 'MAP_PIN' | 'MENU' | 'MESSAGE' | 'ORDER' | 'PAGINATE' | 'POST' | 'PRESET_PROMPT' | 'PRODUCT' | 'PROFILE' | 'QUESTION_FOCUS' | 'QUESTION_SUBMIT' | 'REMOVED_FILTER' | 'REVIEW' | 'SCROLL_TO_BOTTOM_OF_PAGE' | 'SEARCH_BAR_IMPRESSION' | 'SEARCH_CLEAR_BUTTON' | 'TAP_TO_CALL' | 'THUMBS_DOWN' | 'THUMBS_UP' | 'TICKET_URL' | 'TITLE' | 'VERTICAL_TAB_NAVIGATION' | 'VERTICAL_VIEW_ALL' | 'VOICE_START' | 'VOICE_STOP' | 'WEBSITE'; // @public export function analytics(config: AnalyticsConfig): AnalyticsEventService; @@ -83,6 +83,10 @@ export interface EventPayload { experienceKey: string; }; sessionId?: string | null; + sites?: { + siteUid?: number; + template?: string; + }; timestamp?: Date | string; visitor?: Record; } diff --git a/package-lock.json b/package-lock.json index dc77825b..305ac5d0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@yext/analytics", - "version": "1.0.0-beta.1", + "version": "1.0.0-beta.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@yext/analytics", - "version": "1.0.0-beta.0", + "version": "1.0.0-beta.2", "license": "BSD-3-Clause", "dependencies": { "ulidx": "^2.0.0" @@ -17541,4 +17541,4 @@ } } } -} \ No newline at end of file +} diff --git a/package.json b/package.json index 61ee7178..dc457209 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@yext/analytics", - "version": "1.0.0-beta.1", + "version": "1.0.0-beta.2", "description": "An analytics library for Yext", "author": "fusion@yext.com", "license": "BSD-3-Clause", diff --git a/playwright.config.ts b/playwright.config.ts index cbacd8c4..72fd510a 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -45,9 +45,10 @@ export default defineConfig({ /* Run your local dev server before starting the tests */ webServer: { - command: 'npm run build && npm run serve', + command: 'npm i && npm run build && npm run serve', cwd: './test-site', port: 3000, - reuseExistingServer: !process.env.CI + reuseExistingServer: !process.env.CI, + stdout: 'pipe' } }); diff --git a/src/Action.ts b/src/Action.ts index 7ea86c4f..900b6a7b 100644 --- a/src/Action.ts +++ b/src/Action.ts @@ -13,14 +13,14 @@ export type Action = | 'BACKWARD_PAGINATE' | 'BOOK' | 'BRAND_ICON' - | 'CALL_TO_ACTION' | 'CASE_START' | 'CASE_SUBMITTED' | 'CHAT_IMPRESSION' | 'CHAT_LINK_CLICK' | 'CHAT_RESPONSE' | 'COLLAPSE' - | 'DIRECTIONS' + | 'CTA_CLICK' + | 'DRIVING_DIRECTIONS' | 'EVENT' | 'EXPAND' | 'FEATURED_MESSAGE' @@ -34,7 +34,6 @@ export type Action = | 'MESSAGE' | 'ORDER' | 'PAGINATE' - | 'PHONE' | 'POST' | 'PRESET_PROMPT' | 'PRODUCT' @@ -46,6 +45,7 @@ export type Action = | 'SCROLL_TO_BOTTOM_OF_PAGE' | 'SEARCH_BAR_IMPRESSION' | 'SEARCH_CLEAR_BUTTON' + | 'TAP_TO_CALL' | 'THUMBS_DOWN' | 'THUMBS_UP' | 'TICKET_URL' diff --git a/src/EventPayload.ts b/src/EventPayload.ts index 847dd48f..c0618ee3 100644 --- a/src/EventPayload.ts +++ b/src/EventPayload.ts @@ -60,7 +60,7 @@ export interface EventPayload { /** The ID of the individual response in which the event occurred. */ responseId?: string; }; - /** Fields specific to reporting Search Analytics Events */ + /** Fields specific to reporting Yext Search Analytics Events */ search?: { /** Unique identifier of the search */ searchId?: string; @@ -78,6 +78,13 @@ export interface EventPayload { /** The identifier of the search experience. */ experienceKey: string; }; + /** Fields specific to reporting Yext Pages Analytics Events */ + sites?: { + /* The UID of the site an event was tied to. */ + siteUid?: number; + /* The ID of the template from which a site was generated. */ + template?: string; + }; /** * When the record summarizes multiple events, the number of events the record represents. * The event is treated as if it is duplicated this many times. diff --git a/test-cdn/index.html b/test-cdn/index.html index 6b86eedc..457a3532 100644 --- a/test-cdn/index.html +++ b/test-cdn/index.html @@ -6,13 +6,14 @@

Analytics Script Tag Integration Test Site

- - - + + + + + +