Universal Analytics and Google Analytics 4 have many differences and there’s a lot of content about them on the internet as time is moving closer to the end of the UA era. The first noticeable difference is how the accounts are set up differently in GA4 compared to UA.
UA accounts are all about having different properties, and within those properties having multiple views. On the other hand, GA4 retains properties but adds data streams that look and work differently to views.
If your UA properties are not clean and organized, then with GA4, you have a chance to start again. Knowledge about GA4’s account structure will help you to know where to start.
Master the basics with our FREE GA4 Course for Beginners
In this blog post, you will be learning about GA4 data streams and understand how they work. Some of the major topics to be covered include:
- What are Data Streams in GA4?
- Difference Between UA Views and GA4 Streams
- How to Set Up Different Types of Data Streams?
- Using GA4 Data Streams for Reporting
- What are the Limitations of Data Streams?
So. let’s dive in.
What are Data Streams in GA4?
Data streams are sources of data being sent to a GA4 property which could be either from a website (Web) or an App (iOS, Android).
This means you can have three types of data streams in a single GA4 property, compared to the UA property, where you would create a separate property for each data source (web, iOS, Android).
So, your GA4 property is now a roll-up of all the different data sources in data streams giving you everything under one property.
To simplify it further, let’s have a look at the account structure in Google Analytics 4 vs Universal Analytics:
|Google Analytics 4||Universal Analytics|
|Property (roll-up of all data sources)|
(Web, iOS, Android)
|Property (separated by data sources)|
1. Web | 2. iOS | 3. Android
However, GA4 360 comes with two more types of properties. These are:
- Sub-properties – take data from one property and are usually a subset of the data in that property. This is useful to manage user access to data and the data itself, by filtering events from the source property.
- Roll-up properties – consolidate data across all the different properties and streams for products, brands, regions, etc. into one property, to give an over-the-top view of your business’ performance.
Understandably, GA4 360 won’t be suitable for every type of business and only large enterprises spread across multiple regions and/or verticals can benefit from this offering.
Are data streams and views really comparable, when talking about GA4? Let’s see what are the differences between the two reporting levels.
Difference Between UA Views and GA4 Streams
The fundamental difference between views and streams is that the streams are a data source, whereas the views take data from a property depending upon the source.
Data streams can act like different touchpoints between apps and websites in a user journey. Whereas views are more about filtering and what type of data you want to see in the reports for a specific view.
For instance, if you want to see people from the US that are coming through PPC traffic, you can create a view with those filters and all the data in that view will be based on those two filters.
With data streams in GA4, you can apply different types of filters and segments within the Explore reports, so there’s no filtering at the stream level. This is a major change.
Google says that data streams should not be used to separate data as we do in views because it defeats the purpose of tying users across different data sources, which is what streams do.
🚨 Note: Each app data stream can only be linked to one GA4 property.
Not having views can be a little confusing and create some friction in the beginning. Thankfully, GA4’s higher sampling limits and the ability to create and save filtered data within the reports will help us get over the views in some time.
But, the most welcome feature of the data streams is the enhanced measurement, as it comes with some critical metrics like scrolls, video plays, file downloads, site search, and outbound clicks being tracked out of the box.
How to Set Up Different Types of Data Streams?
As we saw above, there are three types of data streams that we can set up. Before we get into how each one of them will be configured, let’s have a look at the four general setup steps that we will have to complete regardless of the stream type we want to set up.
Go to Admin → Data streams → Add Stream → Select the stream type.
Once you’ve followed the above steps, click on Web and you will see the interface to set up the web stream.
Enter your Website URL → Give your Stream name →Next Enhanced measurement is turned on by default (you can always come back to turn off or change any settings by clicking on the small gear icon) → Lastly, click on the blue Create stream button.
Now, it’s all set up for you to use for analysis. Here’s how the screen would look like after you’ve configured a web stream:
The Measurement ID starting with G- is what you will use for tracking purposes on your website.
🚨 Note: Don’t forget to add the universal site tag to your website or set up a GA4 configuration tag in Google Tag Manager to send data to your web stream.
iOS App Stream
After following the same steps above (1-4), click on the iOS app option. You will now see the iOS app stream setup interface where you have to complete 6 more steps to complete the setup.
- Register app by providing the iOS bundle ID, App name, and App Store ID (optional), and then click on the Next button.
- Now, wait while Google configures your setup and you will see the four green checks as shown below. Then, click on the Next button.
- Download the config file, move it to the root of your Xcode project, and add it to all targets. Then, click on the Next button.
- Add Firebase SDK and click on the Next button.
- Add initialization code to your main AppDelegate class to connect Firebase when your app starts up, and click on Next.
- Run your app to verify installation and once verified click on the Finish button. You can also Skip this step for now and verify later.
Once you have completed the setup, you will see the following setup complete screen with some ID info and additional settings:
Android App Stream
The process for Android is similar to the one for iOS stream configuration, except Step 5 – Add initialization code for iOS.
There are some other minor differences, as well, in Steps 3 and 4 of the Android app stream configuration due to being a different OS.
🚨 Note: You must link your Firebase project(s) with Google Analytics to ensure your app streams receive data.
Now that you have set up your data streams and the data is being collected in GA4, let’s explore how we can use them in the reports.
Using GA4 Data Streams for Reporting
This is applicable only if you have more than one data stream in a GA4 account, as you might want to either see data for all the streams or any single one of them.
You can apply different data streams to any standard reports or Explore reports.
Data Streams in Standard Reports
Go to your reports section in GA4 and click on a report where you want to see the stream’s data.
- Next, click on Add Comparison + button at the top of the report
- You will see a small Build comparison configuration tab on the right side
- Select Stream ID in Dimension
- Select the Streams you want to view the data for in Dimension values
- Click on Apply
You will now see a comparison of All Users and the streams we selected in the steps above. If you only want to see the data for the selected streams, then remove the All Users from the top.
Data Streams in Explore Reports
Once you’ve opened a report in the Explore section of GA4, you can configure it for the stream and the data you want by following these four steps:
- Add Stream name as a Dimension in the Variables column
- Add the metric(s) you want the data for in the Variables column
- Use Stream name in Rows under the Tab settings column
- Add the Metric(s) in the Values under the Tab settings column
💡 Top Tip: If you want to view the data for any specific stream, you can simply use the filter.
For instance, here’s how you can filter the data only for the web stream under the Tab settings column by using the Stream name:
What are the Limitations of Data Streams?
Note that data streams in GA4 have some limitations that can range from the number of streams we can create to user permissions.
- Number of Streams – Each GA4 property can have up to 50 streams in total. App streams (iOS and Android) are limited to only 30, while there’s no limit for web streams.
- User Permissions – You cannot give access to any single stream as they are all part of one property. So, giving access to one property will give users access to all the streams. However, with the sub-property feature in GA4 360, this is doable but only at the sub-property level and not at the stream level.
- Deleting a Stream – While Google will still store the historical data, the stream won’t be available to use in any reports or filters and the data won’t be processed anymore. However, if you export the data to BigQuery, then you can always access it even after the stream is deleted.
Thankfully, these limitations probably won’t stop you much from accessing and analyzing your data across multiple streams in GA4, but it is helpful to know.
Additionally, BigQuery seems to be a major part of how data can be accessed and analyzed in GA4. So, if you haven’t brushed up on your SQL skills, now’s the chance to do so!
You should now understand how GA4 data streams work and can make the best use of this knowledge to organize your GA4 accounts better.
Along the way, you have learned what exactly are the data streams and how the differences between the GA4 streams and UA views show that they are not the same things.
You can now set up multiple streams in GA4 ranging from web to app streams for iOS and Android, as well as analyze data for whatever stream you want to in the standard and explore reports.
Finally, we looked at certain limitations that come with data streams in GA4 from the number of streams we can create under one property to user access which isn’t quite possible as much as we would love to see.
But, most importantly, for a clean start with GA4, being aware of how the account structure works will help you to plan accordingly.
Remember, we don’t have the views anymore, but we do have a good analytical engine under GA4’s hood that allows us to filter and save reports, along with the enhanced measurement feature which comes pre-configured to make our lives easier.
Talking about GA4’s amazing features, you might want to check out this blog on GA4’s DebugView.
Let us know in the comments how letting go of views and getting used to streams is working for you!
Great post since there isn’t much detail on data streams out there on the web.
I have a situation where I have multiple websites which all interlink to one another.
I’m not dealing with any iOS apps or Android apps. Just websites.
I set up one property with all these multiple data streams, and it appears to be working, but what about cross-domain tracking?
Do I need to go into each data stream and add each of the domains?
You can check out our post on How to set up GA4 Cross-Domain tracking, you should be able to find everything you need there.
I am wondering if it is ok to track different websites in one property with one stream. Like
The sites are independent of each other, so I don’t require cross-domain tracking. I just don’t want to create multiple properties for it but have them all in one place.
What would happen if I set up something like:
Unfortunately, we have to adjust to GA4 and its new features. Views are absent in GA4 and this is why it is a bit challenging to work with multiple domains. It is not recommended to create multiple webstreams within 1 property (GA4 will also show you a warning if you try doing that). The best option is to utilize filters, comparisons, and segments to work with the data keeping everything within 1 web stream. This Google article can also shed some light on how to structure your GA4 account.
Great post. Following the trend and asking more in-depth questions about our setup.
We have the following setup:
Previously we set up views, so we had the following:
And of course, we could give access to our car supplier so they only had access to the car data. Boats to boats data, and airplanes to airplanes data.
Love the change, but currently struggling to understand how we should approach this. Any ideas or suggestions much appreciated.