From c91fce6e8be00da4bff140066bf9ef0aafc9df67 Mon Sep 17 00:00:00 2001 From: kazachilo Date: Fri, 28 Mar 2025 13:36:49 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=20=D1=81?= =?UTF-8?q?=D0=BF=D0=BE=D1=81=D0=BE=D0=B1=20=D0=BE=D1=82=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BA=D0=B8=20=D1=86=D0=B5=D0=BB=D0=B5=D0=B2=D1=8B=D1=85?= =?UTF-8?q?=20=D1=81=D0=BE=D0=B1=D1=8B=D1=82=D0=B8=D0=B9=20=D0=BD=D0=B0=20?= =?UTF-8?q?window.graspil.push()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/services/analyticsService.ts | 66 +++++++++----------------------- 1 file changed, 18 insertions(+), 48 deletions(-) diff --git a/src/services/analyticsService.ts b/src/services/analyticsService.ts index beaba86..5a627ea 100644 --- a/src/services/analyticsService.ts +++ b/src/services/analyticsService.ts @@ -109,67 +109,37 @@ export const trackRejectedPrompt = (originalPrompt: string): void => { * @param value - Общая цена (опционально) * @param unit - Код валюты (опционально, обязательно если указан value) */ -export const sendTargetEvent = async ( +export const sendTargetEvent = ( targetId: number, userId: number, value?: number, unit?: string -): Promise => { - try { - const date = new Date().toISOString(); // Текущая дата в формате ISO 8601 - - const payload: { - target_id: number; - user_id: number; - date: string; - value?: number; +): void => { + if (typeof window !== 'undefined' && window.graspil) { + // Создаем объект события в формате, который ожидает graspil.push + const eventData: { + event: string; + category: string; + value_num?: number; unit?: string; } = { - target_id: targetId, - user_id: userId, - date: date + event: `Целевое событие ID: ${targetId}`, + category: `target_${targetId}`, // Используем ID цели как категорию }; - + // Добавляем value и unit, если они указаны if (value !== undefined) { - payload.value = value; + eventData.value_num = value; if (unit) { - payload.unit = unit; + eventData.unit = unit; } } + + // Логируем для отладки + console.log('Отправка целевого события через graspil.push:', eventData); - // Логируем отправляемые данные - console.log('Отправка целевого события:', { - url: 'https://api.graspil.com/v1/send-target', - method: 'POST', - payload - }); - - // Отправляем запрос на сервер - const response = await fetch('https://api.graspil.com/v1/send-target', { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - 'Api-Key': '3bb78a396b0aa436843d606d02abfe4c' - }, - body: JSON.stringify(payload) - }); - - // Логируем статус ответа - console.log('Статус ответа:', response.status, response.statusText); - - const data = await response.json(); - - // Логируем полученные данные - console.log('Ответ сервера:', data); - - if (!data.ok) { - console.error('Ошибка при отправке целевого события:', data.error); - } else { - console.log('Целевое событие успешно отправлено'); - } - } catch (error) { - console.error('Ошибка при отправке целевого события:', error); + // Отправляем событие + window.graspil.push(eventData); } };