Желаемая иерархия:
- учетные записи (компании): < /strong>, например, Amazon, Microsoft. < /li>
Посетители: < /strong> конечные пользователи из этих учетных записей. Учетная запись и посетители считаются для кликов функций. Задача заключается в определении и дифференциации между учетными записями и их соответствующими посетителями. < /strong> посетите Salesforce, мне нужно отслеживать: < /p>
Счета (Amazon и Microsoft). < /li>
Общее количество отдельных пользователей из Amazon и Microsoft вместе. Он фиксирует представления страниц и использование функции, но я не могу надежно различать различные учетные записи и их соответствующие посетители. < /P>
Мой вопрос: < /h3>
Я отслеживаю количество уникальных посетителей каждой учетной записи? li> Есть ли какие-нибудь методы сохранения конфиденциальности для подсчета посетителей?
const clickCounts = {};
// const accountData = {}
// New function to track features and interactions
const trackFeatureInteraction = (event) => {
const element = event.target.closest('button','a')
if (!element)
return;
// Get a meaningful name for the element as feature name
const featureName = element.getAttribute("data-feature-name") || element.innerText.trim() || 'Unnamed Button'
// Increment individual Visitor click count for the feature
clickCounts[featureName] = (clickCounts[featureName] || 0) + 1;
// Get relevant information about the interaction
const interactionData = {
interactionType: event.type,
timestamp: new Date().toISOString(),
featureName,
path: (typeof getLocation === "function" ? getLoc().fullPath : window.location.pathname) || "unknown",
userClicks: clickCounts[featureName],
// Track the exact Account to visit the website and unique count
// click the exact user to add userId on Visitor count
};
// For now, just log the interaction
console.log('Feature Interaction:', interactionData);
console.log(`Total clicks for ${featureName}:`, clickCounts[featureName]);
// TODO: Once endpoint is provided, uncomment this to send data
// sendFeatureData(interactionData);
};
// Function to send feature tracking data to API
const sendFeatureData = async (featureData) => {
try {
const response = await fetch(`${BASE_URL}/feature-tracking/`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
...featureData,
userId: localStorage.getItem('userId'),
clientId: document.querySelector('script[src*="script.js"]')
?.getAttribute('src')
?.match(/clientId=([^&]+)/)?.[1]
}),
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
} catch (error) {
console.error('Error sending feature data:', error);
}
};
// Function to set up feature tracking
const setupFeatureTracking = () => {
// List of events to track
const eventsToTrack = [
'click',
'a',
];
// Add event listeners for each event type
eventsToTrack.forEach(eventType => {
document.addEventListener(eventType, (event) => {
// Filter out non-interactive elements
const interactiveElements = [
'button',
'a',
];
const element = event.target;
const isInteractive = interactiveElements.includes(element.tagName.toLowerCase()) ||
element.hasAttribute('data-feature-name') ||
element.role === 'button';
if (!isInteractive) {
trackFeatureInteraction(event);
}
}, true);
});
};
Подробнее здесь: https://stackoverflow.com/questions/794 ... ipt-script