Skip to main content

Filter by idea status

10000+ Ideas

Harveer_SinghGi1
Harveer_SinghGi1New Participant

AEP SDK timestamp auto collection syncing with a server-side clock for accurate and consistent data.New

Description - The auto collection logic for xdm.timestamp field in the AEP SDK is currently dependent on the user’s local system time. This reliance on system time creates inconsistencies in event tracking and reporting (event timestamps show up way in past or future at times which means they are offset as compared to actual event time). This improvement proposes syncing the xdm.timestamp field to a centralized server-side clock, such as UTC, ensuring uniformity and accuracy in time data.Why is this feature important to you - Accurate and consistent timestamps are crucial for reliable event tracking, analytics, and reporting. Without this feature, data may be skewed due to discrepancies in user device clocks, clock skew or drift, or manual adjustments to system time. This impacts the quality of insights derived from event data. By syncing the timestamp to a server-side clock, the platform ensures more reliable and consistent data, making it easier to correlate events, generate accurate reports, and analyze user behavior.How would you like the feature to work - The xdm.timestamp field should automatically be synced to a server-side clock (e.g., UTC) at the point when an event is logged, regardless of the user's local system time. The SDK should request the server time whenever an event is triggered, and the server will provide an accurate timestamp to be used instead of the device’s local time.In the event of network issues or server downtime, a fallback mechanism could use the local system time to avoid event loss, but with clear flagging of the fallback event for potential time data issues.The feature should be seamless and require no additional action from the user or client-side developers once integrated into the SDK.Current Behaviour - The xdm.timestamp field relies on the local system time of the user's device. This results in discrepancies for reasons like if a user changes the time on their device manually or if there are differences in system clock accuracy. This can lead to inconsistencies in event timing, causing difficulties in correlating data, performing time-based analysis, and generating accurate reports.

bjoern__koth
bjoern__kothNew Participant

Launch Core - Time on Page - limit to active time on page / tab in focusNew

Description Right now, the "Time on Page" event type is firing even if the page is not in focus e.g., when the user clicked a link that opened in a new tab. It would be great if there was an option that allows to pause the timer to only tick when the page is in focus.   Why is this feature important to you This will improve the overall reliability of rules trigger by the Time on Page events, giving a more accurate view on actual user behavior on the page.   How would you like the feature to work Add a checkbox that can be used to signal that only active time on the page shall be counted   Current Behaviour The timer keeps ticking, even if I temporarily switch to another tab. The dummy code below more or less shows the solution. Have it running in the console and switch between tabs to see how it stops and restarts the timer upon visibilitychange events.   // Sample code let timer = 0; // Stores the elapsed time in seconds let intervalId = null; // Stores the interval ID let startTime = null; // Tracks when the timer started // Function to start the timer function startTimer() { if (!intervalId) { startTime = Date.now(); intervalId = setInterval(() => { const currentTime = Date.now(); timer += Math.floor((currentTime - startTime) / 1000); startTime = currentTime; console.log(`Timer running: ${timer} seconds`); }, 1000); // Update every second } } // Function to stop the timer function stopTimer() { if (intervalId) { clearInterval(intervalId); intervalId = null; } } // Event listener for visibility change document.addEventListener("visibilitychange", () => { if (document.visibilityState === "visible") { console.log("Page in focus. Timer started."); startTimer(); } else { console.log("Page out of focus. Timer stopped."); stopTimer(); } }); // Start the timer initially if the page is in focus if (document.visibilityState === "visible") { startTimer(); }