• Courses
    • Courses
    • Course bundles
  • Blog
  • Services
  • Resources
    • Youtube channel
    • E-books and Guides
    • GTM Recipes
    • View All Resources
    • GTM Community
    • GA4 community
  • About
    • About
    • Contact
  • Login
  • Courses
    • Courses
    • Course bundles
  • Blog
  • Services
  • Resources
    • Youtube channel
    • E-books and Guides
    • GTM Recipes
    • View All Resources
    • GTM Community
    • GA4 community
  • About
    • About
    • Contact
  • Login

December 8, 2022

How to Exclude Internal Traffic in Google Analytics 4

Updated: December 8h, 2022

When you implement Google Analytics 4, you are tracking your own interactions/events as well. That’s the default. That becomes an even larger problem when working with a larger business (having more employees). Every visit/event made by an employee skews your data. Luckily, this can be fixed because you can exclude internal traffic in Google Analytics 4.

But there are several catches here. If you exclude yourself, you won’t be able to see your events in the DebugView (while testing with GTM). GA4 documentation says it should work fine with the developer filter, but the reality is different. At least when I am writing this article.

And if you have to exclude multiple people, relying on the IP address might not be the best option. In this blog post, I wanted to show you how to exclude internal traffic in Google Analytics 4 and tackle the aforementioned two problems.

However, the IP-related option will also be described.

 

Table of contents

+ Show table of contents +

  • The limitation with the Internal Traffic Filter in GA4
  • How Internal Traffic Filter works
  • Warning for the users of GTM server-side tagging
  • Method #1 – excluding internal traffic by IP address
    • #1. Define your internal IP addresses
    • #2. Create a developer filter in GA4
    • #3. Create a lookup table in GTM
    • #4. Test the filters
    • #5. Activate both filters
  • Method #2 – excluding internal traffic with the data layer
    • #1. Getting the internal data parameter into the Data Layer
    • #2. Create a developer filter in GA4
    • #3. Create a lookup table in GTM
    • #4. Test the filters
    • #5. Activate both filters
  • Method #3 – excluding internal traffic based on a cookie
    • #1. Set a cookie for internal users
    • #2. Cookie variable
    • #3. Create a developer filter in GA4
    • #3. Create a lookup table in GTM
    • #4. Test the filters
    • #5. Activate both filters
  • Waiting for more powerful filters in Google Analytics 4
  • Send internal data to a separate GA4 property
  • Final words

 

 

Video tutorial

Prefer video content? Here’s a tutorial from my Youtube channel. If you want to stay up-to-date with GA4, consider subscribing.

 

Important: Some weird things. A delay?

While I writing this blog post, I did various experiments with filters in GA4 to understand how they work (because not every scenario is clearly explained in Google’s documentation).

The weird things started when sometimes the same experiment (repeated several times) ended up with different results, thus trying to dig deeper was indeed very frustrating. Eventually, I concluded that there is some delay between editing/changing the filter and what you see in the DebugView.

For example, even 10 minutes after I deactivated the internal traffic filter, I still could not see my events in the DebugView (until I changed my IP address).

So, this blog post is a result of various experiments, and I hope I did that right. If you notice anything incorrect, please let me know.

There is always a chance that something was not properly working in GA4 at that moment, and maybe in the future (when you are reading this), this got resolved.

 

The limitation of the Internal Traffic Filter in GA4

If you have ever tried to exclude internal traffic in Google Analytics 4, you have probably already found pages explaining how to use the Internal Traffic Filter. You can go to your Admin > Data Streams > X Data Stream > Configure tag settings > Show all > Define Internal Traffic, and then you enter your IP addresses.

Then you go to Admin > Data Settings > Data Filters > Internal Traffic and set it to Active.

Done. You have excluded your internal traffic based on IP addresses. But there’s one catch.

What if you want to exclude your internal traffic (including your own), but when you debug the GA/GTM setup, you’d still like to see yourself in the DebugView of GA4? With your current setup, that is not possible. You won’t see yourself in the DebugView. At least, that’s what was happening to me.

Update: after some time, it looked like things were improving in GA4, but now this problem is repeating again.

