Why server-side tagging duplicates your GA4 events

A tracking bug that looks like a traffic spike, how to spot it in BigQuery, and the three configuration mistakes that cause it.

The symptom

Your GA4 reports show a sudden increase in events. Nobody launched a campaign, nothing changed on the site, and the increase is suspiciously round.

Where to look first

Before building any theory, check whether the event count per session changed. If sessions are flat and events doubled, you are looking at duplication, not growth.

Three usual causes

  1. The tag fires both client-side and server-side.
  2. A retry policy resends failed requests without deduplication.
  3. Consent mode replays queued hits after the user accepts.

What to do

Compare raw event rows in BigQuery against the client-side dataLayer. If the same event_id appears twice with different timestamps, the transport layer is the culprit, not the tag configuration.