Google Tag Manager: Should You implement Fire Once per Page, per Event or Unlimited?
The Tag Firing Options in Google Tag Manager provide a range of choices to configure how often your tag will fire. By clicking on Advanced Settings for any tag, you can access the Tag Firing Options drop-down. The available options are Once per Event, Once per Page, and Unlimited. Each option serves a specific purpose and can be useful depending on your tagging needs.
Although the Once per Event and Once per Page options may be straightforward, the Unlimited option may seem unclear. Therefore, this blog post will clarify the Unlimited option and compare it with the other two options. We will delve into Fire Once per Page vs Once per Event vs Unlimited in Tag Firing Options to help you make informed decisions about your tagging strategy.
Option #1: Fire Once per Page
It is pretty evident that if a tag’s trigger gets activated three times on a page, but the tag is configured to fire Once per page, the tag will fire only once on that particular page. This feature is beneficial for standard websites that are not single-page applications. In such cases, tracking a visitor’s completion of a specific action only once per page is sufficient, and there is no need to record every single trigger activation or tag sequencing initiation.
For instance, suppose you have conventionally integrated Facebook Pixel, i.e., by utilizing the Custom HTML tag. In that case, the recommended approach is to have the FB Pixel Base code isolated as a distinct tag, as depicted in the screenshot below.
And after that, it is necessary to set it as a setup tag in Tag Sequencing ahead of all other Facebook Pixel tags, such as Pageview.
It is crucial to ensure that the Facebook Pixel base code, which serves as the main code, is set to Fire once per page. You can achieve this at the Custom HTML tag level.
Regarding Single-Page Applications, where pageviews do not reload the entire browser tab like regular websites, the Once per page option will apply to ALL pageviews until the visitor reloads the browser tab entirely.
Therefore, if you configure a tag X to fire Once per page, it will only fire once until the visitor performs a complete page refresh. Even if the visitor navigates through ten pages on your single-page app, the tag X will only fire once.
Option #2: Fire Once per Event
This option is the most prevalent one as it is the default setting.
Before delving into the details of this option, let’s briefly discuss events in Google Tag Manager. Events are distinct from the Events in Google Analytics and refer to the elements visible on the left side of Preview mode:
Each item displayed on the left side of Preview mode represents an event, except for the Message. If you encounter a Message, it does not qualify as an event.
To elaborate in more technical jargon, a Google Tag Manager event refers to a dataLayer.push that incorporates the ‘event’ key. Here’s an example:
- script>
dataLayer = window.dataLayer || [];
window.dataLayer.push({
‘event’: ‘new_subscriber’,
‘formLocation’: ‘footer’
});
</script>
So, if you have, say, implemented the outbound link click tracking and you want to fire a Google Analytics tag every time any outbound link click is clicked, 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 if that event occurs multiple times on the same page, the tag will be fired multiple times.
Let’s take a look at the Unlimited option now.
Option #3: Unlimited
To be honest, I haven’t utilized this Tag Firing Option in my setups, so I cannot provide a suitable practical example. However, I can offer a hypothetical scenario (albeit an unusual one) where the Unlimited option might be effective.
Allow me to explain the setup.
I have two tags – one named “Setup tag,” and the other dubbed “Just a tag.” In this case, their specific functions are irrelevant.
The tag called “Just a tag” is triggered by a Custom Event Trigger named “sampleEvent.”
The “Setup tag” is set up to use the same “sampleEvent” Custom Event Trigger as the “Just a tag”. Additionally, the Tag Sequencing in the Advanced Settings of “Just a tag” is configured so that the “Setup tag” fires before “Just a tag” does.
While the situation described above may seem strange, it is purely hypothetical, as I have never used the Unlimited option in any of my real-life projects. Therefore, I cannot provide a practical example of when the Unlimited option would be useful.
In conclusion:
- When the sampleEvent dataLayer.push occurs on a page, it will be visible in Preview and Debug mode.
- As a result, “Just a tag” will fire once since it has a “sampleEvent” trigger assigned to it.
- Additionally, the “Setup tag” should fire twice because the “sampleEvent” trigger will activate it, and the Tag Sequencing from “Just a tag” will also activate it. Therefore, the tag will fire twice on the same dataLayer.push event.
In the Preview mode, after the sampleEvent occurs, you’ll notice that the “Setup tag” has only fired once instead of twice. But what could be the reason for this?
The reason for this is that the Setup tag was set to fire Once per Event. Despite the trigger and tag sequencing, which should have activated the tag twice, it only fired once because all of this was happening on the same event, sampleEvent. Therefore, the tag was set to “Fire once per event.”
However, if the “Setup Tag’s” tag firing option were changed to Unlimited, the tag would have fired twice on the same sampleEvent.
It is important to note that the Unlimited option is only applicable to Tag Sequencing. If a tag has two triggers of the same type, such as Just Links, and both are activated by the same click, the tag will only fire once.
Was this article helpful?
Support us to keep up the good work and to provide you even better content. Your donations will be used to help students get access to quality content for free and pay our contributors’ salaries, who work hard to create this website content! Thank you for all your support!
Reaction to comment: Cancel reply