Masa Analytics React
A customizable, easy-to-use React component for connecting to Masa Analytics, written in TypeScript.
Features
- Easy integration with any React application
- Customizable event handling
- Written in TypeScript for better type safety and developer experience
Events Tracking and Usage
This package provides built-in support for tracking different types of events:
These events can be easily integrated into your application to gather insights about user interactions.
Page Visit Event
firePageViewEvent
function is provided to send a page visit event to your API. It takes the following parameters:
page
: A unique identifier of the page visited.user_address
: The users wallet address.
Usage
import { useMasaAnalyticsReact } from "@masa-finance/analytics-react";
const { firePageViewEvent } = useMasaAnalyticsReact({
clientApp: "My App",
clientName: "My Company Name",
});
const user_address = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
const page = "https://your-site.example.com/page1";
void firePageViewEvent(page, user_address);
Wallet Connect Event
fireConnectWalletEvent
function is provided to send a wallet connect wallet event to your API. It takes the following parameters:
user_address
: The users wallet address.connector
: The users wallet connector. e.g "metamask" "walletconnect"
Usage
import { useMasaAnalyticsReact } from "@masa-finance/analytics-react";
const { fireConnectWalletEvent } =
useMasaAnalyticsReact({
clientApp: 'My App',
clientName: 'My Company Name',
});
const user_address = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
const connector = "metamask"
void fireConnectWalletEvent({ user_address: user_address, connector: connector });
Login Event
fireLoginEvent
function is provided to send a login event to your API. It takes the following parameters:
user_address
: The users wallet address.
Usage
import { useMasaAnalyticsReact } from "@masa-finance/analytics-react";
const { fireLoginEvent } = useMasaAnalyticsReact({
clientApp: "My App",
clientName: "My Company Name",
});
const user_address = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
void fireLoginEvent({ user_address: user_address });
Mint Event
fireMintEvent
function is provided to send a mint event to your API. It takes the following parameters:
user_address
: The users wallet address.network
: The blockchain network of the mint operation.contract_address
: The address of the contract of the mint operation.token_name
: The token name of the contract of the mint operation.ticker
: The ticker of the contract of the mint operation.token_type
: The type of the contract of the mint operation.
Usage
import { useMasaAnalyticsReact } from "@masa-finance/analytics-react";
const { fireMintEvent } = useMasaAnalyticsReact({
clientApp: "My App",
clientName: "My Company Name",
clientId: '1234-5678-9012-4567'
});
const user_address = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
const network = "goerli";
const contract_address = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
const token_name = "My SBT Project";
const ticker = "MSP";
const token_type = "SBT";
void fireMintEvent({
user_address: user_address,
network: network,
contract_address: contract_address,
token_name: token_name,
ticker: ticker,
token_type: token_type
});
Add liquidity Event
fireEvent
function is provided to send a custom event to your API. It takes the following parameters:
user_address
: The users wallet address.network
: The blockchain network of the add liquidity operation.contract_address
: The address of the contract of the add liquidity operation.asset_amount
: The amount of the primary asset being added to the liquidity pool.asset_ticker
: The ticker of the primary asset being added to the liquidiy pool.
Usage
import { useMasaAnalyticsReact } from "@masa-finance/analytics-react";
const { fireEvent } = useMasaAnalyticsReact({
clientApp: "My App",
clientName: "My Company Name",
clientId: '1234-5678-9012-4567'
});
const user_address = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
const network = "goerli";
const contract_address = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
const asset_amount = "1.20";
const asset_ticker = "ETH";
void fireEvent( "addLiquidity" , {
user_address: user_address,
network: network,
contract_address: contract_address,
asset_amount: asset_amount,
asset_ticker: asset_ticker
});
Remove liquidity Event
fireEvent
function is provided to send a custom event to your API. It takes the following parameters:
user_address
: The users wallet address.network
: The blockchain network of the add liquidity operation.contract_address
: The address of the contract of the add liquidity operation.asset_amount
: The amount of the primary asset being added to the liquidity pool.asset_ticker
: The ticker of the primary asset being added to the liquidiy pool.
Usage
import { useMasaAnalyticsReact } from "@masa-finance/analytics-react";
const { fireEvent } = useMasaAnalyticsReact({
clientApp: "My App",
clientName: "My Company Name",
clientId: '1234-5678-9012-4567'
});
const user_address = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
const network = "goerli";
const contract_address = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
const asset_amount = "1.20";
const asset_ticker = "ETH";
void fireEvent( "removeLiquidity" , {
user_address: user_address,
network: network,
contract_address: contract_address,
asset_amount: asset_amount,
asset_ticker: asset_ticker
});
Farm Event
fireEvent
function is provided to send a custom event to your API. It takes the following parameters:
user_address
: The users wallet address.network
: The blockchain network of the farm operation.contract_address
: The address of the contract of the farm operation.asset_amount
: The amount of the primary asset being added to the farming pool.asset_ticker
: The ticker of the primary asset being added to the farming pool.
Usage
import { useMasaAnalyticsReact } from "@masa-finance/analytics-react";
const { fireEvent } = useMasaAnalyticsReact({
clientApp: "My App",
clientName: "My Company Name",
clientId: '1234-5678-9012-4567'
});
const user_address = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
const network = "goerli";
const contract_address = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
const asset_amount = "1.20";
const asset_ticker = "ETH";
void fireEvent( "farm" , {
user_address: user_address,
network: network,
contract_address: contract_address,
asset_amount: asset_amount,
asset_ticker: asset_ticker
});
Swap Event
fireEvent
function is provided to send a custom event to your API. It takes the following parameters:
user_address
: The users wallet address.network
: The blockchain network of the swap operation.contract_address
: The address of the contract of the swap operation.asset_amount
: The amount of the primary asset being swapped.asset_ticker
: The ticker of the primary asset being swapped.
Usage
import { useMasaAnalyticsReact } from "@masa-finance/analytics-react";
const { fireEvent } = useMasaAnalyticsReact({
clientApp: "My App",
clientName: "My Company Name",
clientId: '1234-5678-9012-4567'
});
const user_address = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
const network = "goerli";
const contract_address = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
const asset_amount = "1.20";
const asset_ticker = "ETH";
void fireEvent( "swap" , {
user_address: user_address,
network: network,
contract_address: contract_address,
asset_amount: asset_amount,
asset_ticker: asset_ticker
});
Bridge Event
fireEvent
function is provided to send a custom event to your API. It takes the following parameters:
user_address
: The users wallet address.network
: The blockchain network of the bridge operation.contract_address
: The address of the contract of the bridge operation.asset_amount
: The amount of the primary asset being bridged.asset_ticker
: The ticker of the primary asset being bridged.
Usage
import { useMasaAnalyticsReact } from "@masa-finance/analytics-react";
const { fireEvent } = useMasaAnalyticsReact({
clientApp: "My App",
clientName: "My Company Name",
clientId: '1234-5678-9012-4567'
});
const user_address = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
const network = "goerli";
const contract_address = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
const asset_amount = "1.20";
const asset_ticker = "ETH";
void fireEvent( "bridge" , {
user_address: user_address,
network: network,
contract_address: contract_address,
asset_amount: asset_amount,
asset_ticker: asset_ticker
});
Trade Event
fireEvent
function is provided to send a custom event to your API. It takes the following parameters:
user_address
: The users wallet address.network
: The blockchain network of the trade operation.contract_address
: The address of the contract of the trade operation.asset_amount
: The amount of the primary asset being traded.asset_ticker
: The ticker of the primary asset being traded.
Usage
import { useMasaAnalyticsReact } from "@masa-finance/analytics-react";
const { fireEvent } = useMasaAnalyticsReact({
clientApp: "My App",
clientName: "My Company Name",
clientId: '1234-5678-9012-4567'
});
const user_address = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
const network = "goerli";
const contract_address = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
const asset_amount = "1.20";
const asset_ticker = "ETH";
void fireEvent( "trade" , {
user_address: user_address,
network: network,
contract_address: contract_address,
asset_amount: asset_amount,
asset_ticker: asset_ticker
});
Claim Event
fireEvent
function is provided to send a custom event to your API. It takes the following parameters:
user_address
: The users wallet address.network
: The blockchain network of the claim operation.contract_address
: The address of the contract of the claim operation.asset_amount
: The amount of the asset being claimed.asset_ticker
: The ticker of the asset being claimed.
Usage
import { useMasaAnalyticsReact } from "@masa-finance/analytics-react";
const { fireEvent } = useMasaAnalyticsReact({
clientApp: "My App",
clientName: "My Company Name",
clientId: '1234-5678-9012-4567'
});
const user_address = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
const network = "goerli";
const contract_address = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
const asset_amount = "1.20";
const asset_ticker = "ETH";
void fireEvent( "claim" , {
user_address: user_address,
network: network,
contract_address: contract_address,
asset_amount: asset_amount,
asset_ticker: asset_ticker
});
Extending to Include Additional Event Data
You can extend the tracking function to collect additional event data using the additionalEventData
field as shown in this example. In this example we want to track and log the transaction hash and the protocol fee for making the swap so we can track swap revenue in Masa Analytics. additionalEventData
can take any information you want to add for future reference or running custom analytics with Masa.
import { useMasaAnalyticsReact } from "@masa-finance/analytics-react";
const { fireEvent } = useMasaAnalyticsReact({
clientApp: "My App",
clientName: "My Company Name",
clientId: '1234-5678-9012-4567'
});
const user_address = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
const network = "goerli";
const contract_address = "0x742d35Cc6634C0532925a3b844Bc454e4438f44e";
const asset_amount = "1.20";
const asset_ticker = "ETH";
void fireEvent( "swap" , {
user_address: user_address,
network: network,
contract_address: contract_address,
asset_amount: asset_amount,
asset_ticker: asset_ticker,
additionalEventData: {
transactionHash: "0x83138032f1e7bee64fccd15bbed403f6b875c47641f6b203cd59dfa9b7cf1b4a",
fee: "0.12",
fee_asset: "ETH"
}
});
These events can be used to monitor user interactions with your website and app, helping you make data-driven decisions and improve the user experience.
Installation
You can install the @masa-finance/analytics-react
package using either npm or yarn:
Using npm
npm install @masa-finance/analytics-react
Using yarn
yarn add @masa-finance/analytics-react
Publishing to npm
Before publishing to npm, ensure that you have all the required dependencies installed:
npm install
Next, build the package:
npm run build
Now, you should see a dist
folder containing the compiled JavaScript files.
To publish the package to npm, first log in to your npm account using the command line:
npm login
Enter your username, password, and email when prompted.
Finally, publish the package:
npm publish
Your package is now published to npm and can be installed and used in other projects.
Contributing
We welcome contributions from the community! If you'd like to contribute to this project, please follow these steps:
- Fork the repository.
- Create a branch with a descriptive name related to the issue or feature you're working on.
- Make your changes and commit them with clear and concise commit messages.
- Create a pull request, explaining the changes you made and their purpose.
For bug reports and feature requests, please create an issue on GitHub.
License
analytics-react
is released under the MIT License.