add files
This commit is contained in:
76
exdv.js
Normal file
76
exdv.js
Normal file
@@ -0,0 +1,76 @@
|
||||
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);
|
||||
Reference in New Issue
Block a user