Spock analytics SDK analytics-web3
is a Javascript module to collect and log all the data and events of DApp for analytics.
Spock aims to accelerate your growth by tracking & analyzing crucial and opportunity-centric metrics that will help you to amplify your growth and reach to the right customer segment.
Install analytics-web3 sdk by using npm
npm install --save analytics-web3
or yarn
yarn add analytics-web3
Initialize and track wallet connection and transactions by passing web3 provider.
import Web3Analytics from 'analytics-web3';
Web3Analytics.init({ appKey: 'eba6...28c' });
Web3Analytics.walletProvider(window.ethereum);
Web3Analytics must be initialized with appKey
by invoking init method at the top level of application before using other methods.
Web3Analytics.init({ appKey: 'eba6...28c', debug: true });
Value | Type | Description |
---|---|---|
appKey | String |
Unique appKey like eba6...28c for tracking. Can be obtained by getting onboarded in Spock. |
Optional | ||
debug | Boolean |
Defaults to false . Enable consoles for all the tracking events. |
dataPoints | string[] |
By default SDK will track all data points. But you can limit them by passing the desired datapoints. |
inactivityTimeout | number |
Defaults to 30 . This field takes time in mins to specify the inactivity duration in which the session will expires. |
optOut | Boolean |
Defaults to false . Opt users out of tracking. |
testENV | Boolean |
Defaults to false . Enable testing version of SDK in which SDK will interact with testing servers. |
testMode | Boolean |
Defaults to false . Enable testMode in which you can test tracking events without logging data onto server. Inordre to avoid store testing data. |
Pass web3 provider
to track wallet connections for all Supporting Wallets and transactions state that are submitted or rejected from DApp.
Web3Analytics.walletProvider(window.ethereum);
In-case of handling multiple wallets on DApp. Example in React
.
import { useWeb3React } from '@web3-react/core';
const { provider } = useWeb3React();
// in-order to pass updated provider if user changes wallet, account or chain.
useEffect(() => {
if (provider?.provider) {
Web3Analytics.walletProvider(provider.provider);
}
}, [provider]);
Value | Type | Description |
---|---|---|
provider | Web3Provider |
EIP-1193 Standard Provider or Web3Provider-compatible Provider. |
To track other wallets that currently not include in Supporting Wallets.
Web3Analytics.trackWalletConnection('Ledger', '0x...96', 1);
Value | Type | Description |
---|---|---|
walletType | String |
Name of wallet |
account | String |
User ethereum address |
chainId | number |
User connected chainId |
Track all the pages visited on a DApp.
Web3Analytics.trackPageView('/home');
Value | Type | Description |
---|---|---|
pathname | String |
Path of the page. e.g. '/about', '/dashboard/stats' |
search | String |
Query string of the pgae. eg: '?id=ab02' |
Opt user out from tracking.
Web3Analytics.optOutTracking();
Value | Type | Description |
---|---|---|
expiration | number |
Default 365 . Duration in days for which user is opt-out. |
Opt user in tracking.
Web3Analytics.optInTracking();
Value | Type | Description |
---|---|---|
expiration | number |
Default 365 . Duration in days for which user is opt-in. |
Getter method for the status of user tracking consent.
Web3Analytics.hasOptedOutTracking();
Value | Return Type | Description |
---|---|---|
- | Boolean |
Status of user tracking consent. |
For custom on-click implementation of widget button.
Web3Analytics.widgetOnClick(({ campaignId }) => {
if (campaignId === YOUR_CAMPAIGN_ID) {
//do something
}
});
Param | Type | Description |
---|---|---|
campaignId | number |
Unique campaign id belongs to the widget. |
redirectUrl | string / undefined |
Redirect url set on the campaign button click. |
- MetaMask
- WalletConnect
- Coinbase Wallet
- Portis
- Fortmatic
To track wallet not including in the list you can use trackWalletConnection method.
- web3 (Mandatory) - Wallet Address, Chain ID, Wallet Type, Wallet Connection, Max Gas Fee, Quoted Gas Fee, Transaction Hash, Transaction Status, Submitted and Rejected Transaction Count and Failed Transactions.
- web2 - Current URL, Operating System, Browser, Referrer, Device, Referring Domain, Screen Width, Screen height, Search Engine, Page Views, External Links and UTM Params.
- demographics - Country, City and Region.
- engage - Campaign Serving, Campaign Clicks, Click Through Rate (CTR), Transaction Through Rate (TTR), Unique Wallets, Dialogs Served, and Dialogs Closed.
Example code for analytics-web3
integration Spock Analytics Demo
You can use these docs for knowing more about Spock Analytics.
Backed by xord.com