События в аналитике: почему их нужно называть одинаково?
Открываешь отчёт в аналитике, а там:
buttonClick
click_button
btnClick
clickBtn
button_clik
(да, с опечаткой)🤦♂️ И всё это толькоразные виды кнопок.
Я видел много проектов — и везде одна и та же история: хаос в названиях событий.
Названия событий должны быть:
snake_case
, camelCase
или kebab-case
(и выбрать только один!)clickBtn
btnClick
click_button
onClick_button
click-card
cardClick
card_click
open_popap
pageOpened
goToPage
click_button
click_card
open_popup
submit_form
scroll_to_bottom
start_video
pause_video
add_to_cart
remove_from_cart
purchase_success
login_success
logout
registration_complete
error_validation
click_link
Выберите один стиль — например, snake_case
, и придерживайтесь его всегда.
Можно даже завести словарь или интерфейс в коде.
export const ANALYTICS_EVENTS = {
click_button: 'click_button',
click_card: 'click_card',
open_popup: 'open_popup',
close_popup: 'close_popup',
submit_form: 'submit_form',
start_video: 'start_video',
pause_video: 'pause_video',
add_to_cart: 'add_to_cart',
remove_from_cart: 'remove_from_cart',
purchase_success: 'purchase_success',
login_success: 'login_success',
logout: 'logout',
registration_complete: 'registration_complete',
error_validation: 'error_validation',
click_link: 'click_link',
scroll_to_bottom: 'scroll_to_bottom'
} as const;
export type AnalyticsEvent = keyof typeof ANALYTICS_EVENTS;
export function trackEvent(event: AnalyticsEvent, payload: Record<string, unknown> = {}) {
if (process.env.NODE_ENV === 'development') {
console.log('[Analytics]', event, payload);
}
window.dataLayer?.push({
event: ANALYTICS_EVENTS[event],
...payload
});
}
types.ts
или events.ts
.События аналитики — это такой же API, только для мозга.
Хаос в названиях = хаос в голове.
Стандартизация = понимание, автоматизация и мощная аналитика.
Примите стиль. Следуйте ему. И больше никогда не гадайте, как же назывался тот самый клик
.
📊 А если хотите больше таких практик — читайте мой блог.