Click event tracking
Analytics.click is a thin wrapper with log_type: 'click' pre-set. When you only need click tracking and not another log_type, prefer it over calling eventLog directly — the intent is immediately clear from the call site.
Minimal call
import { Analytics } from '@apps-in-toss/web-framework';
function SignupButton() {
const handleClick = () => {
Analytics.click({ log_name: 'cta_signup_click', page: 'home' });
};
return (
<button type="button" onClick={handleClick}>
Get started
</button>
);
}
Analytics.click is fire-and-forget. Don't await it if that would block a UI update or navigation.
Reusable <TrackClick> wrapper
When a screen has many tracked buttons, a thin HOC keeps log_name consistent and avoids repeating the same pattern inline.
import { Analytics } from '@apps-in-toss/web-framework';
import { type ReactElement, cloneElement } from 'react';
type Primitive = string | number | boolean | null;
interface TrackClickProps {
logName: string;
params?: Record<string, Primitive>;
children: ReactElement<{ onClick?: React.MouseEventHandler }>;
}
/**
* Intercepts the child's onClick, fires Analytics.click fire-and-forget,
* then calls the original onClick unchanged.
*/
function TrackClick({ logName, params = {}, children }: TrackClickProps) {
const originalOnClick = children.props.onClick;
return cloneElement(children, {
onClick: (e: React.MouseEvent) => {
Analytics.click({ log_name: logName, ...params });
originalOnClick?.(e);
},
});
}
// Usage
function ProductCard({ productId }: { productId: string }) {
return (
<TrackClick logName="product_card_click" params={{ product_id: productId }}>
<button type="button">View product</button>
</TrackClick>
);
}
Keeping log_name consistent
log_name is the key that aggregates events in the dashboard. Renaming it mid-flight breaks historical continuity. Centralise names in a constants file to prevent typos and drift.
// analytics-events.ts
export const Events = {
CTA_SIGNUP_CLICK: 'cta_signup_click',
PRODUCT_CARD_CLICK: 'product_card_click',
PROMO_BANNER_CLICK: 'promo_banner_click',
} as const;
import { Analytics } from '@apps-in-toss/web-framework';
import { Events } from './analytics-events';
Analytics.click({ log_name: Events.PRODUCT_CARD_CLICK, product_id: '123' });
Related APIs
Analytics.click— record a click event.Analytics.screen— record a screen view event.Analytics.impression— record an impression event.- Guides — Event logging patterns — when to use each
log_typeandlog_nameconventions.