2.2 KiB
Creating Metrics Events
The metricsEvent
method is made available to all components via context. This is done in metamask-extension/ui/app/helpers/higher-order-components/metametrics/metametrics.provider.js
. As such, it can be called in all components by first adding it to the context proptypes:
static contextTypes = {
t: PropTypes.func,
metricsEvent: PropTypes.func,
}
and then accessing it on this.context
.
Below is an example of a metrics event call:
this.context.metricsEvent({
eventOpts: {
category: 'Navigation',
action: 'Main Menu',
name: 'Switched Account',
},
})
Base Schema
Every metricsEvent
call is passed an object that must have an eventOpts
property. This property is an object that itself must have three properties:
- category: categorizes events according to the schema we have set up in our matomo.org instance
- action: usually describes the page on which the event takes place, or sometimes a significant subsections of a page
- name: a very specific descriptor of the event
Implicit properties
All metrics events send the following data when called:
- network
- environmentType
- activeCurrency
- accountType
- numberOfTokens
- numberOfAccounts
- version
These are added to the metrics event via the metametrics provider.
Custom Variables
Metrics events can include custom variables. These are included within the customVariables
property that is a first-level property within first param passed to metricsEvent
.
For example:
this.context.metricsEvent({
eventOpts: {
category: 'Settings',
action: 'Custom RPC',
name: 'Error',
},
customVariables: {
networkId: newRpc,
chainId,
},
})
Custom variables can have custom property names and values can be strings or numbers.
To include a custom variable, there are a set of necessary steps you must take.
- First you must declare a constant equal to the desired name of the custom variable property in
metamask-extension/ui/app/helpers/utils/metametrics.util.js
under//Custom Variable Declarations
- Then you must add that name to the
customVariableNameIdMap
declaration- The id must be between 1 and 5
- There can be no more than 5 custom variables assigned ids on a given url