Track numberAvailableAssets, selectedAssetName, selectedAssetData event properties
This commit is contained in:
@@ -131,6 +131,7 @@ export class ZeroExInstantProvider extends React.Component<ZeroExInstantProvider
|
||||
this.props.orderSource,
|
||||
state.providerState,
|
||||
window,
|
||||
state.selectedAsset,
|
||||
this.props.affiliateInfo,
|
||||
),
|
||||
);
|
||||
|
||||
@@ -55,10 +55,25 @@ export const analyticsMiddleware: Middleware = store => next => middlewareAction
|
||||
}
|
||||
break;
|
||||
case ActionTypes.UPDATE_SELECTED_ASSET:
|
||||
if (curState.selectedAsset) {
|
||||
const selectedAsset = curState.selectedAsset;
|
||||
if (selectedAsset) {
|
||||
const assetName = selectedAsset.metaData.name;
|
||||
const assetData = selectedAsset.assetData;
|
||||
analytics.trackTokenSelectorChose({
|
||||
assetName: curState.selectedAsset.metaData.name,
|
||||
assetData: curState.selectedAsset.assetData,
|
||||
assetName,
|
||||
assetData,
|
||||
});
|
||||
analytics.addEventProperties({
|
||||
selectedAssetName: assetName,
|
||||
selectedAssetData: assetData,
|
||||
});
|
||||
}
|
||||
break;
|
||||
case ActionTypes.SET_AVAILABLE_ASSETS:
|
||||
const availableAssets = curState.availableAssets;
|
||||
if (availableAssets) {
|
||||
analytics.addEventProperties({
|
||||
numberAvailableAssets: availableAssets.length,
|
||||
});
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { AffiliateInfo, Network, OrderSource, ProviderState } from '../types';
|
||||
import { AffiliateInfo, Asset, Network, OrderSource, ProviderState } from '../types';
|
||||
|
||||
import { EventProperties, heapUtil } from './heap';
|
||||
|
||||
@@ -25,6 +25,7 @@ enum EventNames {
|
||||
TOKEN_SELECTOR_CHOSE = 'Token Selector - Chose',
|
||||
TOKEN_SELECTOR_SEARCHED = 'Token Selector - Searched',
|
||||
}
|
||||
|
||||
const track = (eventName: EventNames, eventProperties: EventProperties = {}): void => {
|
||||
evaluateIfEnabled(() => {
|
||||
heapUtil.evaluateHeapCall(heap => heap.track(eventName, eventProperties));
|
||||
@@ -56,6 +57,9 @@ export interface AnalyticsEventOptions {
|
||||
orderSource?: string;
|
||||
affiliateAddress?: string;
|
||||
affiliateFeePercent?: number;
|
||||
numberAvailableAssets?: number;
|
||||
selectedAssetName?: string;
|
||||
selectedAssetData?: string;
|
||||
}
|
||||
export enum TokenSelectorClosedVia {
|
||||
ClickedX = 'Clicked X',
|
||||
@@ -77,12 +81,13 @@ export const analytics = {
|
||||
orderSource: OrderSource,
|
||||
providerState: ProviderState,
|
||||
window: Window,
|
||||
selectedAsset?: Asset,
|
||||
affiliateInfo?: AffiliateInfo,
|
||||
): AnalyticsEventOptions => {
|
||||
const affiliateAddress = affiliateInfo ? affiliateInfo.feeRecipient : 'none';
|
||||
const affiliateFeePercent = affiliateInfo ? parseFloat(affiliateInfo.feePercentage.toFixed(4)) : 0;
|
||||
const orderSourceName = typeof orderSource === 'string' ? orderSource : 'provided';
|
||||
return {
|
||||
const eventOptions: AnalyticsEventOptions = {
|
||||
embeddedHost: window.location.host,
|
||||
embeddedUrl: window.location.href,
|
||||
networkId: network,
|
||||
@@ -93,6 +98,13 @@ export const analytics = {
|
||||
affiliateAddress,
|
||||
affiliateFeePercent,
|
||||
};
|
||||
|
||||
if (selectedAsset) {
|
||||
eventOptions.selectedAssetName = selectedAsset.metaData.name;
|
||||
eventOptions.selectedAssetData = selectedAsset.assetData;
|
||||
}
|
||||
|
||||
return eventOptions;
|
||||
},
|
||||
trackInstantOpened: trackingEventFnWithoutPayload(EventNames.INSTANT_OPENED),
|
||||
trackAccountLocked: trackingEventFnWithoutPayload(EventNames.ACCOUNT_LOCKED),
|
||||
|
||||
Reference in New Issue
Block a user