frontAnswerer/lib/utils/hooks/metrics/useVkMetricsGoals.ts

52 lines
2.2 KiB
TypeScript
Raw Normal View History

2024-05-06 13:47:19 +00:00
import type { MetricsMessengers } from "@model/metrics";
type MetricsGoal = {
2024-04-22 14:13:43 +00:00
type: "reachGoal";
id: number;
goal: string;
};
2024-05-10 12:06:12 +00:00
type ExtendedWindow = Window & { _tmr?: MetricsGoal[] };
2024-04-22 14:13:43 +00:00
const sendMetrics = (vkPixelId: number | undefined, goal: string) => {
if (vkPixelId) {
2024-05-10 12:06:12 +00:00
(window as ExtendedWindow)._tmr?.push({
2024-04-22 14:13:43 +00:00
type: "reachGoal",
id: vkPixelId,
goal,
});
}
};
2024-05-10 12:48:47 +00:00
export const useVkMetricsGoals = (vkId: number | undefined) => {
2024-04-22 14:13:43 +00:00
return {
// Посетитель открыл квиз
quizOpened: () => sendMetrics(vkId, "penaquiz-start"),
// Посетитель нажал на кнопку стартовой страницы
firstPageOpened: () => sendMetrics(vkId, "penaquiz-startquiz"),
// Посетитель кликнул по номеру телефона на стартовой странице
phoneNumberOpened: () => sendMetrics(vkId, "penaquiz-phone"),
// Посетитель кликнул по email на стартовой странице
emailOpened: () => sendMetrics(vkId, "penaquiz-email"),
// Посетитель увидел определенный результат (id - айдишник вопроса с типом result)
2024-05-11 12:55:58 +00:00
resultIdShown: (resultId: string) =>
2024-05-06 13:47:19 +00:00
sendMetrics(vkId, `penaquiz-result-${resultId}`),
2024-05-11 12:55:58 +00:00
// Посетитель увидел результат
resultShown: () =>
sendMetrics(vkId, `penaquiz-finish`),
2024-05-11 23:54:10 +00:00
// Посетитель нажал на ссылку в результате
resultLink: () =>
sendMetrics(vkId, `penaquiz-resultlink`),
2024-04-22 14:13:43 +00:00
// Посетитель дошёл до формы контактов
contactsFormOpened: () => sendMetrics(vkId, "penaquiz-form"),
// Посетитель заполнил форму контактов
contactsFormFilled: () => sendMetrics(vkId, "penaquiz-contacts"),
// Посетитель отправил заявку с мессенджером
2024-05-06 13:47:19 +00:00
messengerRequestSended: (messenger: MetricsMessengers) =>
sendMetrics(vkId, `penaquiz-messengers-${messenger}`),
2024-04-22 14:13:43 +00:00
// Посетитель прошёл вопрос
questionPassed: (questionId: string) =>
2024-05-06 13:47:19 +00:00
sendMetrics(vkId, `penaquiz-step${questionId}`),
2024-04-22 14:13:43 +00:00
};
};