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.