Do event_date and event_timestamp use the same time zone in GA4?

The Citead team, updated

In short. GA4 event_date uses the property time zone, while event_timestamp records the receipt time in UTC microseconds.

Definition: No. In the GA4 BigQuery export, event_date is a calendar date in the registered time zone of the app or property, while event_timestamp is the event receipt time in UTC, expressed in microseconds. Use the timestamp and an explicit log offset when comparing GA4 data with access logs.

Key facts

  • Google's BigQuery Export schema defines event_date as a STRING in YYYYMMDD format and assigns it to the registered time zone of the app.
  • The same schema defines event_timestamp as an INTEGER containing the time in microseconds, UTC, when Google Analytics received the event.
  • Several events can have the same event_timestamp when they are sent in one request.
  • Google creates an events_YYYYMMDD table each day when the Daily export option is enabled.
  • Google's GA4 setup documentation says that the property reporting time zone determines the day on which a visit is recorded.

Which value should anchor a comparison with an access log?

Use event_timestamp as the time value for cross-system ordering. It is an absolute UTC instant once the microsecond value is converted to a UTC date-time. Use event_date as the GA4 calendar label and as a clue to the daily export table that contains the event. Around a local midnight, the same instant can belong to one property date and a different UTC date.

The field records when Google Analytics received the event. It is therefore a collection timestamp, while an access log records a request at the web server. The two observations can describe the same visit without representing the same processing moment. Equal timestamps also do not identify one event uniquely because the schema allows several events to share a timestamp when they arrive in one request.

How should the log time be read?

Apache's mod_log_config documentation defines %t as the time the request was received and includes the numeric offset from GMT. A standard common log format contains that field:

%h %l %u %t "%r" %>s %b

An entry such as [18/Sep/2011:19:18:28 -0400] carries both a wall-clock time and its offset. Parse that offset to obtain a UTC instant, then compare it with event_timestamp after converting the GA4 value from microseconds. Keep the raw log value and the raw GA4 fields alongside the normalized values so the comparison can be checked later.

The comparison needs a common event identity as well as a time. A timestamp match alone is weak because the GA4 schema permits repeated timestamps, and a server request can produce more than one analytics event. Use fields available in the export and the log, such as the request path and the event name, when the collection design makes those fields comparable.

What changes when the property time zone changes?

Google's setup instructions require a reporting time zone when a property is created. Google also gives a boundary example: a visit that is Tuesday in the visitor's time zone can be recorded as Monday when Monday is the selected property day. A time zone that observes daylight saving time is adjusted automatically.

Changing the property time zone affects data going forward. Google says reports can refer to the old time zone for a short period while Analytics processes the setting, and recommends changing a property time zone no more than once per day. Record the property setting used for each reporting period before grouping event_date values.

How do late events affect the date comparison?

Google says Analytics can update daily tables with events for their event dates for up to three days after those dates. It also says late events retain the correct time stamp, while events arriving after that three-day window are not recorded. A recent events_YYYYMMDD table can therefore change after its calendar day, so a log reconciliation should state when the GA4 export was queried.

FAQ

Which GA4 field is in UTC?

event_timestamp is in UTC and uses microseconds. event_date uses the registered time zone of the app or property.

Why can an event date differ from the UTC date?

The property reporting time zone determines the calendar day used for event_date, while event_timestamp stays in UTC. Events near midnight can therefore carry different calendar dates after conversion.

Should an access-log report group requests by event_date?

Use the explicit offset in the log to normalize request times to UTC, and use event_timestamp for time ordering. Use event_date for the GA4 property-day view and daily export table selection.

Sources

  1. Google Analytics Help, "BigQuery Export schema", undated
  2. Google Analytics Help, "[GA4] Set up Analytics for a website and/or app", undated
  3. Apache HTTP Server, "mod_log_config", undated

Check how a page reads to answer engines. Open the GEO score analyzer

Test a page and see what to fix first

The analysis usually takes less than 10 seconds and needs no account.

400,000+ pages scored in the public benchmark