{"id":160019,"date":"2025-03-27T16:33:00","date_gmt":"2025-03-27T16:33:00","guid":{"rendered":"https:\/\/som2nynetwork.com\/analytics\/use-page-visibility-api-with-gtm\/"},"modified":"2025-03-27T16:33:00","modified_gmt":"2025-03-27T16:33:00","slug":"use-page-visibility-api-with-gtm","status":"publish","type":"post","link":"https:\/\/som2nynetwork.com\/?p=160019","title":{"rendered":"Use Page Visibility API With GTM"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<p>The <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/Guide\/User_experience\/Using_the_Page_Visibility_API\">Page Visibility API<\/a> for web browsers is pretty sweet. It lets you poll, using some new properties of the <code>document<\/code> object, whether or not the current page is visible to the user. Visibility is hidden if the page is not open in the current browser tab instance, or if the browser window has been minimized.<\/p>\n<div style=\"aspect-ratio: 583 \/ 148;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2014\/09\/page-visibility.jpg\" title=\"Page Visibility API and GTM\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"148\" width=\"583\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2014\/09\/page-visibility.jpg#ZgotmplZ\" alt=\"Page Visibility API and GTM\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>In this post, I\u2019ll give an example of how features of the Page Visibility API could be used with <a href=\"https:\/\/www.google.com\/tagmanager\">Google Tag Manager<\/a>. Do note, however, that browser support for the API pretty much excludes all IE versions older than 10 from the scope of this article.<\/p>\n<p>In this example, we\u2019ll set up some tags, rules, and macros which will help us avoid receiving pageviews for pages which have been opened in tabs but were never read. I don\u2019t know about you, but having a pageview for a page which wasn\u2019t viewed sounds counter-intuitive. The pageview will only get sent once the page first becomes visible.<\/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=\"the-visibility-listener\">The Visibility Listener<\/h2>\n<p>First, we\u2019ll create a visibility listener. What it does is dispatch a browser event every time the visibility state of a page changes.<\/p>\n<div class=\"highlight\">\n<pre style=\"background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4\"><code class=\"language-javascript\" data-lang=\"javascript\"><span style=\"color:#00a\">function<\/span>() {\n  <span style=\"color:#00a\">var<\/span> prefixes = [<span style=\"color:#a50\">'moz'<\/span>, <span style=\"color:#a50\">'ms'<\/span>, <span style=\"color:#a50\">'o'<\/span>, <span style=\"color:#a50\">'webkit'<\/span>];\n\n  <span style=\"color:#00a\">if<\/span> (<span style=\"color:#a50\">'hidden'<\/span> <span style=\"color:#00a\">in<\/span> <span style=\"color:#0aa\">document<\/span>) {\n    <span style=\"color:#00a\">return<\/span> <span style=\"color:#a50\">''<\/span>;\n  }\n\n  <span style=\"color:#aaa;font-style:italic\">\/\/ Loop through each prefix to see if it is supported.\n<\/span><span style=\"color:#aaa;font-style:italic\"\/>  <span style=\"color:#00a\">for<\/span> (<span style=\"color:#00a\">var<\/span> i = <span style=\"color:#099\">0<\/span>; i var testPrefix = prefixes[i] + <span style=\"color:#a50\">'Hidden'<\/span>;\n    <span style=\"color:#00a\">if<\/span> (testPrefix <span style=\"color:#00a\">in<\/span> <span style=\"color:#0aa\">document<\/span>) {\n      <span style=\"color:#00a\">return<\/span> prefixes[i];\n    }\n  }\n\n  <span style=\"color:#00a\">return<\/span>;\n}\n<\/code><\/pre>\n<\/div>\n<div class=\"highlight\">\n<pre style=\"background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4\"><code class=\"language-javascript\" data-lang=\"javascript\"><span style=\"color:#00a\">function<\/span>() {\n  <span style=\"color:#00a\">switch<\/span> ({{visibility prefix}}) {\n    <span style=\"color:#00a\">case<\/span> <span style=\"color:#a50\">''<\/span>:\n      <span style=\"color:#00a\">return<\/span> <span style=\"color:#0aa\">document<\/span>[<span style=\"color:#a50\">'hidden'<\/span>];\n    <span style=\"color:#00a\">case<\/span> <span style=\"color:#a50\">'moz'<\/span>:\n      <span style=\"color:#00a\">return<\/span> <span style=\"color:#0aa\">document<\/span>[<span style=\"color:#a50\">'mozHidden'<\/span>];\n    <span style=\"color:#00a\">case<\/span> <span style=\"color:#a50\">'o'<\/span>:\n      <span style=\"color:#00a\">return<\/span> <span style=\"color:#0aa\">document<\/span>[<span style=\"color:#a50\">'oHidden'<\/span>];\n    <span style=\"color:#00a\">case<\/span> <span style=\"color:#a50\">'webkit'<\/span>:\n      <span style=\"color:#00a\">return<\/span> <span style=\"color:#0aa\">document<\/span>[<span style=\"color:#a50\">'webkitHidden'<\/span>];\n    <span style=\"color:#00a\">default<\/span>:\n      <span style=\"color:#00a\">return<\/span>;\n  }\n}\n<\/code><\/pre>\n<\/div>\n<div class=\"highlight\">\n<pre style=\"background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4\"><code class=\"language-html\" data-lang=\"html\">script&gt;\n  <span style=\"color:#00a\">if<\/span> (<span style=\"color:#00a\">typeof<\/span> {{visibility prefix}} !== <span style=\"color:#a50\">'undefined'<\/span>) {\n\n    <span style=\"color:#00a\">var<\/span> visibilityEvent = {{visibility prefix}} + <span style=\"color:#a50\">'visibilitychange'<\/span>,\n        hiddenState = {{visibility hidden}},\n        visibilityChanged = <span style=\"color:#00a\">function<\/span>() {\n          <span style=\"color:#00a\">if<\/span> (<span style=\"color:#00a\">typeof<\/span> hiddenState !== <span style=\"color:#a50\">'undefined'<\/span>) {\n            dataLayer.push({\n              <span style=\"color:#a50\">'event'<\/span> : <span style=\"color:#a50\">'visibilityChange'<\/span>\n            });\n          }\n        };\n  \n    <span style=\"color:#aaa;font-style:italic\">\/\/ Attach visibility listener to document\n<\/span><span style=\"color:#aaa;font-style:italic\"\/>    <span style=\"color:#0aa\">document<\/span>.addEventListener(visibilityEvent, visibilityChanged, <span style=\"color:#00a\">false<\/span>);\n  }\n<span style=\"color:#1e90ff;font-weight:bold\">script<\/span>&gt;<\/code><\/pre>\n<\/div>\n<ul>\n<li>Set tag to fire upon <strong>{{event}} equals gtm.js<\/strong><\/li>\n<\/ul>\n<p>First we create a utility macro which returns the required browser prefix for setting up the listener and for testing visibility state. In the next macro, we retrieve the state of the document (true: document is hidden, false: document is visible).<\/p>\n<p>Finally, in the tag we create a listener for changes in page visibility. If visibility changes, a <code>dataLayer<\/code> event is pushed.<\/p>\n<p>We will utilize this data in the following example.<\/p>\n<h2 id=\"block-pageview-until-page-is-visible\">Block Pageview Until Page Is Visible<\/h2>\n<p>So the point here is to not send a pageview to Google Analytics until the page becomes visible. This applies to all your events as well, so you\u2019ll need to add these same rules and functions (modified to match the original firing logic) to your event tags, or you might end up having sessions with only events and no pageviews. This is to be avoided.<\/p>\n<p>Here\u2019s the logic:<\/p>\n<ol>\n<li>\n<p>When the pageview is first set to fire (usually <strong>{{event}} equals gtm.js<\/strong>), use page visibility as a blocking rule. If the page is hidden, do not fire the tag.<\/p>\n<\/li>\n<li>\n<p>When the page becomes visible, use the visibility event as a trigger for the tag.<\/p>\n<\/li>\n<li>\n<p>When the pageview has fired, use its hitCallback to prevent the visibility listener from triggering the tag again.<\/p>\n<\/li>\n<\/ol>\n<p>So, let\u2019s get going.<\/p>\n<div class=\"highlight\">\n<pre style=\"background-color:#fff;-moz-tab-size:4;-o-tab-size:4;tab-size:4\"><code class=\"language-javascript\" data-lang=\"javascript\"><span style=\"color:#00a\">function<\/span>() {\n  <span style=\"color:#00a\">return<\/span> <span style=\"color:#00a\">function<\/span>() {\n    <span style=\"color:#00a\">if<\/span> (<span style=\"color:#00a\">typeof<\/span> {{visibility prefix}} !== <span style=\"color:#a50\">'undefined'<\/span>) {\n      <span style=\"color:#00a\">var<\/span> visibilityEvent = {{visibility prefix}} + <span style=\"color:#a50\">'visibilitychange'<\/span>;\n      <span style=\"color:#0aa\">document<\/span>.removeEventListener(visibilityEvent, visibilityChanged);\n    }\n  }\n}\n<\/code><\/pre>\n<\/div>\n<ul>\n<li>\n<p>In your pageview tag, create a new rule with the following two conditions, and add it to the tag. Keep all the old rules in place as well!<\/p>\n<\/li>\n<li>\n<p>In your pageview tag, add the following <strong>Blocking Rule<\/strong><\/p>\n<ul>\n<li><strong>{{visibility hidden}} equals true<\/strong><\/li>\n<\/ul>\n<\/li>\n<li>\n<p>In your pageview tag, browse all the way down to <strong>Fields to Set<\/strong>, and add a new field<\/p>\n<\/li>\n<\/ul>\n<p>And that should do it. This is a long chain of actions, but it follows the path described in the beginning of this section.<\/p>\n<h2 id=\"conclusions\">Conclusions<\/h2>\n<p>The Page Visibility API is pretty cool, but it\u2019s first and foremost designed to save resources. Use it to stop a video from playing when the tab is not focused, or to stop an image carousel from proceeding.<\/p>\n<p>With Google Tag Manager, you could do a number of things, such as:<\/p>\n<ol>\n<li>\n<p>Block pageview for non-visible pages (explored in this post)<\/p>\n<\/li>\n<li>\n<p>Send visibility during pageview as a Custom Dimension (to track if the page is opened in a new tab or directly)<\/p>\n<\/li>\n<li>\n<p>Track visibility change as a GA event (to see if people focus on your content)<\/p>\n<\/li>\n<li>\n<p>Pause Timer Listener when page is hidden, and restart it when it becomes visible<\/p>\n<\/li>\n<\/ol>\n<p>And so on.<\/p>\n<\/p><\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>The Page Visibility API for web browsers is pretty sweet. It lets you poll, using some new properties of the document object, whether or not the current page is visible to the user. Visibility is hidden if the page is not open in the current browser tab instance, or if the browser window has been [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":160021,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12033],"tags":[13966,32680,4347,2135],"dealstore":[],"offerexpiration":[],"class_list":["post-160019","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-analytics","tag-api","tag-gtm","tag-page","tag-visibility"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Use Page Visibility API With GTM - 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:\/\/som2nynetwork.com\/?p=160019\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Use Page Visibility API With GTM - Som2ny Network\" \/>\n<meta property=\"og:description\" content=\"The Page Visibility API for web browsers is pretty sweet. It lets you poll, using some new properties of the document object, whether or not the current page is visible to the user. Visibility is hidden if the page is not open in the current browser tab instance, or if the browser window has been [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/som2nynetwork.com\/?p=160019\" \/>\n<meta property=\"og:site_name\" content=\"Som2ny Network\" \/>\n<meta property=\"article:published_time\" content=\"2025-03-27T16:33:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2025\/03\/page-visibility.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"583\" \/>\n\t<meta property=\"og:image:height\" content=\"148\" \/>\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=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/som2nynetwork.com\/?p=160019#article\",\"isPartOf\":{\"@id\":\"https:\/\/som2nynetwork.com\/?p=160019\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/som2nynetwork.com\/#\/schema\/person\/34a251993513824056d80e6fd018db30\"},\"headline\":\"Use Page Visibility API With GTM\",\"datePublished\":\"2025-03-27T16:33:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/som2nynetwork.com\/?p=160019\"},\"wordCount\":642,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/som2nynetwork.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/som2nynetwork.com\/?p=160019#primaryimage\"},\"thumbnailUrl\":\"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2025\/03\/page-visibility.jpg\",\"keywords\":[\"API\",\"GTM\",\"Page\",\"Visibility\"],\"articleSection\":[\"Analytics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/som2nynetwork.com\/?p=160019#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/som2nynetwork.com\/?p=160019\",\"url\":\"https:\/\/som2nynetwork.com\/?p=160019\",\"name\":\"Use Page Visibility API With GTM - Som2ny Network\",\"isPartOf\":{\"@id\":\"https:\/\/som2nynetwork.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/som2nynetwork.com\/?p=160019#primaryimage\"},\"image\":{\"@id\":\"https:\/\/som2nynetwork.com\/?p=160019#primaryimage\"},\"thumbnailUrl\":\"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2025\/03\/page-visibility.jpg\",\"datePublished\":\"2025-03-27T16:33:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/som2nynetwork.com\/?p=160019#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/som2nynetwork.com\/?p=160019\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/som2nynetwork.com\/?p=160019#primaryimage\",\"url\":\"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2025\/03\/page-visibility.jpg\",\"contentUrl\":\"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2025\/03\/page-visibility.jpg\",\"width\":583,\"height\":148},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/som2nynetwork.com\/?p=160019#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/som2nynetwork.com\/?bp_activities=1\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Use Page Visibility API With GTM\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/som2nynetwork.com\/#website\",\"url\":\"https:\/\/som2nynetwork.com\/\",\"name\":\"Som2ny Network\",\"description\":\"Daily Deals\",\"publisher\":{\"@id\":\"https:\/\/som2nynetwork.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/som2nynetwork.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/som2nynetwork.com\/#organization\",\"name\":\"Som2ny Network\",\"url\":\"https:\/\/som2nynetwork.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/som2nynetwork.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2026\/05\/4a0953c4-logo-300x86-1.png\",\"contentUrl\":\"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2026\/05\/4a0953c4-logo-300x86-1.png\",\"width\":300,\"height\":86,\"caption\":\"Som2ny Network\"},\"image\":{\"@id\":\"https:\/\/som2nynetwork.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/som2nynetwork.com\/#\/schema\/person\/34a251993513824056d80e6fd018db30\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/som2nynetwork.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Fsom2nynetwork.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%2Fsom2nynetwork.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/som2nynetwork.com\"],\"url\":\"https:\/\/som2nynetwork.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Use Page Visibility API With GTM - 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:\/\/som2nynetwork.com\/?p=160019","og_locale":"en_US","og_type":"article","og_title":"Use Page Visibility API With GTM - Som2ny Network","og_description":"The Page Visibility API for web browsers is pretty sweet. It lets you poll, using some new properties of the document object, whether or not the current page is visible to the user. Visibility is hidden if the page is not open in the current browser tab instance, or if the browser window has been [&hellip;]","og_url":"https:\/\/som2nynetwork.com\/?p=160019","og_site_name":"Som2ny Network","article_published_time":"2025-03-27T16:33:00+00:00","og_image":[{"width":583,"height":148,"url":"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2025\/03\/page-visibility.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/som2nynetwork.com\/?p=160019#article","isPartOf":{"@id":"https:\/\/som2nynetwork.com\/?p=160019"},"author":{"name":"admin","@id":"https:\/\/som2nynetwork.com\/#\/schema\/person\/34a251993513824056d80e6fd018db30"},"headline":"Use Page Visibility API With GTM","datePublished":"2025-03-27T16:33:00+00:00","mainEntityOfPage":{"@id":"https:\/\/som2nynetwork.com\/?p=160019"},"wordCount":642,"commentCount":0,"publisher":{"@id":"https:\/\/som2nynetwork.com\/#organization"},"image":{"@id":"https:\/\/som2nynetwork.com\/?p=160019#primaryimage"},"thumbnailUrl":"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2025\/03\/page-visibility.jpg","keywords":["API","GTM","Page","Visibility"],"articleSection":["Analytics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/som2nynetwork.com\/?p=160019#respond"]}]},{"@type":"WebPage","@id":"https:\/\/som2nynetwork.com\/?p=160019","url":"https:\/\/som2nynetwork.com\/?p=160019","name":"Use Page Visibility API With GTM - Som2ny Network","isPartOf":{"@id":"https:\/\/som2nynetwork.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/som2nynetwork.com\/?p=160019#primaryimage"},"image":{"@id":"https:\/\/som2nynetwork.com\/?p=160019#primaryimage"},"thumbnailUrl":"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2025\/03\/page-visibility.jpg","datePublished":"2025-03-27T16:33:00+00:00","breadcrumb":{"@id":"https:\/\/som2nynetwork.com\/?p=160019#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/som2nynetwork.com\/?p=160019"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/som2nynetwork.com\/?p=160019#primaryimage","url":"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2025\/03\/page-visibility.jpg","contentUrl":"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2025\/03\/page-visibility.jpg","width":583,"height":148},{"@type":"BreadcrumbList","@id":"https:\/\/som2nynetwork.com\/?p=160019#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/som2nynetwork.com\/?bp_activities=1"},{"@type":"ListItem","position":2,"name":"Use Page Visibility API With GTM"}]},{"@type":"WebSite","@id":"https:\/\/som2nynetwork.com\/#website","url":"https:\/\/som2nynetwork.com\/","name":"Som2ny Network","description":"Daily Deals","publisher":{"@id":"https:\/\/som2nynetwork.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/som2nynetwork.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/som2nynetwork.com\/#organization","name":"Som2ny Network","url":"https:\/\/som2nynetwork.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/som2nynetwork.com\/#\/schema\/logo\/image\/","url":"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2026\/05\/4a0953c4-logo-300x86-1.png","contentUrl":"https:\/\/som2nynetwork.com\/wp-content\/uploads\/2026\/05\/4a0953c4-logo-300x86-1.png","width":300,"height":86,"caption":"Som2ny Network"},"image":{"@id":"https:\/\/som2nynetwork.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/som2nynetwork.com\/#\/schema\/person\/34a251993513824056d80e6fd018db30","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/som2nynetwork.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/729ae85bf62b9917e93538db2f2688ca?s=96&r=g&default=https%3A%2F%2Fsom2nynetwork.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%2Fsom2nynetwork.com%2Fwp-content%2Fplugins%2Fbuddypress-first-letter-avatar%2Fimages%2Fdefault%2F96%2Flatin_a.png","caption":"admin"},"sameAs":["https:\/\/som2nynetwork.com"],"url":"https:\/\/som2nynetwork.com\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/som2nynetwork.com\/index.php?rest_route=\/wp\/v2\/posts\/160019","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/som2nynetwork.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/som2nynetwork.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/som2nynetwork.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/som2nynetwork.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=160019"}],"version-history":[{"count":0,"href":"https:\/\/som2nynetwork.com\/index.php?rest_route=\/wp\/v2\/posts\/160019\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/som2nynetwork.com\/index.php?rest_route=\/wp\/v2\/media\/160021"}],"wp:attachment":[{"href":"https:\/\/som2nynetwork.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=160019"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/som2nynetwork.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=160019"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/som2nynetwork.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=160019"},{"taxonomy":"dealstore","embeddable":true,"href":"https:\/\/som2nynetwork.com\/index.php?rest_route=%2Fwp%2Fv2%2Fdealstore&post=160019"},{"taxonomy":"offerexpiration","embeddable":true,"href":"https:\/\/som2nynetwork.com\/index.php?rest_route=%2Fwp%2Fv2%2Fofferexpiration&post=160019"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}