(function() { 'use strict'; // Функция отправки данных о визите function sendVisitData() { // Получаем user_id из глобальной переменной const userId = window.accountUserId; // Если нет user_id, не отправляем данные if (!userId) { console.warn('[Visits Analytics] accountUserId not found'); return; } // Собираем данные о текущей странице const visitData = { user_id: userId, url: window.location.href, title: document.title || 'Untitled', dt: new Date().toISOString() }; console.log('[Visits Analytics] Sending visit data:', visitData); // Отправляем POST запрос fetch('https://sobolevavika.ru/chtm/services/analytics/watchdogs/visits/api/visits~add', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(visitData) }) .then(response => response.json()) .then(data => { if (data.success) { console.log('[Visits Analytics] Visit tracked successfully'); } else { console.warn('[Visits Analytics] Failed to track visit:', data.message); } }) .catch(error => { console.error('[Visits Analytics] Error tracking visit:', error); }); } // Функция ожидания инициализации accountUserId function waitForUserId(callback, attempts = 0) { if (window.accountUserId) { callback(); } else if (attempts < 50) { // Ждем до 5 секунд (50 попыток по 100мс) setTimeout(() => waitForUserId(callback, attempts + 1), 100); } else { console.warn('[Visits Analytics] accountUserId not initialized after 5s'); } } // Ждем полной загрузки страницы и отправляем данные if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', () => waitForUserId(sendVisitData)); } else { // Если страница уже загружена waitForUserId(sendVisitData); } })();