One option here could be to create a separate GA4 property for testing, and then (if you are in the preview mode) you could create a Lookup Table variable that picks the right property. If you’re in the Preview mode, you send data to the testing property. If you’re not debugging, the data flows to the live property.

And there’s another option that I’m going to show you. It will involve a single (live) GA4 property. If you are not debugging, your data will be excluded. But if you are debugging (with GTM’s preview mode), your data will be visible in the DebugView.

 

How Internal Traffic Filter works

When you define internal traffic (in the tagging settings of a Data Stream), Google Analytics 4 tracking code (activated on your site) starts adding a parameter tt=internal to every request. This parameter means “traffic type” a.k.a. traffic_type.

The default Internal Traffic Filter (that can be found in Admin > Data Settings > Data Filters) is preconfigured to exclude all the hits that contain the traffic_type=internal parameter (a.k.a. tt=internal). And it will do that once you set the filter to “Active”.

So, in this blog post, I’ll explain how to use that traffic_type=internal parameter and exclude internal traffic in GA4. But if someone is debugging with GTM’s preview and debug mode, then traffic_type’s value will be different, and you would still see it in the DebugView.

 

Warning to users of GTM server-side tagging

It looks like the built-in GA4 exclusion of internal traffic does not properly work with GTM server-side tagging. The traffic_type=internal parameter is not added to GA4 requests if requests are sent to your server-side setup first.

