Files
exdv/exdv.js
Andrey Kuvshinov 84f7b44926 add files
2025-10-17 12:23:41 +03:00

76 lines
2.4 KiB
JavaScript
Raw Permalink 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.

function trackAdvViews() {
// Находим все изображения с data-picture="ex_1109"
const images = document.querySelectorAll('img[data-picture^="ex_"]');
// Получаем данные пользователя
const userData = {
page_url: window.location.href,
user_agent: navigator.userAgent,
viewed_at: new Date().toISOString()
};
// Отслеживаем только уникальные adv_id на этой странице
const trackedIds = new Set();
images.forEach(img => {
const pictureData = img.getAttribute('data-picture');
const advId = pictureData.replace('ex_', '');
// Проверяем, не отслеживали ли мы уже этот adv_id на этой странице
if (!trackedIds.has(advId)) {
trackedIds.add(advId);
const data = {
adv_id: parseInt(advId),
...userData
};
// Отправляем запрос на сервер
sendViewData(data);
}
});
}
function sendViewData(data) {
const url = 'https://exdv.argumenti.ru';
console.log('📤 Отправка JSON данных:', data);
fetch(url, {
method: 'POST',
mode: 'no-cors',
headers: {
'Content-Type': 'application/json', // Важно для JSON!
},
body: JSON.stringify(data) // Отправляем как JSON
})
.then(response => {
console.log('📥 Статус ответа:', response.status);
if (!response.ok) {
return response.text().then(text => {
throw new Error(`HTTP ${response.status}: ${text}`);
});
}
return response.json();
})
.then(result => {
console.log('✅ Успешный ответ:', result);
})
.catch(error => {
console.error('❌ Ошибка:', error.message);
});
}
// Дебаунсинг для избежания множественных вызовов
let trackTimeout = null;
function debouncedTrackAdvViews() {
if (trackTimeout) {
clearTimeout(trackTimeout);
}
trackTimeout = setTimeout(trackAdvViews, 100);
}
// Запускаем отслеживание при загрузке страницы
document.addEventListener('DOMContentLoaded', debouncedTrackAdvViews);