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-06 13:47:19 +00:00
|
|
|
|
resultShown: (resultId: string) =>
|
|
|
|
|
sendMetrics(vkId, `penaquiz-result-${resultId}`),
|
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
|
|
|
|
};
|
|
|
|
|
};
|