fixes to the avg duration computation
This commit is contained in:
@@ -110,9 +110,14 @@ class ProcessTrackingPayload implements ShouldQueue
|
||||
]);
|
||||
}
|
||||
|
||||
// Calculate duration, ensuring it's never negative (handle out-of-order events)
|
||||
// Use max() to ensure we use the latest timestamp for ended_at
|
||||
$endedAt = $session->ended_at ? max($now, $session->ended_at) : $now;
|
||||
$duration = max(0, (int) $endedAt->diffInSeconds($session->started_at, false));
|
||||
|
||||
$session->update([
|
||||
'ended_at' => $now,
|
||||
'duration' => $now->diffInSeconds($session->started_at),
|
||||
'ended_at' => $endedAt,
|
||||
'duration' => $duration,
|
||||
'exit_page' => $this->payload['path'] ?? $this->payload['url'] ?? $session->exit_page,
|
||||
'pages_count' => $session->pageViews()->count(),
|
||||
'is_bounce' => $session->pageViews()->count() <= 1,
|
||||
|
||||
Reference in New Issue
Block a user