Как Google Analytics/Mixpanel/и др. определить отметку времени события, когда часы неверны?

На многих устройствах (настольных и мобильных) часы неверны, поэтому при попытке определить время события по часам клиента результаты будут неточными. Службы аналитики, такие как Google Analytics и Mixpanel, рекомендуют использовать метку времени сервера, чтобы избежать этой неточности. В случае, если необходимы часы клиента (а не часы сервера), какое решение для этого случая? Например, в мобильном SDK решением может быть выполнение вызова API к серверу времени и игнорирование часов на устройстве.


person Nir Zohar    schedule 18.02.2015    source источник


Ответы (1)


Как правило, поставщик аналитики использует отметку времени, когда был сделан запрос на отслеживание от клиента. Например, из документации Mixpanel:

Если свойство [дата] не включено в ваш запрос, Mixpanel будет использовать время поступления события на сервер.

Использование в автономном режиме более проблематично, см., например, этот вопрос — по умолчанию Google Analytics по-прежнему будет использовать отметку времени при получении события отслеживания.

В этом вопросе также упоминается параметр времени ожидания для записи событий, которые произошли в прошлом. Значение является относительным и указывает, сколько миллисекунд назад произошло событие. Это означает, что не имеет значения, является ли время клиента неправильным, пока оно продвигается с правильной скоростью.

Это оставляет проблему людей, переводящих свои часы между тем, когда событие произошло, и тем, когда оно отслеживается. Это, вероятно, достаточно редко, чтобы не быть большой проблемой на практике. Параметр очереди Google Analytics также игнорируется, если он слишком далеко в прошлом и, предположительно, в будущем.

person Matt Zeunert    schedule 19.02.2015