{"id":114974,"date":"2025-02-28T09:23:17","date_gmt":"2025-02-28T09:23:17","guid":{"rendered":"https:\/\/peraltafinancing.com\/analytics\/the-element-visibility-trigger-in-google-tag-manager\/"},"modified":"2025-02-28T09:23:17","modified_gmt":"2025-02-28T09:23:17","slug":"the-element-visibility-trigger-in-google-tag-manager","status":"publish","type":"post","link":"https:\/\/fivemor.com\/?p=114974","title":{"rendered":"The Element Visibility Trigger In Google Tag Manager"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<p>Holy visibility, Batman! <a href=\"https:\/\/www.simoahava.com\/analytics\/use-page-visibility-api-google-tag-manager\/\">Visibility<\/a> is a <a href=\"http:\/\/www.analytics-ninja.com\/blog\/2015\/02\/real-time-page-google-analytics.html\">seriously undervalued<\/a> aspect of web analytics tracking. Too often, we fall into the trap of thinking that \u201cPage Views\u201d actually have something to do with \u201cviewing\u201d a page. Or that <a href=\"https:\/\/www.simoahava.com\/analytics\/scroll-depth-trigger-google-tag-manager\/\">tracking scrolling<\/a> to 25%, 50%, or 75% of vastly different pages makes sense on the aggregate level. So you will be very pleased to know that the Google Tag Manager team (who have been <a href=\"https:\/\/www.simoahava.com\/analytics\/the-youtube-video-trigger-in-google-tag-manager\/\">on<\/a> <a href=\"https:\/\/www.simoahava.com\/analytics\/the-regex-table-variable-in-google-tag-manager\/\">FIRE<\/a> <a href=\"https:\/\/www.simoahava.com\/analytics\/scroll-depth-trigger-google-tag-manager\/\">recently<\/a>), have just published the <strong>Element Visibility<\/strong> trigger. And oh <strong>BOY<\/strong> what a trigger it is!<\/p>\n<div style=\"aspect-ratio: 1500 \/ 1310;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2017\/10\/element-visibility-trigger.jpg\" title=\"Element Visibility Trigger\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"1310\" width=\"1500\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2017\/10\/element-visibility-trigger.jpg#ZgotmplZ\" alt=\"Element Visibility Trigger\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>It\u2019s a <strong>very<\/strong> impressive trigger. Not only does it let you do some <em>proper<\/em> scroll tracking (track to elements, not percentages), but it also includes a feature that lets you track changes in the DOM. This has typically been quite <a href=\"https:\/\/www.simoahava.com\/analytics\/google-tag-manager-dom-listener\/\">difficult to track<\/a> purely client-side, so having the feature natively in <a href=\"https:\/\/tagmanager.google.com\/\">Google Tag Manager<\/a> is very cool. On top of that, you can actually measure true view impressions (impressions for items that are visible to the user) <strong>AND<\/strong> combine that with the actual time the element was viewed for.<\/p>\n<p>In short, the Element Visibility trigger fires whenever an element, or elements, you specify appear in the browser\u2019s <strong>viewport<\/strong>. The viewport is the visible area of the browser window, meaning if an element is visible there, it is viewable by the user.<\/p>\n<div style=\"aspect-ratio: 1912 \/ 1344;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2017\/09\/browser-viewport.jpg\" title=\"Browser viewport\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"1344\" width=\"1912\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2017\/09\/browser-viewport.jpg#ZgotmplZ\" alt=\"Browser viewport\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>With this in mind, let\u2019s jump straight to the features.<\/p>\n<p>                <span class=\"simmer\"><br \/>\n  <span class=\"close\">X<\/span><\/p>\n<p>\n    <span class=\"fa fa-md fa-bell\"\/><br \/>\n    <strong>The Simmer Newsletter<\/strong>\n  <\/p>\n<p>\n    Subscribe to the <a href=\"https:\/\/www.simoahava.com\/newsletter\/\">Simmer newsletter<\/a> to get the latest news and content from Simo Ahava into your email inbox!\n  <\/p>\n<p>  <\/span><\/p>\n<h2 id=\"selection-method\">Selection method<\/h2>\n<p>You have two options here &#8211; element ID and CSS Selector. The former uses <code>document.getElementById<\/code> to match the first element in the page with the given ID. The latter uses <a href=\"https:\/\/www.w3schools.com\/cssref\/css_selectors.asp\">CSS Selectors<\/a> to match the element or a group of elements on the page.<\/p>\n<div style=\"aspect-ratio: 726 \/ 444;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2017\/10\/selection-method.jpg\" title=\"Selection method \"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"444\" width=\"726\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2017\/10\/selection-method.jpg#ZgotmplZ\" alt=\"Selection method \"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>At this point I really recommend you read up on <a href=\"https:\/\/www.w3schools.com\/cssref\/css_selectors.asp\">CSS selectors<\/a> (see also <a href=\"https:\/\/www.simoahava.com\/gtm-tips\/10-useful-css-selectors\/\">my article<\/a> on the topic). They really make Google Tag Manager more than just the sum of its parts.<\/p>\n<ul>\n<li>\n<p><strong>ID<\/strong> &#8211; the trigger waits for an element with a specific <code>id<\/code> attribute to appear in the viewport.<\/p>\n<\/li>\n<li>\n<p><strong>CSS Selector<\/strong> &#8211; the trigger waits for elements that match the CSS selector string to enter the viewport.<\/p>\n<\/li>\n<\/ul>\n<p>The obvious difference between the two is that you can add multiple element selectors into the CSS selector string. For example, if I want to track when the header, the article title, the article body, and the article footer enter the viewport, I could use something like this as the selector:<\/p>\n<p><code>#header, h2.title, div.content, div.footer<\/code><\/p>\n<p>The trigger could then fire when each one of these enters the viewport (see below).<\/p>\n<p>The ID selector, on the other hand, performs better if you have only one element to track.<\/p>\n<h2 id=\"when-to-fire-this-trigger\">When to fire this trigger<\/h2>\n<p>This is where you\u2019ll govern what this trigger actually is. Is it a check to see if a certain element is in the viewport when the page is loaded, or is it an advanced scroll trigger?<\/p>\n<div style=\"aspect-ratio: 640 \/ 296;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2017\/09\/when-to-fire-this-trigger.jpg\" title=\"When to fire this trigger\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"296\" width=\"640\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2017\/09\/when-to-fire-this-trigger.jpg#ZgotmplZ\" alt=\"When to fire this trigger\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<ul>\n<li>\n<p><strong>Once per page<\/strong> &#8211; this trigger will only fire once on the current page. The moment is when the first element that matches the ID or the selector string enters the viewport. Thus if you\u2019ve specified multiple selectors or there are multiple elements with the same ID, this trigger setting will make the trigger fire only once &#8211; when the first matched element enters the viewport.<\/p>\n<\/li>\n<li>\n<p><strong>Once per element<\/strong> &#8211; this trigger will fire just once if an element with a specific ID appears in the viewport (even if multiple elements share the same ID, in which case it will fire just for the first one). However, when using CSS selectors, this setting will fire once for <strong>each element matched by the selector(s)<\/strong>. In other words, this would be the setting to use if you wanted to create a trigger that fires when different parts of the page enter the viewport!<\/p>\n<\/li>\n<li>\n<p><strong>Every time an element appears on-screen<\/strong> &#8211; this trigger fires whenever any matched element appears in the viewport, and will do so each time the element reappears.<\/p>\n<\/li>\n<\/ul>\n<p>Of these, I wager the first two will be most used. Tracking if an element is visible is very useful for e.g. true view impression tracking, and tracking when multiple different elements appear can be used to create an advanced scroll trigger. There might be use cases for the last option too, though.<\/p>\n<h2 id=\"advanced---minimum-percent-visible\">Advanced &#8211; Minimum Percent Visible<\/h2>\n<p>Here you can specify a value in percentages, which is how much of the element needs to be in the viewport for the trigger to fire. So if you set the value to \u201c50\u201d, at least 50% of the matched element needs to be visible for the trigger to fire.<\/p>\n<div style=\"aspect-ratio: 800 \/ 334;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2017\/09\/minimum-percent-visible.jpg\" title=\"Minimum percent visible\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"334\" width=\"800\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2017\/09\/minimum-percent-visible.jpg#ZgotmplZ\" alt=\"Minimum percent visible\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>This is a great way to make sure that <em>enough<\/em> of the ad or content piece is visible for you to interpret the data as meaningful.<\/p>\n<h2 id=\"advanced---on-screen-duration\">Advanced &#8211; On-Screen Duration<\/h2>\n<p>In this field, you can specify the <strong>total time in milliseconds<\/strong> the element must be visible in the viewport for the trigger to fire. Note that this is <strong>cumulative<\/strong>, so let\u2019s say you have the following setting:<\/p>\n<div style=\"aspect-ratio: 892 \/ 448;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2017\/09\/minimum-on-screen-duration.jpg\" title=\"On-screen duration\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"448\" width=\"892\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2017\/09\/minimum-on-screen-duration.jpg#ZgotmplZ\" alt=\"On-screen duration\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>This would fire the trigger only after the matched element(s) have been visible in the viewport for a <strong>total<\/strong> of 5 seconds. In other words, the user could first scroll to the element, view it for one second, then scroll until the element disappears, then scroll back to the element, view it for four additional seconds, at which point the trigger fires.<\/p>\n<div style=\"aspect-ratio: 1740 \/ 250;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2017\/09\/performance-warning.jpg\" title=\"Performance Warning\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"250\" width=\"1740\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2017\/09\/performance-warning.jpg#ZgotmplZ\" alt=\"Performance Warning\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>Note that because GTM has to manage a timer for each element that you want to monitor, tracking a single element with the <strong>Element ID<\/strong> selection method performs better than a bunch of elements defined with CSS selectors.<\/p>\n<h2 id=\"advanced---observe-dom-changes\">Advanced &#8211; Observe DOM changes<\/h2>\n<p>This setting lets you track the visibility of elements that might not exist in the DOM when the page first loads! In other words, if you have dynamically inserted elements, you can check this box to track when they become visible, too.<\/p>\n<p>The most obvious use case is if you have a form which is resilient to GTM\u2019s Form Trigger due to <a href=\"https:\/\/www.simoahava.com\/analytics\/dont-gtm-listeners-work\/\">complications in the on-site JavaScript<\/a>, you can use this trigger setting to wait for an HTML element with the thank you message to pop up. So something like this:<\/p>\n<div style=\"aspect-ratio: 826 \/ 1320;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2017\/10\/observe-dom-changes.jpg\" title=\"Observe DOM Changes\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"1320\" width=\"826\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2017\/10\/observe-dom-changes.jpg#ZgotmplZ\" alt=\"Observe DOM Changes\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>Now the trigger will fire when an element with the ID <code>#form-thank-you<\/code> becomes visible, even if it\u2019s dynamically inserted into the Document Object Model!<\/p>\n<p>Similar to tracking On-Screen Duration, the DOM Changes setting performs better when you track a single element with the Element ID selection method.<\/p>\n<h2 id=\"the-event-object-contents\">The event object contents<\/h2>\n<p>When the visibility trigger fires, an event with the name <code>gtm.elementVisibility<\/code> is pushed into Data Layer. The object has a number of variables you can refer to using Built-in Variables (or Data Layer Variables if you want to configure them manually).<\/p>\n<ul>\n<li>\n<p><code>gtm.element<\/code> &#8211; the element that became visible. You can capture this with the <strong>Click \/ Form Element<\/strong> Built-in Variable.<\/p>\n<\/li>\n<li>\n<p><code>gtm.elementClasses<\/code> &#8211; the class name string of the element that became visible. You can capture this with the <strong>Click \/ Form Classes<\/strong> Built-in Variable.<\/p>\n<\/li>\n<li>\n<p><code>gtm.elementId<\/code> &#8211; the ID value of the element that became visible. You can capture this with the <strong>Click \/ Form ID<\/strong> Built-in Variable.<\/p>\n<\/li>\n<li>\n<p><code>gtm.elementTarget<\/code> &#8211; the target attribute value of the element that became visible. You can capture this with the <strong>Click \/ Form Target<\/strong> Built-in Variable.<\/p>\n<\/li>\n<li>\n<p><code>gtm.elementUrl<\/code> &#8211; the href or action attribute value of the element that became visible. You can capture this with the <strong>Click \/ Form URL<\/strong> Built-in Variable.<\/p>\n<\/li>\n<li>\n<p><code>gtm.visibleRatio<\/code> &#8211; a decimal number between 0 and 100, telling you how much of the element was visible in the viewport when the trigger fired in percentages. You can capture this with the <strong>Percent Visibile<\/strong> Built-in Variable.<\/p>\n<\/li>\n<li>\n<p><code>gtm.visibleTime<\/code> &#8211; the total cumulative time the element has been in the viewport when the trigger fires. The number is in milliseconds. You will only see a value larger than 0 if you\u2019ve set the \u201cOn-Screen Duration\u201d in your trigger (because without a minimum on-screen duration, the trigger will always fire immediately when the element appears). You can capture this with the <strong>On-Screen Duration<\/strong> Built-in Variable.<\/p>\n<\/li>\n<li>\n<p><code>gtm.visibleFirstTime<\/code> &#8211; the time in milliseconds when the element first became visible in the viewport. This time is calculated as the delta from the moment the browser started rendering the Google Tag Manager container snippet to the moment the trigger fired.<\/p>\n<\/li>\n<li>\n<p><code>gtm.visibleLastTime<\/code> &#8211; the time in milliseconds when the element most recently became visible in the viewport. The calculation is similar to <code>gtm.visibleFirstTime<\/code>, except this time each time the trigger fires for the given element, the value is updated.<\/p>\n<\/li>\n<\/ul>\n<p>You can use these variables (preferable as Built-in Variables) to create even more advanced configurations in your other tags, triggers, and variables.<\/p>\n<h2 id=\"built-in-variables\">Built-in Variables<\/h2>\n<p>There are some new built-in variables introduced, too:<\/p>\n<div style=\"aspect-ratio: 1582 \/ 1398;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2017\/09\/visibility-built-in-variables.jpg\" title=\"Built-in Variables Visibility\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"1398\" width=\"1582\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2017\/09\/visibility-built-in-variables.jpg#ZgotmplZ\" alt=\"Built-in Variables Visibility\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>In addition to these, you have the regular Click \/ Form Built-in Variables at your disposal, since the element that fired the Element Visibility trigger is used to populate these Built-in Variables.<\/p>\n<h2 id=\"summary\">Summary<\/h2>\n<p>The past month or two have been crazy in Google Tag Manager land. Features that we\u2019ve been dying to see have been released with impressive speed and attention to detail.<\/p>\n<p>Out of the bunch, I think this new Element Visibility is my favorite one. It has the potential to turn your entire web analytics tracking around, since you can actually focus on tracking interactions that <em>matter<\/em> rather than interactions that simply take place. Visibility is such a huge aspect of things we do on a web page. If an element is not visible, it can\u2019t really be engaged with by a user.<\/p>\n<\/p><\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Holy visibility, Batman! Visibility is a seriously undervalued aspect of web analytics tracking. Too often, we fall into the trap of thinking that \u201cPage Views\u201d actually have something to do with \u201cviewing\u201d a page. Or that tracking scrolling to 25%, 50%, or 75% of vastly different pages makes sense on the aggregate level. So you [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":114975,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12033],"tags":[27300,1531,14495,1791,22089,2135],"dealstore":[],"offerexpiration":[],"class_list":["post-114974","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-analytics","tag-element","tag-google","tag-manager","tag-tag","tag-trigger","tag-visibility"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>The Element Visibility Trigger In Google Tag Manager - Som2ny Network<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fivemor.com\/?p=114974\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Element Visibility Trigger In Google Tag Manager - Som2ny Network\" \/>\n<meta property=\"og:description\" content=\"Holy visibility, Batman! Visibility is a seriously undervalued aspect of web analytics tracking. Too often, we fall into the trap of thinking that \u201cPage Views\u201d actually have something to do with \u201cviewing\u201d a page. Or that tracking scrolling to 25%, 50%, or 75% of vastly different pages makes sense on the aggregate level. So you [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fivemor.com\/?p=114974\" \/>\n<meta property=\"og:site_name\" content=\"Som2ny Network\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-28T09:23:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/element-visibility-trigger.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1500\" \/>\n\t<meta property=\"og:image:height\" content=\"1310\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fivemor.com\/?p=114974#article\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/?p=114974\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\"},\"headline\":\"The Element Visibility Trigger In Google Tag Manager\",\"datePublished\":\"2025-02-28T09:23:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=114974\"},\"wordCount\":1592,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/?p=114974#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/element-visibility-trigger.jpg\",\"keywords\":[\"Element\",\"Google\",\"Manager\",\"TAG\",\"Trigger\",\"Visibility\"],\"articleSection\":[\"Analytics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fivemor.com\/?p=114974#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fivemor.com\/?p=114974\",\"url\":\"https:\/\/fivemor.com\/?p=114974\",\"name\":\"The Element Visibility Trigger In Google Tag Manager - Som2ny Network\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=114974#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/?p=114974#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/element-visibility-trigger.jpg\",\"datePublished\":\"2025-02-28T09:23:17+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fivemor.com\/?p=114974#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fivemor.com\/?p=114974\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/?p=114974#primaryimage\",\"url\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/element-visibility-trigger.jpg\",\"contentUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/element-visibility-trigger.jpg\",\"width\":1500,\"height\":1310},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fivemor.com\/?p=114974#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fivemor.com\/?bp_activities=1\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Element Visibility Trigger In Google Tag Manager\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fivemor.com\/#website\",\"url\":\"https:\/\/fivemor.com\/\",\"name\":\"Som2ny Network\",\"description\":\"Daily Deals\",\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fivemor.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/fivemor.com\/#organization\",\"name\":\"Som2ny Network\",\"url\":\"https:\/\/fivemor.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png\",\"contentUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png\",\"width\":300,\"height\":86,\"caption\":\"Som2ny Network\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/fivemor.com\"],\"url\":\"https:\/\/fivemor.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The Element Visibility Trigger In Google Tag Manager - Som2ny Network","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fivemor.com\/?p=114974","og_locale":"en_US","og_type":"article","og_title":"The Element Visibility Trigger In Google Tag Manager - Som2ny Network","og_description":"Holy visibility, Batman! Visibility is a seriously undervalued aspect of web analytics tracking. Too often, we fall into the trap of thinking that \u201cPage Views\u201d actually have something to do with \u201cviewing\u201d a page. Or that tracking scrolling to 25%, 50%, or 75% of vastly different pages makes sense on the aggregate level. So you [&hellip;]","og_url":"https:\/\/fivemor.com\/?p=114974","og_site_name":"Som2ny Network","article_published_time":"2025-02-28T09:23:17+00:00","og_image":[{"width":1500,"height":1310,"url":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/element-visibility-trigger.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fivemor.com\/?p=114974#article","isPartOf":{"@id":"https:\/\/fivemor.com\/?p=114974"},"author":{"name":"admin","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371"},"headline":"The Element Visibility Trigger In Google Tag Manager","datePublished":"2025-02-28T09:23:17+00:00","mainEntityOfPage":{"@id":"https:\/\/fivemor.com\/?p=114974"},"wordCount":1592,"commentCount":0,"publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"image":{"@id":"https:\/\/fivemor.com\/?p=114974#primaryimage"},"thumbnailUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/element-visibility-trigger.jpg","keywords":["Element","Google","Manager","TAG","Trigger","Visibility"],"articleSection":["Analytics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fivemor.com\/?p=114974#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fivemor.com\/?p=114974","url":"https:\/\/fivemor.com\/?p=114974","name":"The Element Visibility Trigger In Google Tag Manager - Som2ny Network","isPartOf":{"@id":"https:\/\/fivemor.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fivemor.com\/?p=114974#primaryimage"},"image":{"@id":"https:\/\/fivemor.com\/?p=114974#primaryimage"},"thumbnailUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/element-visibility-trigger.jpg","datePublished":"2025-02-28T09:23:17+00:00","breadcrumb":{"@id":"https:\/\/fivemor.com\/?p=114974#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fivemor.com\/?p=114974"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/?p=114974#primaryimage","url":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/element-visibility-trigger.jpg","contentUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/element-visibility-trigger.jpg","width":1500,"height":1310},{"@type":"BreadcrumbList","@id":"https:\/\/fivemor.com\/?p=114974#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fivemor.com\/?bp_activities=1"},{"@type":"ListItem","position":2,"name":"The Element Visibility Trigger In Google Tag Manager"}]},{"@type":"WebSite","@id":"https:\/\/fivemor.com\/#website","url":"https:\/\/fivemor.com\/","name":"Som2ny Network","description":"Daily Deals","publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fivemor.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/fivemor.com\/#organization","name":"Som2ny Network","url":"https:\/\/fivemor.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/#\/schema\/logo\/image\/","url":"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png","contentUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2026\/07\/4a0953c4-logo-300x86-1.png","width":300,"height":86,"caption":"Som2ny Network"},"image":{"@id":"https:\/\/fivemor.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Ffivemor.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png","caption":"admin"},"sameAs":["https:\/\/fivemor.com"],"url":"https:\/\/fivemor.com\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/114974","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=114974"}],"version-history":[{"count":0,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/114974\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/media\/114975"}],"wp:attachment":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=114974"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=114974"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=114974"},{"taxonomy":"dealstore","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fdealstore&post=114974"},{"taxonomy":"offerexpiration","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fofferexpiration&post=114974"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}