
January 30, 2025
Fire Once per Page vs Once per Event vs Unlimited in Google Tag Manager
Updated: January 30th, 2025
You will see many options if you open any tag in Google Tag Manager and click Advanced Settings. One of them is the Tag Firing Options drop-down. Thanks to this field, you can configure how many times your tag will fire: Once per Event, Once per Page, and Unlimited.
While some of these options sound obvious, one might need clarification. For example, do you know how exactly the Unlimited option works?
Well, let’s find out. In this blog post, I’ll look at Fire Once per Page vs Once per Event vs Unlimited in the Tag Firing Options field.

Fire Once per Page
This one is pretty obvious. If the tag’s trigger is activated three times on a page but is set to fire only Once per page, then the tag will fire only once on that page. This is useful on regular websites (not single-page applications) when you care whether a visitor completed a specific action once per page, and you don’t need to track every single time a trigger is activated (or Tag Sequencing initiates a tag).
Example: you have implemented Meta Pixel (a.k.a. Facebook Pixel) in the old way (using the Custom HTML tag). The best practice to implement it was to have the FB Pixel Base code separated as a separate tag (see the screenshot below)…
… then, set it as a setup tag (in Tag Sequencing) before every other Facebook Pixel tag (e.g., Pageview).
The important thing here is to ensure that the Facebook Pixel base code (the main code) is set to Fire once per page. And you can do that on the level of that Custom HTML tag.
Speaking of Single-Page Applications, where “pageviews” are not reloading the entire browser tab as regular websites do, the Once per page option will apply to ALL pageviews until the visitor reloads the browser tab.
This means if you set a tag X to fire Once per page, it will fire once. Even if the visitor browses ten pages on your single-page app, the tag X will fire only once. There is no super-simple workaround for that (but I’ve added this idea to my backlog of blog post ideas). It will include playing around with the data layer and tag sequencing.

Fire Once per Event
This one is the most common (because that’s the default setting).
But first, let’s quickly talk about events in Google Tag Manager. The concept is different from the Events in Google Analytics. Simply put, events are the things that are visible in the Preview mode’s left side:
Every single item has an event (except the Message — if you see a Message, that is not an event).
Speaking in more technical terms, a Google Tag Manager event is a dataLayer.push that contains the ‘event’ key, for example:
<script> window.dataLayer = window.dataLayer || []; window.dataLayer.push({ 'event': 'new_subscriber', 'formLocation': 'footer' }); </script>
So, if you have, say, implemented the outbound link click tracking, and want to fire a Google Analytics tag every time any outbound link click action is recorded, keep the Fire once per event option selected. If a visitor clicks any outbound links three times on a page, the tag will fire three times.
Sounds clear? A tag fires based on the dataLayer event, and that event occurs multiple times on the same page, the tag will be fired multiple times.
But what about the Unlimited option?
Unlimited
Honestly, I have never used this Tag Firing Option in my setups; therefore, I cannot give you a good practical example. But I can provide a hypothetical (and a pretty weird) situation where the Unlimited option will work.
First, let me describe the setup.
I have two tags – I named one “Setup tag”, and the other is “Just a tag”. In this case, it does not matter what those tags do.
“Just a tag” is activated on a Custom Event Trigger called “sampleEvent”.
“Setup tag” also uses the same “sampleEvent” Custom Event Trigger.
In “Just a tag’s” Advanced Settings, Tag Sequencing is configured. Before “Just a tag” fires, we have configured the “Setup tag” to fire. So why would anyone do that?
As I have said, I have never used the Unlimited option in real-life projects; therefore, I don’t have good practical examples. This is all hypothetical.
To sum up:
- When the sampleEvent dataLayer.push occurs on a page, you will see it in the Preview and Debug mode.
- When this happens:
- “Just a tag” will fire once (because it has a “sampleEvent” trigger assigned to it)
- “Setup tag” should fire twice because:
- “sampleEvent” trigger will activate the “Setup tag”
- and also Tag Sequencing from “Just a tag” will activate the “Setup tag”, hence the tag will fire twice on the same dataLayer.push event.
But if you check the preview mode after the sampleEvent occurs, you will see that the “Setup tag” has fired only once (instead of twice). Why?
That’s because the Setup tag is configured to fire Once per Event. And in this case, that event is sampleEvent. Even though two factors should have activated the tag (I’m talking about the trigger and tag sequencing), the tag fired once because all of this is happening on the same ONE event, sampleEvent, hence “Fire once per event”
But if you changed the “Setup Tag’s” tag firing option to Unlimited, that tag would have fired twice on the same sampleEvent.
Important: the Unlimited option applies only to Tag Sequencing. If your tag had two triggers of the same type (say, Just Links) and both were activated on the same click, the tag would fire only once.
Fire Once per Page vs Once per Event vs Unlimited: Final words
And that’s the end of the comparison of Fire once per page vs Once per Event vs Unlimited in Google Tag Manager.
The most commonly used is Fire once per Event. If I need to fire a certain one only once per page (regardless of how many times the tag could have fired), I choose the Fire Once per Page. And personally, I have never found a good use case for the Unlimited option. If you have some good examples, let me know in the comments, and maybe I’ll include them in the blog post.
Got questions? Post them in the comments below.

1 COMMENT
Hi Julius,
Thanks a lot for your helpful article. We have actually stumbled over the test in the same session thing...
I guess I have a real world example for the 'unlimited' fire. In our case customers would book (same conversion) in the same session different times, i.e. book a particular meeting room for different time frames. It's quite unlikely but not impossible.