86fc8b62e5
* Add pnpm-workspace.yaml * Add missing dependencies & replace file: with workspace:* in package.json * Replace "npm" with "pnpm" * Replace "npx" with "pnpx" * Remove package-lock.json * Add pnpm setup action to github workflows * Update webpack babel exclude path * Upgrade woo e2e and fix e2e test command Update e2e.yml Use pnpm run e2e:docker-up in e2e.yml * Remove unused docker-compose.yaml * Replace lerna with pnpm commands Update publish commands * Exclude _locutus_shared_bc.js in babel.config.js * Add .npmrc to set enable-pre-post-scripts=true by default * Fix storybook babel config Update babel.config.js * Add changelog * Update pnpm-lock.yaml * Replace pnpx with pnpm exec * Update pnpm-lock.yaml * Remove js-tests/package-lock.json * Fix @woocommerce/tracks -> workspace:* * Update pnpm-lock.yaml * Add @woocommerce/experimental to onboarding/package.json * Add "@woocommerce/component" to onboarding/package.json * Update pnpm-lock.yaml * Use || instead of && for "test:watch" Co-authored-by: RJ <27843274+rjchow@users.noreply.github.com> * Fix packages/number "clean" command * Add root: true to .eslintrc.js to enforce it to use the root config file * Exclude packages/**/node_modules from babel transpiling * Fix js-tests build config Co-authored-by: RJ <27843274+rjchow@users.noreply.github.com> |
||
---|---|---|
.. | ||
src | ||
.npmrc | ||
CHANGELOG.md | ||
README.md | ||
package.json | ||
tsconfig-cjs.json | ||
tsconfig.json |
README.md
Tracks
WooCommerce user event tracking utilities for Automattic based projects.
Installation
Install the module
pnpm install @woocommerce/tracks --save
Usage
The store must opt-in to allow tracking via the woocommerce_allow_tracking
setting.
If the store is not opted-in no events be recorded when using the following functions.
recordEvent( eventName, eventProperties )
Record a user event to Tracks.
import { recordEvent } from '@woocommerce/tracks';
recordEvent( 'page_view', { path } )
Param | Type | Description |
---|---|---|
eventName | String |
The name of the event to record, don't include the wcadmin_ prefix |
eventProperties | Object |
Event properties to include in the event |
queueRecordEvent( eventName, eventProperties )
Queue a tracks event.
This allows you to delay tracks events that would otherwise cause a race condition.
For example, when we trigger wcadmin_tasklist_appearance_continue_setup
we're simultaneously moving the user to a new page via
window.location
. This is an example of a race condition that should be avoided by enqueueing the event,
and therefore running it on the next pageview.
Param | Type | Description |
---|---|---|
eventName | String |
The name of the event to record, don't include the wcadmin_ prefix |
eventProperties | Object |
Event properties to include in the event |
recordPageView( eventName, eventProperties )
Record a page view to Tracks.
Param | Type | Description |
---|---|---|
path | String |
Path the page/path to record a page view for |
extraProperties | Object |
Extra event properties to include in the event |
Debugging
When debugging is activated info for each recorded Tracks event is logged to the browser console.
To activate, open up your browser console and add this:
localStorage.setItem( 'debug', 'wc-admin:*' );