From 7a03df946dc86ad2b9cc86947cf61bc74dcfbf3c Mon Sep 17 00:00:00 2001 From: Steve Klebanoff Date: Mon, 3 Dec 2018 16:01:37 -0800 Subject: [PATCH 1/2] feat(instant): Add eth balance, eth address, token symbol and decimals to event properties --- .../instant/src/redux/analytics_middleware.ts | 18 ++++++++++++++---- packages/instant/src/util/analytics.ts | 4 ++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/packages/instant/src/redux/analytics_middleware.ts b/packages/instant/src/redux/analytics_middleware.ts index 47876ca2dc..9a98649f64 100644 --- a/packages/instant/src/redux/analytics_middleware.ts +++ b/packages/instant/src/redux/analytics_middleware.ts @@ -1,10 +1,11 @@ +import { AssetProxyId } from '@0x/types'; import { Web3Wrapper } from '@0x/web3-wrapper'; import * as _ from 'lodash'; import { Middleware } from 'redux'; import { ETH_DECIMALS } from '../constants'; import { AccountState, StandardSlidingPanelContent } from '../types'; -import { analytics } from '../util/analytics'; +import { analytics, AnalyticsEventOptions } from '../util/analytics'; import { Action, ActionTypes } from './actions'; @@ -29,9 +30,11 @@ export const analyticsMiddleware: Middleware = store => next => middlewareAction if (didJustTurnReady) { analytics.trackAccountReady(ethAddress); analytics.addUserProperties({ lastKnownEthAddress: ethAddress }); + analytics.addEventProperties({ ethAddress }); } else if (didJustUpdateAddress) { analytics.trackAccountAddressChanged(ethAddress); analytics.addUserProperties({ lastKnownEthAddress: ethAddress }); + analytics.addEventProperties({ ethAddress }); } } break; @@ -51,7 +54,8 @@ export const analyticsMiddleware: Middleware = store => next => middlewareAction curAccount.ethBalanceInWei, ETH_DECIMALS, ).toString(); - analytics.addUserProperties({ ethBalanceInUnitAmount }); + analytics.addUserProperties({ ethBalanceInUnitAmount}); + analytics.addEventProperties({ ethBalanceInUnitAmount }); } break; case ActionTypes.UPDATE_SELECTED_ASSET: @@ -63,10 +67,16 @@ export const analyticsMiddleware: Middleware = store => next => middlewareAction assetName, assetData, }); - analytics.addEventProperties({ + + const selectedAssetEventProperties: AnalyticsEventOptions = { selectedAssetName: assetName, selectedAssetData: assetData, - }); + }; + if (selectedAsset.metaData.assetProxyId === AssetProxyId.ERC20) { + selectedAssetEventProperties.selectedAssetDecimals = selectedAsset.metaData.decimals; + selectedAssetEventProperties.selectedAssetSymbol = selectedAsset.metaData.symbol; + } + analytics.addEventProperties(selectedAssetEventProperties); } break; case ActionTypes.SET_AVAILABLE_ASSETS: diff --git a/packages/instant/src/util/analytics.ts b/packages/instant/src/util/analytics.ts index e625824ef4..b632e8f1a1 100644 --- a/packages/instant/src/util/analytics.ts +++ b/packages/instant/src/util/analytics.ts @@ -100,6 +100,8 @@ export interface AnalyticsUserOptions { export interface AnalyticsEventOptions { embeddedHost?: string; embeddedUrl?: string; + ethBalanceInUnitAmount?: string; + ethAddress?: string; networkId?: number; providerName?: string; gitSha?: string; @@ -110,7 +112,9 @@ export interface AnalyticsEventOptions { affiliateFeePercent?: number; numberAvailableAssets?: number; selectedAssetName?: string; + selectedAssetSymbol?: string; selectedAssetData?: string; + selectedAssetDecimals?: number; } export enum TokenSelectorClosedVia { ClickedX = 'Clicked X', From 04226106a293f5e716bb3e268e89c7b231da96aa Mon Sep 17 00:00:00 2001 From: Steve Klebanoff Date: Tue, 4 Dec 2018 16:33:49 -0800 Subject: [PATCH 2/2] ethBalanceInUnitAmount -> lastEthBalanceInUnitAmount --- packages/instant/.DS_Store | Bin 0 -> 8196 bytes .../instant/src/redux/analytics_middleware.ts | 2 +- packages/instant/src/util/analytics.ts | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 packages/instant/.DS_Store diff --git a/packages/instant/.DS_Store b/packages/instant/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..9a0cceca6985c3e0107cf63db360ecfb8984114c GIT binary patch literal 8196 zcmeHM-EI;=6h2e1F0@57n%29$G4TQ$NJTD;38ggJ#J`Bq3pMR7tdzR!5*EaY7;bzA zqfg+g_yRtN51`-ti2DQ4cwuauNoKy;-Sf?v^UdroXCWe18@5VB8$@KFa?G!wnN#?6 zUK3?WojC_&;1k`XUAj&8fSUR7QFZ6Ro!X@v;zO7 z0{r=4qH?S%oJtgr4m2VK0H$$T6!eh?2#%?+s&Fb%P%);=9+;vsm0~bS$90pN1FH(B z5+$9Oq!Uw~naWU@@D83S%!ySc>Q*bD6-X+;bN3wW&@I}gyOI3;hywD-+jIS-hUco^VIL6iHT=hUG#j^H=SW$Q6+id@**F{^hm zt5uBYQwv`9sVjOz@ZdAX`YsC&v=YsyEWJaN!{m1$&65xD}u@O z_r%)G-zA7Q!ny$4W9Z{xJ$(4R^1J@I4v~>k&^VzM-<9lDXqL*#9tAzMcR$-bw-XGC z#V>3rl|Hq6+Ay+4b}jp?ap;d418Xo0YF7UVKe}%X4sF$c==<)hZ`qGJ&S*b>e#iF) zR>yPtg4}62FnRj8z7J5_71woug7mDZ$DtIP?&nr(HVI>Yd@l=;(OWXd#>-bxjE`t8bM(jI?Mh0 z>pKhkC!%f+t7KuHc~~I_*vD%1u|Hj4JGrNRa`pRvwm!O}6*w6Rq~tU=c>ce;`1}9K z2u9CRE1(tlBL!Hx-l*3={qd6{J_^sZP1FNaUbx* next => middlewareAction curAccount.ethBalanceInWei, ETH_DECIMALS, ).toString(); - analytics.addUserProperties({ ethBalanceInUnitAmount}); + analytics.addUserProperties({ lastEthBalanceInUnitAmount: ethBalanceInUnitAmount }); analytics.addEventProperties({ ethBalanceInUnitAmount }); } break; diff --git a/packages/instant/src/util/analytics.ts b/packages/instant/src/util/analytics.ts index b632e8f1a1..4bc4e7c6da 100644 --- a/packages/instant/src/util/analytics.ts +++ b/packages/instant/src/util/analytics.ts @@ -95,7 +95,7 @@ const buyQuoteEventProperties = (buyQuote: BuyQuote) => { export interface AnalyticsUserOptions { lastKnownEthAddress?: string; - ethBalanceInUnitAmount?: string; + lastEthBalanceInUnitAmount?: string; } export interface AnalyticsEventOptions { embeddedHost?: string;