×

How do GA4 Data Streams Work?

Usman Qureshi

Last Modified on May 20, 2024

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.

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:

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 4Universal Analytics
AccountAccount
Property (roll-up of all data sources)

(Web, iOS, Android)
Property (separated by data sources)

 1. Web | 2. iOS | 3. Android 
Data StreamsViews

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.

Screenshot showing five steps on how to select and add the stream type in GA4 admin settings

Web Stream

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.

Screenshot of Web stream set up interface in GA4

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:

Screenshot of Web stream details after it’s configured with enhanced measurement and other settings

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.

  1. Register app by providing the iOS bundle ID, App name, and App Store ID (optional), and then click on the Next button.
Screenshot of setting up iOS stream in GA4 step 1 - Register app
  1. Now, wait while Google configures your setup and you will see the four green checks as shown below. Then, click on the Next button.
Screenshot of setting up iOS stream in GA4 step 2 - Provision and Configure Google Cloud Project
  1. 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.
Screenshot of setting up iOS stream in GA4 step 3 - Download config file
  1. Add Firebase SDK and click on the Next button.
Screenshot of setting up iOS stream in GA4 step 4 - Add Firebase SDK
  1. Add initialization code to your main AppDelegate class to connect Firebase when your app starts up, and click on Next.
Screenshot of setting up iOS stream in GA4 step 5 - Add initialization code
  1. 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.
Screenshot of setting up iOS stream in GA4 step 5 - Run your app to verify installation

Once you have completed the setup, you will see the following setup complete screen with some ID info and additional settings:

Completing setup of iOS app stream in GA4 screenshot

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.

Screenshot of the five steps in Android app stream configuration similar to iOS app stream setup

🚨 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.

  1. Next, click on Add Comparison + button at the top of the report
  2. You will see a small Build comparison configuration tab on the right side
  3. Select Stream ID in Dimension
  4. Select the Streams you want to view the data for in Dimension values
  5. Click on Apply
Screenshot showing the reports section on how to add and select one or more data streams for reporting

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.

Screenshot showing removing All Users from the comparison to view only selected streams-specific data

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:

  1. Add Stream name as a Dimension in the Variables column
  2. Add the metric(s) you want the data for in the Variables column
  3. Use Stream name in Rows under the Tab settings column
  4. Add the Metric(s) in the Values under the Tab settings column
Screenshot of free-form exploration report with Stream name as dimension and engaged sessions as metric

💡 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:

Screenshot of free-form exploration report with Stream name filter to show data only for web streams

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!

FAQ

How do data streams in GA4 differ from views in Universal Analytics (UA)?

Data streams are a data source, while views in UA take data from a property based on the source. Data streams act as different touchpoints between apps and websites in a user journey, while views are about filtering and selecting specific data for reporting.

How can different types of data streams be set up in GA4?

To set up data streams in GA4, follow these general steps regardless of the stream type:

1. Go to Admin → Data streams → Add Stream → Select the stream type.
2. For Web Stream: Enter the website URL, give a stream name, and enable enhanced measurement. Create the stream.
3. For iOS App Stream: Register the app by providing iOS bundle ID, app name, and optional App Store ID. Follow the subsequent steps to complete the setup.
4. For Android App Stream: Follow a similar process as iOS App Stream, with some minor differences in the setup steps.

How can GA4 data streams be used for reporting?

If you have multiple data streams in a GA4 account, you can apply them to standard reports or Explore reports for analysis. In standard reports, you can add and select data streams to compare and view their data. In Explore reports, you can configure the report for specific data streams by using dimensions and metrics.

Summary

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!

Sign up to the FREE GTM for Beginners Course...

[wpforms id="9076262" title="false" description="false"]

Usman Qureshi

Usman is a web analytics content creator at MeasureSchool. He holds a master's degree in digital marketing from UCD Michael Smurfit Graduate Business School. He is a data enthusiast who enjoys different shades of it, whether it's analysis, implementation, or visualization.

Related Posts

Subscribe
Notify of
guest
8 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Aaron Weiner
Aaron Weiner
2 years ago

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. 

  • example-main-website.com
  • example-one.com
  • example-two.com
  • example-three.com
  • and so on.

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?

Julian Juenemann
Admin
Julian Juenemann
2 years ago
Reply to  Aaron Weiner

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.

Sung Pham
Sung Pham
1 year ago

Hi Julian,
I am wondering if it is ok to track different websites in one property with one stream. Like
Property_A/Webstream_A:

  • example_website_a.com
  • example_website_b.com
  • example_website_c.com

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:
Property_A:

  • webstream_A for example_website_a.com
  • webstream_B for example_website_b.com
  • webstream_C for example_website_c.com
Sofiia Wycisk
Sofiia Wycisk
1 year ago
Reply to  Sung Pham

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.

Daniel Nyman
Daniel Nyman
1 year ago

Great post. Following the trend and asking more in-depth questions about our setup.

We have the following setup:

  • example.com/shop/cars
  • example.com/shop/boats
  • example.com/shop/airplanes

Previously we set up views, so we had the following:

  • master (cars/boats/airplanes)
  • cars
  • boats
  • airplanes

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.

Thanks again

Tobi
Tobi
1 year ago
Reply to  Daniel Nyman

Maybe best to provide Data Studio dashboards to your partners instead of GA access.

Elisa
Elisa
1 year ago

Hi, great post thank you! I have deleted (by mistake) the data stream where all my data were tracked. Is there a way to access the historic data of my website? Thank you

Dan
Dan
1 year ago

Great post ! I wanted to replicate the ‘views’ functionality that was possible in UA so I can filter a specific page. As views are not possible in GA4 would this solution below work? Original GA4 account: data stream (web) URL : http://www.test.com . New GA4 account : data stream (web) URL : http://www.test.com/page123/test/ , and injecting the following script after the head tag for every page: <!– Google tag (gtag.js) –> <script async src=”https://www.googletagmanager.com/gtag/js?id= (new measurement ID “></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag(‘js’, new Date()); gtag(‘config’, ‘new measurement ID ‘); </script> .Would this filter the… Read more »

Last edited 1 year ago by Dan

NOW IT'S TIME TO

Start Measuring Like A Master

Itching to jump into the world of MeasureMasters? This is what you have to look forward to.

Ready to take your digital marketing to the next level?

Subscribe to our newsletter and stay ahead with our latest tips and strategies.