At least, that’s what I am seeing. This means that you would need to build the exclusion logic yourself in the GTM server (for example, set the tags to not fire if the user’s IP address matches/contains some value.

 

Method #1 – excluding internal traffic by IP address

Let’s start with the classic. This might work if not many people are involved in running a business, and you can easily exclude their hits by their IP addresses. This method does not work well if you have to enter many different IP addresses or if some IP addresses are not static (read: regularly changing).

 

Step #1. Define your internal IP addresses

In Google Analytics 4, go to Admin > Data Streams and select your website stream.

Then click Configure tag settings:

Then click Show all and select Define internal traffic. Here you can create new internal traffic rules.

If you are working with multiple IPs, you can create separate rules for each IP. I hope that in the future, regular expressions will be supported here as well.

To simplify things, you can always enter “internal” in the traffic_type value field. Then it will be enough to have one Internal Traffic filter in the Data Settings of your GA property.

If you don’t know what your IP address is, click the link on the right side.

 

Step #2. Create a developer filter in GA4

You might wonder what the difference is between a developer filter and an internal traffic filter in GA4. Both of them exclude data from the regular reports in GA4 (by checking different parameters).

The developer filter checks the debug_mode or debug_event parameters while the internal traffic filter looks for traffic_type.

But the key difference here is that you can see developer traffic in the DebugView of GA4, while the internal traffic is not displayed anywhere.

At least, that’s the theory. But I had mixed results here, and sometimes the internal traffic filter gets a higher priority than the developer traffic, and debug view does not work as a result.

So what can we do here? I’ll answer that in the next chapter. But first, let’s create a developer filter (because it is not ready by default). In GA4, go to  Admin > Data Settings > Data Filters > Create Filter. Select Developer Traffic. Enter the following settings:

You can enter any name in the “Data Filter Name” field. Set this filter to Testing (for now). Save it.

 

Step #3. Create a lookup table in GTM to override the traffic_type parameter

This is where the magic will happen. In one of the previous chapters, I mentioned that GA4 automatically adds a tt=internal (traffic_type) parameter to all hits if they are coming from one of your internal IP addresses.

What we are going to do is to create a Lookup table variable that manipulates the value of the parameter. If we have the GTM preview mode enabled, then we will change the tt’s value to developer (or anything else). But if the Debug Mode is disabled, then we will not do any modifications and let the GA4 handle this.

First, create an Undefined variable. In GTM, go to Variables > New > Undefined and save the variable (its name can be, well, Undefined).

Now, let’s go to Variables > Configure (in the Built-in variables section) and enable the Debug Mode variable.

Finally, let’s go to Variables > New > Lookup table and enter the following settings:

Here we are using the Debug Mode variable as input. If the GTM preview mode is enabled, this variable will return true. Therefore, the lookup table variable will return the word “developer”. If GTM Preview mode is not used, the Debug Mode variable will return false. Therefore, we will return undefined. That’s why we created the Undefined variable.

This is not the same as just entering “undefined” in the field. In JavaScript, “undefined” surrounded by quotation marks is a string (text). But undefined means no value. If you enter the word undefined in the Lookup table, that is a string.

Save the variable.

Finally, go to your Google Analytics 4 configuration tag and enter the following parameter: traffic_type. And its value should be the lookup table you’ve just created.

 

Step #4. Test the filters

Now, it’s time to test. Enable GTM’s preview mode. And go to your website (obviously, you should be browsing from the IP address that is configured in the Internal Traffic section of your Data Stream). Go to the DebugView of GA4.

First of all, you should still be seeing hits coming from your device. Click on any event in the event stream and check the parameter traffic_type. Its value should be developer.

Also, in that same event, you should see the Debug Mode parameter too.

Remember: both filters (developer and internal) are not active yet. They are in testing mode, which means that the soon-to-be-excluded data is still visible in the regular GA reports.

When filters are in the testing mode, an additional dimension is added to them called Test data filter name. You can use it as a secondary dimension (or in Analysis Hub) to check how much of the data would have been excluded if the filters were active. You can also learn more about the filters here.

If this setup with the lookup table variable does not work, then you can consider not using it at all. The bright side of this is that at least your internal traffic will not be polluting standard reports and explorations.

The downside is that debug view will not work (until GA4 fixes this). To avoid the downside, you could use a VPN service (like NordVPN, etc.) that can temporarily change your IP address. In that case, your company’s internal traffic is still excluded, and only you will be polluting GA4 data (but at least debug view will be working for you).

Alternatively, you can use a separate property for testing. I explain how to do that at the end of this blog post.

 

Step #5. Activate both filters

The last step is to activate both filters. Go to Admin (in GA) > Data Settings > Data Filters and set both triggers (Internal traffic and developer traffic) to active. You can do that by opening each filter, changing its Filter state, and then save the changes. Or you can just activate them from the list:

Now do the test once again.

  • Browse from the IP address that is defined as Internal
  • Have the GTM preview mode disabled. Browse your website (to send some events to GA4)
  • Check the DebugView. You should not be able to find your device and see new events coming from it.
  • Now enable GTM’s preview mode. Browse the website once again.
  • Check the DebugView. You should now be able to find your device and start seeing some data.

 

Method #2 – excluding internal traffic with the data layer

Another method does not involve IP addresses. Maybe your developers can identify somehow that the visitor/user who’s now browsing your website/web application is internal? Maybe they can identify that by a user id, or maybe they can think of something else? Talk to them.

 

Step #1. Getting the internal data parameter into the Data Layer

If that is possible, you should ask them to push the user_type (or traffic_type, or whatever) parameter to the data layer that could help you identify that the visitor/user belongs to your own company. If a visitor belongs to your company, then the parameter’s value should be internal. If a user/visitor does not belong to your company, no dataLayer.push should happen.

Here’s a sample dataLayer.push code that your developer could activate if the user/visitor belongs to your company:

<script>
  window.dataLayer = window.dataLayer || [];
  window.dataLayer.push({
    'event': 'traffic_type',
    'traffic_type': 'internal'
  });
</script>

Event key is not required (but recommended). This code must be activated before the GTM Container snippet is loaded.

Then create a Data Layer Variable with the following settings:

 

Step #2. Create a developer filter in GA4

In GA4, go to  Admin > Data Settings > Data Filters > Create Filter. Select Developer Traffic. Enter the following settings:

Set this filter to Testing (for now). Save it.

 

Step #3. Create a lookup table in GTM to override the traffic_type parameter

Go to Variables > New > Lookup table and enter the following settings:

Here we are using the Debug Mode variable as input. If the GTM preview mode is enabled, this variable will return true. Therefore, the lookup table variable will return the word “developer”.

If GTM Preview mode is not being used, the Debug Mode variable will return false. Therefore, we will return the value of the Data Layer Variable that you created in the first step.

If the data layer contains the traffic_type key, then its value will be sent to GA. If the key does not exist, then it will be set to undefined (meaning that GA4 will not send the traffic_type key at all).

Save the variable.

Finally, go to your Google Analytics 4 configuration tag and enter the following parameter: traffic_type. And its value should be the lookup table you’ve just created.

 

Step #4. Test the filters

Follow the same process as I have described here.

 

Step #5. Activate both filters

The last step is to activate both filters. Go to Admin (in GA) > Data Settings > Data Filters and set both triggers (Internal traffic and developer traffic) to active. You can do that by opening each filter, changing its Filter state, and then save the changes.

Or you can activate them from the list:

Then test everything once again (as I have described here).

 

Method #3 – excluding internal traffic based on a cookie

Another possible way to exclude internal traffic in Google Analytics 4 could be by using a cookie. You tell your employees to visit a certain unique URL, then you set a cookie with GTM and use its value in the lookup table variable.

 

Step #1. Set a cookie for internal users

However, keep in mind that just like any other method mentioned in this article, this one has its flaws. If most of your employees are using Safari (or browsing with iOS), the Intelligent Tracking Prevention will limit the lifetime of a cookie, and your employees will have to revisit that unique link often.

Let’s say that your website’s URL is www.mybusiness.com. Then you can tell your employees to visit the following URL: www.mybusiness.com?internal_user=true

Then go to Google Tag Manager and create a Custom HTML tag, paste the following code inside of it:

<script>
 
 var cookieName = "gtm_internal_user"; // Name of your cookie
 var cookieValue = "internal"; // Value of your cookie
 var expirationTime = 31104000; // One year in seconds
 expirationTime = expirationTime * 1000; // Converts expirationtime to milliseconds
 var date = new Date(); 
 var dateTimeNow = date.getTime(); 

 date.setTime(dateTimeNow + expirationTime); // Sets expiration time (Time now + one month)
 var date = date.toUTCString(); // Converts milliseconds to UTC time string
 document.cookie = cookieName+"="+cookieValue+"; SameSite=None; Secure; expires="+date+"; path=/; domain=." + location.hostname.replace(/^www\./i, ""); // Sets cookie for all subdomains

</script>

Set this tag to fire on a Pageview trigger when Page URL contains internal_user=true.

 

Step #2. Cookie variable

Go to GTM > Variables > 1st Party Cookie and enter the following settings:

Save the variable

 

Step #3. Create a developer filter in GA4

Create a developer filter in GA4, just as I have explained here.

 

Step #3. Create a lookup table in GTM to override the traffic_type parameter

Go to Variables > New > Lookup table and enter the following settings:

Here we are using the Debug Mode variable as input. If the GTM preview mode is enabled, this variable will return true. Therefore, the lookup table variable will return the word “developer”.

If GTM Preview mode is not being used, the Debug Mode variable will return false. Therefore, we will return the value of the 1st Party Cookie Variable that you created in the first step. If the cookie exists, then its value will be sent to GA. If the cookie does not exist, then it will be as undefined (meaning that GA4 will not send the traffic_type key at all).

Save the variable.

Finally, go to your Google Analytics 4 configuration tag and enter the following parameter: traffic_type. And its value should be the lookup table you’ve just created.

 

Step #4. Test the filters

Follow the same process as I have described here.

 

Step #5. Activate both filters

The last step is to activate both filters. Go to Admin (in GA) > Data Settings > Data Filters and set both triggers (Internal traffic and developer traffic) to active. You can do that by opening each filter, changing its Filter state, and then saving the changes.

Then test everything once again (as I have described here).

 

Waiting for more powerful filters in Google Analytics 4

As of writing this blog post, GA4 filters are still way behind Universal Analytics. Hopefully, we will have more powerful options in the future to exclude the internal traffic (e.g. based on a custom dimension).

 

Send internal data to a separate GA4 property

This is optional, but if you want, you can send the internal data to a separate property (instead of playing with the traffic_type parameter as we did above). I won’t be explaining this step-by-step. Instead, I will explain a general overview and will leave this for you to play around with.

Basically, you can create a lookup table variable that will pick the correct GA4 measurement ID based on some variable that indicates internal traffic. So, let’s say that you have a cookie variable Cookie – internal traffic, and its value is true if the visitor is one of your coworkers.

In that case, go to GTM > Variables > New > Lookup table and enter the following settings:

If the cookie variable’s value equals true, then it will return the measurement ID of a test property (by the way, you should create a separate GA4 property for this). In all other cases, the variable will return your “LIVE” property’s measurement ID.

The final step is to insert this lookup table in your GA4 config tag.

 

Exclude Internal Traffic in Google Analytics 4: Final words

The main benefit of how I exclude internal traffic is that it is still visible in the DebugView as long as you have the GTM Preview mode enabled. That way, you can debug your incoming hits without the need to do some manual hacks to overcome the traffic_type=internal.

Keep in mind that none of the aforementioned solutions are perfect:

  • IP-based filters won’t work if your employees have dynamic IP addresses
  • dataLayer.push-based filtering requires the developer’s input + still can miss some employees who browse anonymously-ish and haven’t logged in anywhere so that your developer could identify them
  • The cookie-based solution is, well, based on cookies. Cookies cannot be shared across multiple devices of the same visitor. Cookies can be cleared. Cookies expire sooner because of ITP on iOS or Safari. Thus your employees might need to regularly revisit that unique URL (that sets the cookie).

I really hope that my experiments with filters were correct and that if you indeed exclude your internal traffic, it is not displayed in the debug view (until you do the modifications with the lookup table). If, on the other hand, you see that I’m wrong, please let me know, and I’ll update the guide accordingly.

 

Julius Fedorovicius
In Google Analytics Tips
42 COMMENTS
Val
  • Feb 24 2021
  • Reply

Thanks for the article. Is there any custom way to exclude your own domain from referrals now in GA4?

    Julius Fedorovicius
    • Feb 24 2021
    • Reply

    I am not aware of any *solid* way to do that.

mattia
  • Mar 4 2021
  • Reply

Hi Julius, nice Guide as always, one question arises here, is the traffic_type parameter bond to the single page view event, the actual session, or to the user? my guess is that mark the traffic as internal only on the pageview with such parameter, would it be possible to set it as "user property"? to exclude that user as long as cookie allow us from analytics report, thank you.

    Julius
    • Mar 4 2021
    • Reply

    I am not sure. But as long as you set it in the config tag and all other tags use that config tag, the parameter is applied to all events.

mattia
  • Mar 4 2021
  • Reply

Well, that's for sure, it will exclude the whole session from being counted in Analytics, I was more wondering if it is possible to exclude a user across multiple sessions, setting the traffic_type as "user property", it should exclude him in a "native" way without dealing with extra cookies or local storage workaround.

    Julius
    • Mar 4 2021
    • Reply

    No such way at the moment.

      mattia
      • Mar 4 2021
      • Reply

      Thanks

Hazel
  • Mar 16 2021
  • Reply

Thank you for this article!
I implemented "Method #1 – excluding internal traffic by IP address" and it was working last week. But for some reason when I went back today, I wasn't able to see myself in debug mode anymore. Do you know if GA4Property made new changes?

    Julius
    • Mar 16 2021
    • Reply

    Not sure. I'll keep an eye on this.

Vijay Krishann
  • Mar 20 2021
  • Reply

Hi Julius, I have at least 15 different IPs at least to filter out... how do I go about excluding those.. there is no regex method as of now

    Julius Fedorovicius
    • Mar 20 2021
    • Reply

    Then use the non-ip solutions from my blog post.

      Dana
      • Nov 4 2022
      • Reply

      Does this mean that the dropdown conditions within the filtering are AND and not OR? And you cannot list out all 15 IP addresses within one filter using the different condition dropdowns?

        Julius Fedorovicius
        • Nov 4 2022
        • Reply

        You can. But in case IP addresses are constantly changing, then use non-IP solutions.

          Dana
          • Nov 7 2022

          I'm not sure this makes sense as an answer to my question. My IP addresses are static, but I have more than 10 that I need to filter (which is beyond the limit in GA4). With that being said, could I use the match type of "IP address contains" and list out all of the IP addresses with "|" or ",". Or will that not work because the match type condition is AND and cannot be used for "OR" for unique values? I hope that makes sense!

          PS - tried to filter the IP addresses in GTM and couldn't get that to work correctly either as I believe a developer is needed to push the dataLayer event to collect the IP. I cannot get the event to load when it needs to.

Sergey
  • Mar 21 2021
  • Reply

Hi!

Yesterday I used the Method 1. Everything was great: I filtered out my IP, but received developer value.

But today I cannot see myself in GA4 Debug: I changed nothing from yesterday. I checked whether all setting are active - yes, evth is good as I did. But cannot see in Debug view...

V Richerson
  • Mar 26 2021
  • Reply

I couldn't find good reference info on google yesterday when I set this up, and wound up getting it to work by setting the traffic_type param in the config call. I tested it in debug mode with the google tag assistant the browser (not debug view in google) and the initial call and all the subsequent calls seem to be sending the tt=internal param. Our setup is using this as a fallback to the IP filter because some of our internal users login from remote IP's, and we can identify that and set them as internal once they login.

gtag('config', 'G-123456789', { 'traffic_type': 'internal' });

Dino
  • Apr 1 2021
  • Reply

Hi Julius,

First of all, great article, always clearer than those provided by Google themselves.

I was wondering, is there a way to utilize the traffic_type as a dimension?
What I would like to achieve is allow internal traffic into the property with a view of being able to use the traffic_type as an exclusion filter as and when needed?

Many thanks

vishnu
  • Apr 8 2021
  • Reply

I just implemented Method3 to exclude internal traffic by cookies, I have followed and set up everything. But when we activate and tested the filters, Still we are getting our internal data in real-time...Developer Filters will it take time to activate?

Cookies are passing the values as internal user = true but the developer filter does not filter out the internal data?

vishnu
  • Apr 9 2021
  • Reply

Method3 will work for us when the GTM Preview mode is enabled, If Debug mode is in a disabled state, Then our internal traffic is showing in Real-time...Is there any setup that needs to be done to block our internal traffic by cookies?

Blocking internal traffic based on the cookies method will it be applicable only during GTM Debug Mode? Or Method will be excluding the traffic when GTM Debug is the disabled state also?

matilda
  • Apr 19 2021
  • Reply

Hi Julius, thanks for the guide. I have implemented according to your guide, with the traffic type set to "developer" when debug mode is true (1). But I can not see debug traffic in Debug view. I can't see my debug traffic if I only have the "developer traffic filter" active.
Does someone know if "Developer filter" is supposed to work? (exclude debug traffic except for debug view report)

    Julius Fedorovicius
    • Apr 19 2021
    • Reply

    Something weird is happening with the filters in GA4 + DebugView. They used to work better, now I see more people struggling with it. Hopefully, this will be fixed by Google.

Simon Carne
  • Apr 27 2021
  • Reply

Many thanks for providing this article.
I am using your Method 1 (Internal & Developer filters with a Lookup Table). I gather from this article that the lookup table is needed to allow developer traffic to be visible in debug mode. But I also see that Google's own advice says "If you exclude developer traffic via a filter, you can still see it in DebugView" (see https://support.google.com/analytics/answer/10108813).
So is the lookup table still needed?

    Julius Fedorovicius
    • Apr 27 2021
    • Reply

    Yes, I saw that. But the developer filter did not work for me, so I had to use a lookup table.

    Simon Carne
    • Apr 27 2021
    • Reply

    Sorry. Just realised that my question is already answered in your article where you say that if we use "both the debug_mode and traffic_type=internal, then the internal traffic parameter gets a higher priority and you won’t be able to see your hits in the DebugView."

Daniel West
  • May 26 2021
  • Reply

Hey we have followed your guide step by step using the cookie method. But somehow the tt parameter shows "true" instead of internal.

We already tried recreating everything but it sill does not say internal. How can that be fixed?

Marshall
  • May 29 2021
  • Reply

Hi Julius. I'm using the cookie method as my IP is dynamic. However, you mentioned to activate both filters (Internal and Developer). Why should activate the Internal if I didn't define any IP??

    Julius Fedorovicius
    • May 31 2021
    • Reply

    Because the internal traffic's filter check the "traffic_type" parameter and if its value is "internal", then the filter will work. However, I have noticed that in the article, the cookie's value was incorrect. I have now updated the code of that chapter and you should update your setup too.

Olga
  • Jun 18 2021
  • Reply

Hello, Julius!
Thank you for such a detailed tutorial! That's a huge work!

We filter traffic with cookies and after the update to GA 4 the old filters stopped working.

I tried the third solution from your article and it looks like it doesn't work for me at all. It filters traffic for debug view only and it shows tt: developer, but as soon as I switch off debug mode, it doesn't have any tt property any longer. I tried the second solution with the same result (it has the data layer traffic_type: internal, but it has no tt property in the request and it doesn't filter traffic).

It looks like it just doesn't send the traffic_type property at all.

Is there anything could be missing? Or could it be any corner case for GA4?

    Ilona
    • Oct 25 2022
    • Reply

    Hi Olga, did you find a solution to your issue? I have the same one so that not in a debug mode there is no tt.

Star
  • Jun 25 2021
  • Reply

Hi Julius,

To exclude post previews and admin login data, we can set it as Request URI, preview=true and wp-admin in GA UA.

Is there a way to do this for GA4?

Jude
  • Aug 13 2021
  • Reply

Hello Julius,
Please does any of these methods work for excluding external traffic from APP DATA STREAM?

    Julius
    • Aug 14 2021
    • Reply

    Not directly. But you could aak devs to send traffic_type=internal from your app

Claudio
  • Nov 9 2021
  • Reply

Hi Julius,

I created an account with only GA4 and a Tag Manager Workspace for GA4 configuration and cookie internal traffic. Now I want another property on Analytics only Universal, if I create another Tag Manager Workspace exclusively dedicated to Universal property (with tracking event, goals, ecc.) they go into conflict?

Thanks in advanced.

    Julius Fedorovicius
    • Nov 9 2021
    • Reply

    You cannot create a permanent workspace in GTM. Once you publish it, it will disappear and will be merged into the main container. Having GA4 and UA in a single GTM container is not a problem.

Alice Hudson
  • Nov 9 2021
  • Reply

Hiya, After following your steps I think I have set this up correctly. I have done this so I can exclude traffic from our companies headquarters but still be able to use the debug mode on GA. I have just activated the filters and gone into my debug mode, I am still receiving hits but the traffic_type says 2: Developer and Internal. Is this a problem? I'm not quite sure what it means.

Thanks very helpful article!

    Alice Hudson
    • Nov 9 2021
    • Reply

    It also doesn't seem to be excluding my IP from GA as I can see 1 user active in my location.

Jay
  • Dec 2 2021
  • Reply

Julius, I just want to say that you are an absolute hero and I am so grateful for all the valuable information you share about GTM/GA4 etc. This was immensely helpful. Thank you so much

niz
  • Jan 25 2022
  • Reply

Method 1, Step #3 is a bit confusing. How did you go to
"Variables > Customize (in the Built-in variables section) and enable the Debug Mode variable"?

I can't see a "customize" in the variable?
Can you please confirm if this tutorial still has the same interface for the current GTM interface?

thank you

    Julius Fedorovicius
    • Jan 25 2022
    • Reply

    Sorry, buttonname is Configure, not customize. Fixed it.

      niz
      • Jan 25 2022
      • Reply

      Thank you.

      Does it work right away when testing? or should i wait 24 hours for this to work?

      I check debug view in ga4 but it says "Waiting for debug events" :/

George M.
  • Dec 8 2022
  • Reply

What if you don't want to filter out the internal traffic but you want to have it available for analysis.

In UA we used to be able to setup a view for Internal, External, Combined.

I haven't been able to figure out how to do that in GA4 as the business requirement in reporting they want to be able to see these but not sure how to accomplish in GA4 in UA it was easy with views.

    CK22
    • Dec 19 2022
    • Reply

    I have the same question. Hoping someone knows.

Leave a comment Cancel reply

Your email address will not be published. Required fields are marked *

 

Hi, I'm Julius Fedorovicius and I'm here to help you learn Google Tag Manager and Google Analytics. Join thousands of other digital marketers and digital analysts in this exciting journey. Read more
Analytics Mania
  • Google Tag Manager Courses
  • Google Tag Manager Recipes
  • Google Tag Manager Resources
  • Google Tag Manager Community
  • Login to courses
Follow Analytics Mania
  • Subscribe to newsletter
Recent Posts
  • Google Tag Manager Tutorial + Video & Free E-Book for Beginners
  • How to Find Time to Learn New Skills?
  • Complete Google Tag Manager Data Layer Tutorial
Analytics Mania - Google Tag Manager and Google Analytics Blog | Privacy Policy
Manage Cookie Settings