Skip to content

Google Analytics 4

Signals sends website events to your Google Analytics 4 property from the server rather than the visitor’s browser, so a page view or a purchase still reaches GA4 when an ad blocker, a cookie restriction or a dropped page load would otherwise have lost it.

It complements your existing GA4 browser implementation rather than replacing it. Where both run against the same property they report the same activity, so agree which one the business reads before you go live.

GA4 is an analytics destination rather than an advertising one, and that changes what matters. There is no audience to match and no attribution window to respect. What matters is that the event carries a client ID, because that is the only thing GA4 uses to tie an event to a session and a user.

Sources supported by Google Analytics 4

CategorySupported
Website & E-commerce

Before connecting Google Analytics 4, make sure you have:

  • A Google Analytics 4 property with a web data stream already created.
  • A subdomain set up for first-party collection. Web events depend on it, so it has to be resolving before anything is reported.
  • A Datahash Studio account with the target project selected.
  • A website or e-commerce source connected in the same project. Events reach GA4 through the source, so a connected destination on its own sends nothing.

In Studio, open Destinations, find the Analytics category and click the Google Analytics 4 tile. This connector authenticates with credentials you add manually rather than a sign-in, so there is no consent screen.

  1. Enter the Measurement ID and the API secret.
  2. Click Validate Credentials.
  3. Click Finish.
FieldWhat it isWhere to find it
Measurement IDThe identifier of the GA4 data stream events are written to. It begins with G- and is specific to one stream, not to the property as a whole.In GA4, open Admin, then Data streams, and select your web stream. The Measurement ID is shown at the top right of the stream details.
API secretA credential authorizing Datahash to send events to that stream on your behalf. GA4 calls it a Measurement Protocol API secret.On the same stream details screen, open Measurement Protocol API secrets, then Create. Copy the secret value when it is generated.

Check which stream you are on before copying the ID. A property holding both a web stream and an app stream offers both, and events sent to the wrong one are accepted and then reported against the wrong platform.

There is no separate configuration step. The two fields you entered during authentication are the whole setup, and the Measurement ID is what decides where events land.

Because that ID names one data stream, an instance writes to one stream. Reporting to a second stream or a second property needs a second instance.

To change the instance, open it from Manage Instances, use the menu in the top right and choose Edit, update the fields and click Finish. Cancel keeps the previous configuration running, so updates apply only after you finish.

GA4 identity works differently from the advertising destinations. They match an event to a person using hashed email addresses and phone numbers. GA4 does not. It ties an event to a session and a user through a client ID, the identifier GA4 already sets in the browser. An event arriving without one cannot be attributed to a session, so it will not join up with anything the browser implementation reported.

A signed-in identifier of your own can travel as a user ID alongside the client ID, which is what lets GA4 join a person’s activity across devices. That one is optional.

Personal identifiers are still normalized and SHA-256 hashed in transit, the same as on every other destination. They just are not what GA4 matches on. Do not send personal data into GA4 event parameters at all. Google’s terms prohibit it.

FieldWhen it is required
Event nameAlways. This is what the event is called in GA4, and it is what every report filters on.
Client IDAlways. Without it GA4 cannot attach the event to a session or a user.
Event timeAlways. GA4 accepts a backdated timestamp up to 72 hours old. Anything older is not processed.
Currency and valueOn purchase events. GA4 will not report revenue without both.
  • Confirm the subdomain is resolving before judging whether events are arriving. An unfinished subdomain does not look like an outage, it looks like missing traffic.
  • Send the client ID on every event. It is the one field with no fallback on this connector.
  • Keep personal data out of event parameters, including custom dimensions.
  • Decide which implementation the business reads before you go live, since the browser tag and this connector report the same activity against the same property.

Validate Credentials fails. Re-check the Measurement ID against the stream you intended, and confirm the API secret was created on that same stream. A secret created on a different stream in the same property will not work.

No events appear in GA4. Confirm a website source is connected in the same project, that the subdomain is resolving, and that the tag is published in your tag manager rather than only saved. A connected destination on its own produces nothing.

Events arrive but sessions look wrong. The client ID is missing or is not the one the browser implementation uses. Server events carrying a different client ID start their own sessions instead of joining existing ones.

Events older than three days never appear. GA4 discards a backdated timestamp more than 72 hours old. Check the schedule on the connected source.

Revenue is missing on purchases. Value is arriving without currency, or currency without value. GA4 needs both before it reports revenue.

Delivery stopped after working. The API secret has been deleted or revoked in GA4. Create a new one on the same stream and revalidate.