{"id":91443,"date":"2025-02-16T10:09:02","date_gmt":"2025-02-16T10:09:02","guid":{"rendered":"https:\/\/peraltafinancing.com\/analytics\/gtmtips-collect-isp-as-a-custom-dimension-in-google-analytics\/"},"modified":"2025-02-16T10:09:02","modified_gmt":"2025-02-16T10:09:02","slug":"gtmtips-collect-isp-as-a-custom-dimension-in-google-analytics","status":"publish","type":"post","link":"https:\/\/fivemor.com\/?p=91443","title":{"rendered":"#GTMTips: Collect ISP As A Custom Dimension In Google Analytics"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<blockquote>\n<p><strong>Update 6 April 2020<\/strong>: I updated the template in the gallery to the latest version of the <a href=\"https:\/\/ipgeolocation.io\/documentation\/ip-geolocation-api-jquery-sdk.html\">IP Geolocation API SDK<\/a>, which no longer requires jQuery. Also, the SDK now handles API request caching to browser storage automatically, so the \u201cEnable Session Storage\u201d option was added to the template.<\/p>\n<\/blockquote>\n<p><a href=\"https:\/\/analytics.google.com\/\">Google Analytics<\/a> had been foreshadowing the deprecation of the <strong>Network Domain<\/strong> and <strong>Service Provider<\/strong> custom dimensions since late 2019. On <strong>February 4<\/strong>, the plug was finally pulled, and both these dimensions started flatlining to <code>(not set)<\/code> in Google Analytics reports. For more information about this, see these articles:<\/p>\n<p>This article is not a post-mortem. I won\u2019t go into speculating why they made this change, nor will I anguish over the loss of these dimensions. Instead, I want to give you a practical way forward: a method with which you can reinstate <em>some<\/em> of the lost information as early as \u2026 today!<\/p>\n<p>We\u2019ll be using <a href=\"https:\/\/tagmanager.google.com\/\">Google Tag Manager<\/a>, my <a href=\"https:\/\/tagmanager.google.com\/gallery\/#\/owners\/gtm-templates-simo-ahava\/templates\/ip-geolocation-api\">IP Geolocation API<\/a> template in the template gallery, and you\u2019ll also need a (free) API key from <a href=\"https:\/\/ipgeolocation.io\/signup.html\">ipgeolocation.io<\/a>.<\/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=\"tip-109-get-your-service-provider-data-back\">Tip 109: Get your Service Provider data back<\/h2>\n<div style=\"aspect-ratio: 960 \/ 540;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2020\/02\/service-provider-custom-dimension.jpg\" title=\"service provider custom dimension\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"540\" width=\"960\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2020\/02\/service-provider-custom-dimension.jpg#ZgotmplZ\" alt=\"service provider custom dimension\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<blockquote>\n<p>As you can see, this solution only reinstates the ISP information &#8211; not the Network Domain. This should typically be enough for bot \/ spam removal, but in case you do want the qualified domain names of the IP addresses, you\u2019ll need to look at other IP APIs out there.<\/p>\n<\/blockquote>\n<h3 id=\"get-the-api-key\">Get the API key<\/h3>\n<p>First, you\u2019ll need to visit <a href=\"https:\/\/ipgeolocation.io\/\">ipgeolocation.io<\/a> and get an API key. The free key gives you 30K requests a month (1K maximum per day), which is not a lot, I know. You can upgrade to paid plans to increase the quotas, and you can add some client-side throttling (covered <a href=\"#throttling-the-api-requests\">later<\/a> in this article) to reduce the number of API calls being made.<\/p>\n<div style=\"aspect-ratio: 2590 \/ 492;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2020\/02\/get-api-key.jpg\" title=\"Get API Key\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"492\" width=\"2590\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2020\/02\/get-api-key.jpg#ZgotmplZ\" alt=\"Get API Key\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<h3 id=\"configure-the-template\">Configure the template<\/h3>\n<p>Once you have the API key, visit the template gallery and fetch the <a href=\"https:\/\/tagmanager.google.com\/gallery\/#\/owners\/gtm-templates-simo-ahava\/templates\/ip-geolocation-api\">IP Geolocation API<\/a> custom template.<\/p>\n<p>Then, in your workspace, create a new tag, and choose the IP Geolocation API template as the foundation.<\/p>\n<p>Add your <strong>API Key<\/strong> to the respective field. You can leave the other settings at their defaults, but if you want, you can expand <strong>Other Settings<\/strong> and check the new <strong>Add Hashed IP<\/strong> configuration.<\/p>\n<div style=\"aspect-ratio: 1798 \/ 1798;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2020\/02\/hashed-ip.jpg\" title=\"Hashed IP\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"1798\" width=\"1798\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2020\/02\/hashed-ip.jpg#ZgotmplZ\" alt=\"Hashed IP\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>This setting hashes the user\u2019s IP address (using <strong>SHA256<\/strong>), and writes it into the <code>dataLayer<\/code> object with the key <code>geoData.hashedIp<\/code>. Since it\u2019s hashed and can\u2019t be decrypted, you can send this as a custom dimension to Google Analytics. As it can no longer be reversed to identify the machine the user is using, it won\u2019t be in violation of Google Analytics\u2019 TOS. Naturally, it is still a potential user identifier, so you need to make sure sending it is in compliance with laws governing the passing and processing of such identifiers.<\/p>\n<p>You can set the tag to fire on the <strong>All Pages<\/strong> trigger.<\/p>\n<h3 id=\"create-the-custom-dimensions\">Create the custom dimensions<\/h3>\n<p>Once the tag is in place, you can create the custom dimensions in Google Analytics. Whether you use <strong>session scope<\/strong> or <strong>user scope<\/strong> is up to you. The first gives you some flexibility for tracking \/ blocking internal traffic, and the second might be more useful for identifying bots.<\/p>\n<div style=\"aspect-ratio: 2316 \/ 336;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2020\/02\/custom-dimensions.jpg\" title=\"Custom Dimensions\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"336\" width=\"2316\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2020\/02\/custom-dimensions.jpg#ZgotmplZ\" alt=\"Custom Dimensions\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<h3 id=\"create-the-event-tag-trigger-and-variables\">Create the Event tag, trigger, and variables<\/h3>\n<p>Finally, you need to create the Event tag, the trigger to fire it with, and any Data Layer variables you want to send.<\/p>\n<p>The IP information is written into a <code>dataLayer<\/code> object that looks roughly like this:<\/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\">{\n  event: <span style=\"color:#a50\">'geolocate'<\/span>,\n  geoData: {\n    ip: <span style=\"color:#a50\">'123.123.123.123'<\/span>,\n    hashedIp: <span style=\"color:#a50\">'9iCCGWzjVQPV74KJa3iiS9RKiof6m7y\/8aSD9WyT0mw='<\/span>,\n    isp: <span style=\"color:#a50\">'My ISP Org'<\/span>,\n    ...\n  }\n}\n<\/code><\/pre>\n<\/div>\n<p>To fire your tag, create a new <strong>Custom Event trigger<\/strong>:<\/p>\n<div style=\"aspect-ratio: 520 \/ 382;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2020\/01\/custom-event.jpg\" title=\"Custom Event trigger\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"382\" width=\"520\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2020\/01\/custom-event.jpg#ZgotmplZ\" alt=\"Custom Event trigger\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>You can then create Data Layer variables for the <code>isp<\/code> and <code>hashedIp<\/code> fields (and <a href=\"https:\/\/ipgeolocation.io\/documentation\/ip-geolocation-api.html\">any other fields<\/a> you might want to utilize from the API response object).<\/p>\n<p>Here\u2019s an example of what the Data Layer variable for the ISP information looks like:<\/p>\n<div style=\"aspect-ratio: 1846 \/ 910;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2020\/02\/dlv-isp.jpg\" title=\"ISP Data Layer variable\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"910\" width=\"1846\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2020\/02\/dlv-isp.jpg#ZgotmplZ\" alt=\"ISP Data Layer variable\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>Finally, you need an <strong>Event<\/strong> tag to send the information to Google Analytics. It could look like this:<\/p>\n<div style=\"aspect-ratio: 1838 \/ 1672;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2020\/02\/isp-event-tag.jpg\" title=\"ISP event tag\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"1672\" width=\"1838\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2020\/02\/isp-event-tag.jpg#ZgotmplZ\" alt=\"ISP event tag\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>Key things are naturally the custom dimensions, but also setting the <strong>Non-Interaction Hit<\/strong> field to <strong>True<\/strong>.<\/p>\n<p>Make sure the tag fires on the Custom Event trigger you just created.<\/p>\n<h3 id=\"testing-the-setup\">Testing the setup<\/h3>\n<p>To test the setup, use the <a href=\"https:\/\/chrome.google.com\/webstore\/detail\/gtmga-debug\/ilnpmccnfdjdjjikgkefkcegefikecdc?hl=en\">GTM\/GA Debug<\/a> extension.<\/p>\n<p>Load the Preview container version in your browser, with the extension active, and then check that a hit is sent to Google Analytics with all the information you included in it.<\/p>\n<div style=\"aspect-ratio: 3770 \/ 968;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2020\/02\/isp-event-ga-debug.jpg\" title=\"ISP Event GA Debug\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"968\" width=\"3770\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2020\/02\/isp-event-ga-debug.jpg#ZgotmplZ\" alt=\"ISP Event GA Debug\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>Remember to check your Google Analytics data in a few hours (you might need to wait even longer if it\u2019s a new custom dimension) to make sure the data is being populated correctly.<\/p>\n<h3 id=\"throttling-the-api-requests\">Throttling the API requests<\/h3>\n<p>Remember that in the free version of the API you only have 1000 requests per day? That\u2019s definitely not a lot. So you can <strong>throttle<\/strong> the requests to make sure they only fire once per session, or even once per user.<\/p>\n<p>For this, you need <strong>browser cookies<\/strong> or some other form of browser storage.<\/p>\n<p>The <strong>session cookie<\/strong> is something you can manipulate with <a href=\"https:\/\/www.simoahava.com\/analytics\/customtask-the-guide\/\">customTask<\/a>. In fact, I\u2019ve written <a href=\"https:\/\/www.simoahava.com\/analytics\/create-and-update-google-analytics-session-timeout-cookie\/\">a solution for updating a session cookie<\/a> with every Google Analytics hit.<\/p>\n<p>Once you have the <code>customTask<\/code> in place, you\u2019ll need to modify the trigger on the <strong>IP Geolocation API<\/strong> tag to only fire if the cookie does not exist (i.e. there\u2019s no active session). Instead of an <strong>All Pages<\/strong> trigger, you\u2019ll need a new <strong>Page View<\/strong> trigger. Also, you\u2019ll need a <strong>1st Party Cookie<\/strong> variable as instructed in <a href=\"https:\/\/www.simoahava.com\/analytics\/create-and-update-google-analytics-session-timeout-cookie\/\">the guide<\/a>. The final trigger should look something like this:<\/p>\n<div style=\"aspect-ratio: 2844 \/ 892;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2020\/02\/page-view-trigger.jpg\" title=\"Page View trigger\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"892\" width=\"2844\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2020\/02\/page-view-trigger.jpg#ZgotmplZ\" alt=\"Page View trigger\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>Using this trigger on the IP Geolocation API tag, you\u2019ll restrict the API request to only happen once every 30 minutes of GA inactivity. That should keep the number of requests down nicely.<\/p>\n<p>You can also throttle <em>per user<\/em>, by <a href=\"https:\/\/www.simoahava.com\/analytics\/two-ways-to-persist-data-via-google-tag-manager\/\">creating a cookie<\/a> after the API request has completed (e.g. in a new custom template or a Custom HTML tag), and then using the existence of this cookie to prevent the API tag from firing again.<\/p>\n<p>I would personally recommend to throttle only per session, as ISPs can change as the user moves around, and scoping the ISP to the user might block actual, valid traffic as well.<\/p>\n<h2 id=\"summary\">Summary<\/h2>\n<p>In this article, we\u2019ve learned how to repurpose a gallery template to return some of the data we\u2019ve lost as Google deprecated the <strong>Service Provider<\/strong> and <strong>Network Domain<\/strong> dimensions.<\/p>\n<p>In addition to that, we go the additional bonus of collecting the <strong>hashed IP address<\/strong> of the user. This can be used to further filter out bots, as you can identify hashed IP addresses belonging to bots and add them to a blacklist either in your Google Tag Manager triggers, or in Google Analytics\u2019 filters.<\/p>\n<p>The downside of the IP Geolocation API is that it doesn\u2019t expose the <strong>Network Domain<\/strong> dimension. For this, you\u2019ll need some other API and some other solution. I\u2019m sure other authors will be quick to introduce solutions similar to mine, which you can then check out and implement if they seem better for your use cases.<\/p>\n<p>There\u2019s an upside to using an API solution of your own rather than relying on Google\u2019s reverse lookups &#8211; you have more transparency, more options, and more methods to comply with laws and regulations that govern the parsing of user identifiers, personal data, and IP address lookups.<\/p>\n<p>I hope you found this useful! Please let me know in the comments if you have suggestions for improving the setup, or if you didn\u2019t understand something &#8211; I\u2019m here to help.<\/p>\n<\/p><\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>Update 6 April 2020: I updated the template in the gallery to the latest version of the IP Geolocation API SDK, which no longer requires jQuery. Also, the SDK now handles API request caching to browser storage automatically, so the \u201cEnable Session Storage\u201d option was added to the template. Google Analytics had been foreshadowing the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":91444,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12033],"tags":[12765,3356,834,34452,1531,14492,44084],"dealstore":[],"offerexpiration":[],"class_list":["post-91443","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-analytics","tag-analytics","tag-collect","tag-custom","tag-dimension","tag-google","tag-gtmtips","tag-isp"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>#GTMTips: Collect ISP As A Custom Dimension In Google Analytics - 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=91443\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"#GTMTips: Collect ISP As A Custom Dimension In Google Analytics - Som2ny Network\" \/>\n<meta property=\"og:description\" content=\"Update 6 April 2020: I updated the template in the gallery to the latest version of the IP Geolocation API SDK, which no longer requires jQuery. Also, the SDK now handles API request caching to browser storage automatically, so the \u201cEnable Session Storage\u201d option was added to the template. Google Analytics had been foreshadowing the [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fivemor.com\/?p=91443\" \/>\n<meta property=\"og:site_name\" content=\"Som2ny Network\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-16T10:09:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/service-provider-custom-dimension.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\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=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fivemor.com\/?p=91443#article\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/?p=91443\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\"},\"headline\":\"#GTMTips: Collect ISP As A Custom Dimension In Google Analytics\",\"datePublished\":\"2025-02-16T10:09:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=91443\"},\"wordCount\":1275,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/?p=91443#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/service-provider-custom-dimension.jpg\",\"keywords\":[\"Analytics\",\"Collect\",\"Custom\",\"Dimension\",\"Google\",\"GTMTips\",\"ISP\"],\"articleSection\":[\"Analytics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fivemor.com\/?p=91443#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fivemor.com\/?p=91443\",\"url\":\"https:\/\/fivemor.com\/?p=91443\",\"name\":\"#GTMTips: Collect ISP As A Custom Dimension In Google Analytics - Som2ny Network\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=91443#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/?p=91443#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/service-provider-custom-dimension.jpg\",\"datePublished\":\"2025-02-16T10:09:02+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fivemor.com\/?p=91443#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fivemor.com\/?p=91443\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/?p=91443#primaryimage\",\"url\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/service-provider-custom-dimension.jpg\",\"contentUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/service-provider-custom-dimension.jpg\",\"width\":960,\"height\":540},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fivemor.com\/?p=91443#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fivemor.com\/?bp_activities=1\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"#GTMTips: Collect ISP As A Custom Dimension In Google Analytics\"}]},{\"@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":"#GTMTips: Collect ISP As A Custom Dimension In Google Analytics - 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=91443","og_locale":"en_US","og_type":"article","og_title":"#GTMTips: Collect ISP As A Custom Dimension In Google Analytics - Som2ny Network","og_description":"Update 6 April 2020: I updated the template in the gallery to the latest version of the IP Geolocation API SDK, which no longer requires jQuery. Also, the SDK now handles API request caching to browser storage automatically, so the \u201cEnable Session Storage\u201d option was added to the template. Google Analytics had been foreshadowing the [&hellip;]","og_url":"https:\/\/fivemor.com\/?p=91443","og_site_name":"Som2ny Network","article_published_time":"2025-02-16T10:09:02+00:00","og_image":[{"width":960,"height":540,"url":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/service-provider-custom-dimension.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fivemor.com\/?p=91443#article","isPartOf":{"@id":"https:\/\/fivemor.com\/?p=91443"},"author":{"name":"admin","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371"},"headline":"#GTMTips: Collect ISP As A Custom Dimension In Google Analytics","datePublished":"2025-02-16T10:09:02+00:00","mainEntityOfPage":{"@id":"https:\/\/fivemor.com\/?p=91443"},"wordCount":1275,"commentCount":0,"publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"image":{"@id":"https:\/\/fivemor.com\/?p=91443#primaryimage"},"thumbnailUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/service-provider-custom-dimension.jpg","keywords":["Analytics","Collect","Custom","Dimension","Google","GTMTips","ISP"],"articleSection":["Analytics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fivemor.com\/?p=91443#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fivemor.com\/?p=91443","url":"https:\/\/fivemor.com\/?p=91443","name":"#GTMTips: Collect ISP As A Custom Dimension In Google Analytics - Som2ny Network","isPartOf":{"@id":"https:\/\/fivemor.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fivemor.com\/?p=91443#primaryimage"},"image":{"@id":"https:\/\/fivemor.com\/?p=91443#primaryimage"},"thumbnailUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/service-provider-custom-dimension.jpg","datePublished":"2025-02-16T10:09:02+00:00","breadcrumb":{"@id":"https:\/\/fivemor.com\/?p=91443#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fivemor.com\/?p=91443"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/?p=91443#primaryimage","url":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/service-provider-custom-dimension.jpg","contentUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/service-provider-custom-dimension.jpg","width":960,"height":540},{"@type":"BreadcrumbList","@id":"https:\/\/fivemor.com\/?p=91443#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fivemor.com\/?bp_activities=1"},{"@type":"ListItem","position":2,"name":"#GTMTips: Collect ISP As A Custom Dimension In Google Analytics"}]},{"@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\/91443","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=91443"}],"version-history":[{"count":0,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/91443\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/media\/91444"}],"wp:attachment":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=91443"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=91443"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=91443"},{"taxonomy":"dealstore","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fdealstore&post=91443"},{"taxonomy":"offerexpiration","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fofferexpiration&post=91443"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}