Analytics and Tracking

Data Stream

Also called GA4 stream, web stream

The connection between one website or app and a GA4 property, carrying every event that source sends.

Quick facts: Data Stream

Category
Analytics and Tracking
Also called
GA4 stream, web stream
Level
Beginner
Affects
Session counts, user counts, attribution, enhanced measurement settings
Where to see it
GA4 (Admin, Data streams)
In this article4
  1. How a data stream works
  2. Why data streams matter
  3. Common mistakes with data streams
  4. How to act on it

How a data stream works

A GA4 property does not collect anything on its own. Collection happens through streams, and each stream stands for one source: a website, an Android app or an iOS app. When you create a web stream, GA4 issues an identifier for it, the Google tag on your pages sends its hits to that identifier, and everything arriving through it is labelled as coming from that source.

One property can hold several streams, and they all report into the same tables. That is how a business with a website and an app sees one audience instead of two separate ones. It also means the streams you create decide what the platform treats as the same business, whether or not a visitor would see it that way.

Why data streams matter

Several settings that quietly change your numbers live on the stream, not on the property. Enhanced measurement — scroll, outbound click, file download, site search, video engagement — is switched on per stream. So is the list of domains that should be treated as one site, and the list of referrals you want excluded. Two properties that look identically configured in every report can still disagree, because a setting differs one level down.

The stream is also where the measurement ID that identifies the destination comes from. If you ever need to check that the right site is reporting into the right property, that is the pairing to look at first.

Common mistakes with data streams

The expensive mistake is creating a second web stream for a subdomain, a booking engine or a hosted checkout. A visitor who crosses from one to the other starts again as a new user, the session breaks in two, and the source of the sale becomes your own payment page rather than the ad or search that earned it. Related hosts belong on a single stream with cross-domain measurement configured, not on a stream each.

The opposite failure is just as common in Nepal, where many small sites hand payment off to a third-party gateway and never add that host to the cross-domain list. The stream is correct; the domain list around it is not.

How to act on it

Start from one web stream per business, add app streams only when there is genuinely an app, and put every host a customer can walk through into that one stream’s domain list. Test it by clicking from one host to the other and watching whether the visit stays a single session in the realtime report.

If you are setting analytics up from scratch, decide the stream layout before any tag is fired, because streams cannot be merged afterwards and history does not move between them. Getting the collection layer right at the start is most of what a careful GA4 setup is for.

Do and do not

Do

  • Keep one web stream per business, not per subdomain
  • List every host a customer crosses in the domains setting
  • Check enhanced measurement toggles on each stream separately

Do not

  • Create a second stream for a checkout or booking host
  • Assume stream settings copy across from another property
  • Delete a stream expecting its data to move elsewhere

Questions people ask about this

Should my subdomain have its own data stream?

Usually not. If a visitor can move between the main site and the subdomain as part of the same journey, keep both on one stream and add both hosts to the configured domains list. Separate streams split that person into two users and hand the credit for the sale to your own subdomain instead of the real source.

Can I delete a data stream and start again?

You can remove a stream, but the data it already collected stays in the property and cannot be moved to another stream. Deleting also stops collection immediately for anything still sending to that identifier. If the goal is a clean start, it is safer to create the new property first, run both in parallel, and switch once the new one is verified.

What is the difference between a stream and a property?

A property is the reporting container: it holds the reports, the audiences, the custom definitions and the retention settings. A stream is one source feeding that container. Properties are what you compare and share access to; streams are where collection settings such as enhanced measurement and cross-domain configuration are actually stored.

Related terms

Found this useful?

Share it, or ask an AI to summarise it

Back to the glossary

Knowing the term is the easy part

Applying it to your own site and budget is the work. Book a call and I will tell you what actually applies to you.