mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
Use Segment for web3 usage metrics; fix background Segment bugs (#9525)
* Use segment for window.web3 usage metrics * Add Segment referrer information * Fix track segment event bug * Fix missing category bug in tx segment event Co-authored-by: Mark Stacey <markjstacey@gmail.com>
This commit is contained in:
parent
a301ce92d8
commit
7870d6d194
@ -861,6 +861,7 @@ export default class TransactionController extends EventEmitter {
|
|||||||
|
|
||||||
this._trackSegmentEvent({
|
this._trackSegmentEvent({
|
||||||
event: 'Swap Completed',
|
event: 'Swap Completed',
|
||||||
|
category: 'swaps',
|
||||||
properties: {
|
properties: {
|
||||||
...txMeta.swapMetaData,
|
...txMeta.swapMetaData,
|
||||||
token_to_amount_received: tokensReceived,
|
token_to_amount_received: tokensReceived,
|
||||||
|
@ -45,10 +45,12 @@ function logWeb3UsageHandler (
|
|||||||
}
|
}
|
||||||
if (!recordedWeb3Usage[origin][name]) {
|
if (!recordedWeb3Usage[origin][name]) {
|
||||||
recordedWeb3Usage[origin][name] = true
|
recordedWeb3Usage[origin][name] = true
|
||||||
|
|
||||||
sendMetrics({
|
sendMetrics({
|
||||||
action,
|
event: `Website Accessed window.web3`,
|
||||||
name,
|
category: 'inpage_provider',
|
||||||
customVariables: { origin },
|
properties: { action, web3Property: name },
|
||||||
|
referrerUrl: origin,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,6 +64,7 @@ export function getTrackSegmentEvent (
|
|||||||
* @param {string} event - The event name.
|
* @param {string} event - The event name.
|
||||||
* @param {string} category - The event category.
|
* @param {string} category - The event category.
|
||||||
* @param {Object} [properties] - The event properties.
|
* @param {Object} [properties] - The event properties.
|
||||||
|
* @param {string} [referrerUrl] - The event's referrer URL, if relevant.
|
||||||
* @param {boolean} [excludeMetaMetricsId] - `true` if the user's MetaMetrics id should
|
* @param {boolean} [excludeMetaMetricsId] - `true` if the user's MetaMetrics id should
|
||||||
* not be included, and `false` otherwise. Default: `true`
|
* not be included, and `false` otherwise. Default: `true`
|
||||||
*/
|
*/
|
||||||
@ -72,6 +73,7 @@ export function getTrackSegmentEvent (
|
|||||||
category,
|
category,
|
||||||
properties = {},
|
properties = {},
|
||||||
excludeMetaMetricsId = true,
|
excludeMetaMetricsId = true,
|
||||||
|
referrerUrl,
|
||||||
}) {
|
}) {
|
||||||
if (!event || !category) {
|
if (!event || !category) {
|
||||||
throw new Error('Must specify event and category.')
|
throw new Error('Must specify event and category.')
|
||||||
@ -99,6 +101,12 @@ export function getTrackSegmentEvent (
|
|||||||
trackOptions.userId = metaMetricsId
|
trackOptions.userId = metaMetricsId
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (referrerUrl) {
|
||||||
|
trackOptions.context.referrer = {
|
||||||
|
url: referrerUrl,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
segment.track(trackOptions)
|
segment.track(trackOptions)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ export default function setupWeb3 (log) {
|
|||||||
const name = stringifyKey(key)
|
const name = stringifyKey(key)
|
||||||
window.ethereum.request({
|
window.ethereum.request({
|
||||||
method: 'metamask_logInjectedWeb3Usage',
|
method: 'metamask_logInjectedWeb3Usage',
|
||||||
params: [{ action: 'window.web3 get', name }],
|
params: [{ action: 'get', name }],
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ export default function setupWeb3 (log) {
|
|||||||
if (shouldLogUsage) {
|
if (shouldLogUsage) {
|
||||||
window.ethereum.request({
|
window.ethereum.request({
|
||||||
method: 'metamask_logInjectedWeb3Usage',
|
method: 'metamask_logInjectedWeb3Usage',
|
||||||
params: [{ action: 'window.web3 set', name }],
|
params: [{ action: 'set', name }],
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -123,7 +123,7 @@ export default class MetamaskController extends EventEmitter {
|
|||||||
const {
|
const {
|
||||||
currentLocale,
|
currentLocale,
|
||||||
metaMetricsId,
|
metaMetricsId,
|
||||||
} = this.preferencesController.getState()
|
} = this.preferencesController.store.getState()
|
||||||
return { currentLocale, metaMetricsId }
|
return { currentLocale, metaMetricsId }
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
@ -1672,7 +1672,7 @@ export default class MetamaskController extends EventEmitter {
|
|||||||
}))
|
}))
|
||||||
engine.push(createMethodMiddleware({
|
engine.push(createMethodMiddleware({
|
||||||
origin,
|
origin,
|
||||||
sendMetrics: this.sendBackgroundMetaMetrics.bind(this),
|
sendMetrics: this.trackSegmentEvent,
|
||||||
}))
|
}))
|
||||||
// filter and subscription polyfills
|
// filter and subscription polyfills
|
||||||
engine.push(filterMiddleware)
|
engine.push(filterMiddleware)
|
||||||
|
Loading…
Reference in New Issue
Block a user