frontAnswerer/lib/utils/hooks/metrics/useVkMetricsGoals.ts
2024-05-12 02:54:10 +03:00

52 lines
2.2 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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