{"id":88696,"date":"2025-02-15T00:36:05","date_gmt":"2025-02-15T00:36:05","guid":{"rendered":"https:\/\/peraltafinancing.com\/analytics\/snowplow-analytics-custom-tag-template\/"},"modified":"2025-02-15T00:36:05","modified_gmt":"2025-02-15T00:36:05","slug":"snowplow-analytics-custom-tag-template","status":"publish","type":"post","link":"https:\/\/fivemor.com\/?p=88696","title":{"rendered":"Snowplow Analytics &#8211; Custom Tag Template"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div>\n<div style=\"aspect-ratio: 1842 \/ 1194;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2020\/05\/snowplow-analytics.jpg\" title=\"Snowplow Analytics\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"1194\" width=\"1842\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2020\/05\/snowplow-analytics.jpg#ZgotmplZ\" alt=\"Snowplow Analytics\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>The <strong>Snowplow Analytics<\/strong> <a href=\"https:\/\/www.simoahava.com\/analytics\/custom-templates-guide-for-google-tag-manager\/\">custom tag template<\/a> is an <strong>official<\/strong> tag template for <a href=\"https:\/\/tagmanager.google.com\/\">Google Tag Manager\u2019s<\/a> <a href=\"https:\/\/tagmanager.google.com\/gallery\/\">community template gallery<\/a>.<\/p>\n<div style=\"aspect-ratio: 1466 \/ 1500;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2020\/05\/snowplow-analytics-permissions.jpg\" title=\"Snowplow Analytics Permissions\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"1500\" width=\"1466\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2020\/05\/snowplow-analytics-permissions.jpg#ZgotmplZ\" alt=\"Snowplow Analytics Permissions\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<h2 id=\"description\">Description<\/h2>\n<p>This template implements the <a href=\"https:\/\/github.com\/snowplow\/snowplow\/wiki\/javascript-tracker\">Snowplow Analytics JavaScript tracker<\/a>. The template supports the full spread of features of the tracker, with a few exceptions due to the limitations of custom templates\u2019 sandboxed JavaScript.<\/p>\n<h2 id=\"install-the-template\">Install the template<\/h2>\n<p>To <strong>install the template<\/strong>, browse to <strong>Templates<\/strong> in the Google Tag Manager user interface.<\/p>\n<p>Under <strong>Tag Templates<\/strong>, click <strong>Search Gallery<\/strong>, and type <code>snowplow<\/code> into the gallery overlay search bar.<\/p>\n<div style=\"aspect-ratio: 1894 \/ 530;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2020\/05\/import-tag-template.jpg\" title=\"Import tag template\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"530\" width=\"1894\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2020\/05\/import-tag-template.jpg#ZgotmplZ\" alt=\"Import tag template\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>Click the <strong>Snowplow Analytics<\/strong> template name, and then click <strong>Add to Workspace<\/strong> in the next screen. Review the permissions and click <strong>Add<\/strong> to finalize the import.<\/p>\n<p>After importing the template, you can follow the normal process of creating a <strong>new tag<\/strong> in Google Tag Manager, and the <strong>Snowplow Analytics<\/strong> template will be listed among the <strong>Custom<\/strong> tag types you can choose from.<\/p>\n<h2 id=\"caveats\">Caveats<\/h2>\n<p>To begin with, some of the caveats of using the Custom Template.<\/p>\n<ul>\n<li>Any methods that require the parsing of HTML elements (e.g. <a href=\"https:\/\/github.com\/snowplow\/snowplow\/wiki\/2-Specific-event-tracking-with-the-Javascript-tracker#enableLinkClickTracking\">link tracking filter functions<\/a>) will not work and are thus disabled.<\/li>\n<li>Automatic error tracking does not work due to lack of support for the <code>ErrorEvent<\/code> API.<\/li>\n<li>There is no implementation for the <a href=\"https:\/\/github.com\/snowplow\/snowplow\/wiki\/2-Specific-event-tracking-with-the-Javascript-tracker#ecommerce\">standard ecommerce<\/a> events. Users are encouraged to implement the <a href=\"https:\/\/github.com\/snowplow\/snowplow\/wiki\/2-Specific-event-tracking-with-the-Javascript-tracker#enhanced-ecommerce\">enhanced ecommerce<\/a> setup instead.<\/li>\n<\/ul>\n<h2 id=\"instructions\">Instructions<\/h2>\n<p>Here are basic instructions for how to instrument the JavaScript tracker. You are encouraged to consult the <a href=\"https:\/\/github.com\/snowplow\/snowplow\/wiki\/javascript-tracker\">technical documentation<\/a> for more information on each individual feature.<\/p>\n<p>In general, when the tag fires, it first checks if the Snowplow JavaScript library has been loaded from the self-hosted URL provided in the template settings (more on this below). Then, the tag checks whether a tracker with the given <strong>Tracker Name<\/strong> has already been initialized. If not, it proceeds to initialize the new tracker.<\/p>\n<p>Finally, the tag bundles a <strong>command<\/strong> from the settings in the tag, and sends it to the given <strong>Collector Endpoint<\/strong>.<\/p>\n<h3 id=\"tracker-name\">Tracker Name<\/h3>\n<p>The first field requires you to add the <strong>tracker name<\/strong>. The reason you might have more than one tracker name generated on the site is if you have different configuration objects or tracking endpoints to which you want to send commands.<\/p>\n<p>When the tag runs, it first checks if a tag with this name has already been initialized. If it has, it then proceeds to send the command to this tracker name. If a tracker with this name has <em>not<\/em> been initialized, a new tracker is initialized with the tracker configuration derived from the tag (or from the linked <a href=\"https:\/\/www.simoahava.com\/custom-templates\/snowplow-analytics-settings\/\">Snowplow Analytics Settings variable<\/a>).<\/p>\n<p>This means that a tracker configuration is applied <strong>only once<\/strong> to the tracker. Thus if you have more than one tag running on the site, each with the same tracker name but different tracker configurations, only the configuration of the tag that fires <em>first<\/em> will be applied to the tracker.<\/p>\n<h3 id=\"collector-endpoint-hostname\">Collector Endpoint Hostname<\/h3>\n<p>This needs to be set to the hostname (e.g. <code>www.domain.com<\/code>) on which you\u2019ve configured the <a href=\"https:\/\/github.com\/snowplow\/snowplow\/wiki\/Setting-up-a-Collector\">Snowplow Analytics collector<\/a>.<\/p>\n<h3 id=\"advanced-configuration\">Advanced Configuration<\/h3>\n<p>Jumping to the end of the template, the <strong>Advanced Configuration<\/strong> group has two important settings:<\/p>\n<ol>\n<li><strong>Global Method Name<\/strong>: If you want to change the global namespace from <code>snowplow<\/code> to something else (due to a conflict, for example), change the value in this field.<\/li>\n<li><strong>Self-hosted Library URL<\/strong>: You need to host the Snowplow JavaScript library yourself. Set this field to the URL where the browser will download the JavaScript library from.<\/li>\n<\/ol>\n<h4 id=\"update-permissions\">Update permissions<\/h4>\n<p>If you change the <strong>Global Method Name<\/strong> from <code>snowplow<\/code> to anything else, you need to make a <strong>change to the template<\/strong>. Open the template for editing (from the \u201cTemplates\u201d section of the container), and browse to the <strong>Permissions<\/strong> tab. Under <strong>Accesses Global Variables<\/strong>, edit the four permissions that start with the name <code>snowplow<\/code>.<\/p>\n<div style=\"aspect-ratio: 2526 \/ 842;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2020\/05\/edit-snowplow-method.jpg\" title=\"Edit Snowplow method name.jpg\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"842\" width=\"2526\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2020\/05\/edit-snowplow-method.jpg#ZgotmplZ\" alt=\"Edit Snowplow method name.jpg\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>Change the text <code>snowplow<\/code> to whatever your preferred method name is (it must match the name set in the tag once you create it). Remember to leave everything else as it is: permissions and suffixes. This is what the changed list would look like if the method name were changed to <code>some_other_snowplow<\/code>:<\/p>\n<div style=\"aspect-ratio: 1324 \/ 762;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2020\/05\/snowplow-method-name-changed.jpg\" title=\"Method name changed\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"762\" width=\"1324\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2020\/05\/snowplow-method-name-changed.jpg#ZgotmplZ\" alt=\"Method name changed\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<blockquote>\n<p><strong>UPDATE 18 May 2020<\/strong>: The template has been updated to have <strong>AWS Cloudfront<\/strong> and <strong>Google Cloud Storage<\/strong> destinations supported by default (<code>https:\/\/*.cloudfront.net\/*<\/code> and <code>https:\/\/storage.cloud.google.com\/*<\/code>). If you load the library from either location, you do <strong>not<\/strong> need to update permissions for <code>injectScript<\/code>!<\/p>\n<\/blockquote>\n<p>Next, once you have the Snowplow library <a href=\"https:\/\/github.com\/snowplow\/snowplow\/wiki\/Self-hosting-snowplow-js\">self-hosted<\/a>, you need to update the <strong>Injects Scripts<\/strong> permission to reflect the new location. Delete the content of the <strong>Allowed URL Match Patterns<\/strong> field, and type the full URL to the library there. Again, it must match what you input into the tag itself when creating it.<\/p>\n<div style=\"aspect-ratio: 1588 \/ 1044;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2020\/05\/template-permissions-snowplow.jpg\" title=\"Modify Snowplow permissions\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"1044\" width=\"1588\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2020\/05\/template-permissions-snowplow.jpg#ZgotmplZ\" alt=\"Modify Snowplow permissions\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>Unfortunately, modifying permissions <strong>breaks the gallery link<\/strong> and you will no longer be notified about updates to the template. Being able to modify permissions without having the link break is a feature request I hope will get solved very soon.<\/p>\n<div style=\"aspect-ratio: 1016 \/ 384;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2020\/05\/broken-link-warning.jpg\" title=\"Broken link warning\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"384\" width=\"1016\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2020\/05\/broken-link-warning.jpg#ZgotmplZ\" alt=\"Broken link warning\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<h3 id=\"tag-type\">Tag Type<\/h3>\n<p>Under <strong>Tag Type<\/strong>, you can choose what type of command is compiled and sent to the endpoint. The tag types are split here into three groups: commands that utilize a common <strong>parameters<\/strong> object, commands that have <strong>special conditions<\/strong>, and <strong>custom commands<\/strong>.<\/p>\n<h4 id=\"tags-with-a-parameter-object\">Tags with a parameter object<\/h4>\n<p>Tags that can derive their parameters from a Google Tag Manager variable are:<\/p>\n<ul>\n<li>Ad Tracking<\/li>\n<li>Cart Tracking<\/li>\n<li>Error Tracking<\/li>\n<li>Consent<\/li>\n<li>Self-describing Event<\/li>\n<li>Site Search<\/li>\n<li>Social Interaction<\/li>\n<li>Structured Event<\/li>\n<li>Timing<\/li>\n<\/ul>\n<p>You can set the <strong>Retrieve Parameters From Variable<\/strong> setting to a Google Tag Manager variable. This parameter <em>must<\/em> return an object. In the object, the key-value pairs should reflect the named parameters in the <a href=\"https:\/\/github.com\/snowplow\/snowplow\/wiki\/2-Specific-event-tracking-with-the-Javascript-tracker\">event documentation<\/a>. For example, to have the variable populate an <a href=\"https:\/\/github.com\/snowplow\/snowplow\/wiki\/2-Specific-event-tracking-with-the-Javascript-tracker#trackError\">Error event<\/a>, you could use a Custom JavaScript variable 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\"><span style=\"color:#00a\">function<\/span>() {\n  <span style=\"color:#00a\">return<\/span> {\n    message: <span style=\"color:#a50\">'Some Error Happened'<\/span>,\n    filename: <span style=\"color:#a50\">'somefile.js'<\/span>,\n    lineno: <span style=\"color:#099\">5<\/span>,\n    colno: <span style=\"color:#099\">236<\/span>,\n    error: <span style=\"color:#00a\">null<\/span>\n  }\n}\n<\/code><\/pre>\n<\/div>\n<p>Alternatively, you can set the drop-down to the value <code>No<\/code>, and add the parameters manually instead:<\/p>\n<div style=\"aspect-ratio: 1776 \/ 882;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2020\/05\/manual-parameters.jpg\" title=\"Manual parameters\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"882\" width=\"1776\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2020\/05\/manual-parameters.jpg#ZgotmplZ\" alt=\"Manual parameters\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<p>Some tag types will add additional selections to this section. Follow the official tracker documentation for more information about what each option does.<\/p>\n<h4 id=\"special-tags\">Special tags<\/h4>\n<p>Some tag types have special conditions and have been separated into their own configurations.<\/p>\n<h5 id=\"enhanced-ecommerce\">Enhanced Ecommerce<\/h5>\n<p>When you select Enhanced Ecommerce, you are left with two options: <strong>Use Data Layer<\/strong> or <strong>Choose Variable<\/strong>. The way it works is very similar to Enhanced Ecommerce in Google Analytics.<\/p>\n<p>If you choose the first, the template will look into the <code>dataLayer<\/code> structure for the <strong>most recently<\/strong> pushed <a href=\"https:\/\/www.simoahava.com\/analytics\/enhanced-ecommerce-guide-for-google-tag-manager\/#data-types-actions\">Enhanced Ecommerce object<\/a>, and map this object to the request to Snowplow Analytics.<\/p>\n<p>If you selected <strong>Choose Variable<\/strong>, you need to provide a GTM variable that returns an object in the correct, expected format.<\/p>\n<h5 id=\"form-tracking\">Form Tracking<\/h5>\n<p>Form tracking has just two options, because <strong>filters<\/strong> and <strong>transformations<\/strong> won\u2019t work with the custom template (due to lack of support for processing HTML elements). The options are to set form and\/or field <strong>blacklists<\/strong> and <strong>whitelists<\/strong>.<\/p>\n<p>Blacklists and whitelists for forms are a list of comma-separated HTML class names. If blacklisted, then any form element with a listed class will not trigger the form event. If whitelisted, then <em>only<\/em> form elements with a listed classname will be tracked.<\/p>\n<p>For fields, blacklists and whitelists work similarly, except they use the <code>name<\/code> attribute rather than the class.<\/p>\n<h5 id=\"link-click-tracking\">Link Click Tracking<\/h5>\n<p>The <strong>Track Link Click<\/strong> event is similar to regular parameter-based events, as it lets you add parameters and track a link click as a manually encoded hit.<\/p>\n<p>The <strong>Enable Automatic Link Click Tracking<\/strong> adds listeners to the page, which will track clicks on links permitting they adhere to the blacklisted\/whitelisted class names you can optionally provide.<\/p>\n<p>The <strong>Fix Middle-click Tracking<\/strong> adds a fix for some browsers where middle-clicks were not tracked properly.<\/p>\n<p>If you check <strong>Track HTML Content Of Clicked Link<\/strong>, then the full text content of the link element will be sent to Snowplow as well.<\/p>\n<h5 id=\"page-view\">Page View<\/h5>\n<p>You can provide a <strong>Custom Page Title<\/strong> if you wish, and you can add a <a href=\"https:\/\/github.com\/snowplow\/snowplow\/wiki\/2-Specific-event-tracking-with-the-Javascript-tracker#trackPageView\">custom context function<\/a> to the request.<\/p>\n<p>If you enable <strong>Page Activity Tracking<\/strong>, the tag will setup a <em>heartbeat<\/em> tracker, and send page pings to Snowplow at intervals that you can specify.<\/p>\n<p>The <strong>Callback Function<\/strong> is something you can set to a JavaScript function. If you set the callback, then instead of sending the page ping to Snowplow, the function gets invoked instead.<\/p>\n<h4 id=\"custom-commands\">Custom Commands<\/h4>\n<p>Here is the list of custom commands you can execute, with details about the arguments (if any).<\/p>\n<table>\n<thead>\n<tr>\n<th>Command<\/th>\n<th>Description<\/th>\n<th>Arguments<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>flushBuffer<\/code><\/td>\n<td>Sends all the queued events in the buffer.<\/td>\n<td>N\/A<\/td>\n<\/tr>\n<tr>\n<td><code>setVisitorCookieTimeout<\/code><\/td>\n<td>Change the timeout (default 2 years) of the visitor cookie \/ localStorage entry.<\/td>\n<td>Timeout in seconds. Set <code>0<\/code> to use a session cookie, and <code>-1<\/code> to disable persisting this information.<\/td>\n<\/tr>\n<tr>\n<td><code>setCountPreRendered<\/code><\/td>\n<td>To enable tracking for pre-rendered pages, set to <code>true<\/code>.<\/td>\n<td>Set to <code>true<\/code> to enable.<\/td>\n<\/tr>\n<tr>\n<td><code>setUserId<\/code><\/td>\n<td>Set the user ID to a custom value.<\/td>\n<td>Variable or hard-coded value for the user ID.<\/td>\n<\/tr>\n<tr>\n<td><code>setUserIdFromCookie<\/code><\/td>\n<td>Set the user ID with a 1st party cookie value.<\/td>\n<td>Cookie name.<\/td>\n<\/tr>\n<tr>\n<td><code>setUserIdFromLocation<\/code><\/td>\n<td>Set the user ID with a URL parameter value.<\/td>\n<td>URL parameter name.<\/td>\n<\/tr>\n<tr>\n<td><code>setUserIdFromReferrer<\/code><\/td>\n<td>Set the user ID with a URL parameter value in <strong>the <code>document.referrer<\/code><\/strong>.<\/td>\n<td>URL parameter name.<\/td>\n<\/tr>\n<tr>\n<td><code>setCustomUrl<\/code><\/td>\n<td>Set the current page URL to a custom value.<\/td>\n<td>URL string.<\/td>\n<\/tr>\n<tr>\n<td><code>setReferrerUrl<\/code><\/td>\n<td>Set the referring page URL to a custom value.<\/td>\n<td>URL string.<\/td>\n<\/tr>\n<tr>\n<td><code>preservePageViewId<\/code><\/td>\n<td>Restore the (buggy) way the <code>webPage<\/code> context used to work on single-page apps.<\/td>\n<td>N\/A<\/td>\n<\/tr>\n<tr>\n<td><code>updatePageActivity<\/code><\/td>\n<td>Trigger a page ping manually.<\/td>\n<td>N\/A<\/td>\n<\/tr>\n<tr>\n<td><code>refreshLinkClickTracking<\/code><\/td>\n<td>Parse the page for new links to track with automatic link click tracking.<\/td>\n<td>N\/A<\/td>\n<\/tr>\n<tr>\n<td><code>setOptOutCookie<\/code><\/td>\n<td>Give the name of a cookie. If this cookie exists, the user will not be tracked.<\/td>\n<td>Cookie name.<\/td>\n<\/tr>\n<tr>\n<td><code>enableGdprContext<\/code><\/td>\n<td>Set a GDPR context object for all events that fire after this command is run.<\/td>\n<td>GTM variable that returns a <a href=\"https:\/\/github.com\/snowplow\/snowplow\/wiki\/2-Specific-event-tracking-with-the-Javascript-tracker#316-gdpr-context\">Context object<\/a>.<\/td>\n<\/tr>\n<tr>\n<td><code>addGlobalContexts<\/code><\/td>\n<td>Set to an array of global contexts to add to events.<\/td>\n<td>GTM variable that returns <a href=\"https:\/\/github.com\/snowplow\/snowplow\/wiki\/2-Specific-event-tracking-with-the-Javascript-tracker#31851-addglobalcontexts\">the global contexts array<\/a>.<\/td>\n<\/tr>\n<tr>\n<td><code>removeGlobalContexts<\/code><\/td>\n<td>Set to an array of global contexts to remove.<\/td>\n<td>GTM variable that returns <a href=\"https:\/\/github.com\/snowplow\/snowplow\/wiki\/2-Specific-event-tracking-with-the-Javascript-tracker#31851-addglobalcontexts\">the global contexts array<\/a>.<\/td>\n<\/tr>\n<tr>\n<td><code>clearGlobalContexts<\/code><\/td>\n<td>Remove all global contexts.<\/td>\n<td>N\/A<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 id=\"additional-tracking-parameters\">Additional Tracking Parameters<\/h3>\n<p>You can choose a Google Tag Manager variable from the drop-down titled <strong>Add Custom Contexts<\/strong>. This lets you add <a href=\"https:\/\/github.com\/snowplow\/snowplow\/wiki\/2-Specific-event-tracking-with-the-Javascript-tracker#custom-contexts\">custom contexts<\/a> to the current hit. The variable <strong>must<\/strong> return an array of valid context objects.<\/p>\n<p>You can also choose to override the device timestamp with the <strong>Set Custom Timestamp<\/strong> field. The format must be UNIX time in milliseconds.<\/p>\n<h3 id=\"tracker-configuration-parameters\">Tracker Configuration Parameters<\/h3>\n<p>In this group, you can establish the tracker configuration which is applied when the tracker is first created.<\/p>\n<blockquote>\n<p><strong>NOTE!<\/strong> If you are adding configurations to a tracker that has already been created, the configuration fields will not do anything.<\/p>\n<\/blockquote>\n<p>You have <strong>three<\/strong> ways of applying the configuration:<\/p>\n<ol>\n<li>Using only a <a href=\"https:\/\/www.simoahava.com\/custom-templates\/snowplow-analytics-settings\/\">Snowplow Analytics Settings variable<\/a>.<\/li>\n<li>Using only manually added parameters.<\/li>\n<li>Using a combination of the two.<\/li>\n<\/ol>\n<p>If you choose to use a Snowplow Analytics Settings variable, you need to pick the variable from the drop-down menu. If you choose a variable that is <strong>not<\/strong> a \u201cSnowplow Analytics Settings\u201d variable, the tag will <strong>fail<\/strong>, so be careful.<\/p>\n<p>You can also check the <strong>Enable Overriding Settings For This Tag<\/strong> option. This expands a parameter field where you can add key-value pairs of individual tracker configuration fields. <a href=\"https:\/\/github.com\/snowplow\/snowplow\/wiki\/1-General-parameters-for-the-Javascript-tracker\">See the documentation<\/a> to know what fields are available.<\/p>\n<p>If you choose to use both a Snowplow Analytics Settings variable <strong>and<\/strong> the manually entered parameters, then any conflict between the two will be resolved in favor of the <strong>manually entered parameters<\/strong>. For example, here we use a Snowplow Analytics Settings variable, but we\u2019ve decided to override some fields in the configuration.<\/p>\n<div style=\"aspect-ratio: 1764 \/ 994;\" class=\"figure nocaption\">\n<p>    <a href=\"https:\/\/www.simoahava.com\/images\/2020\/05\/override-settings.jpg\" title=\"Overridden settings\"><\/p>\n<p>    <img decoding=\"async\" class=\"fig-img\" height=\"994\" width=\"1764\" loading=\"lazy\" src=\"https:\/\/www.simoahava.com\/images\/2020\/05\/override-settings.jpg#ZgotmplZ\" alt=\"Overridden settings\"\/><\/p>\n<p>    <\/a><\/p>\n<\/div>\n<h3 id=\"advanced-configuration-1\">Advanced Configuration<\/h3>\n<p><a href=\"#advanced-configuration\">See above<\/a>.<\/p>\n<h2 id=\"release-notes\">Release notes<\/h2>\n<table>\n<thead>\n<tr>\n<th>Date<\/th>\n<th>Changeset<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>26 May 2020<\/td>\n<td>Fixed a number of issues with the Enhanced Ecommerce integration.<\/td>\n<\/tr>\n<tr>\n<td>20 May 2020<\/td>\n<td>Updated <code>injectScript<\/code> permissions to default to GCS and AWS Cloudfront.<\/td>\n<\/tr>\n<tr>\n<td>14 May 2020<\/td>\n<td>Initial release.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>The Snowplow Analytics custom tag template is an official tag template for Google Tag Manager\u2019s community template gallery. Description This template implements the Snowplow Analytics JavaScript tracker. The template supports the full spread of features of the tracker, with a few exceptions due to the limitations of custom templates\u2019 sandboxed JavaScript. Install the template To [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":88697,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12033],"tags":[12765,834,43260,1791,4196],"dealstore":[],"offerexpiration":[],"class_list":["post-88696","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-analytics","tag-analytics","tag-custom","tag-snowplow","tag-tag","tag-template"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Snowplow Analytics - Custom Tag Template - 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=88696\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Snowplow Analytics - Custom Tag Template - Som2ny Network\" \/>\n<meta property=\"og:description\" content=\"The Snowplow Analytics custom tag template is an official tag template for Google Tag Manager\u2019s community template gallery. Description This template implements the Snowplow Analytics JavaScript tracker. The template supports the full spread of features of the tracker, with a few exceptions due to the limitations of custom templates\u2019 sandboxed JavaScript. Install the template To [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fivemor.com\/?p=88696\" \/>\n<meta property=\"og:site_name\" content=\"Som2ny Network\" \/>\n<meta property=\"article:published_time\" content=\"2025-02-15T00:36:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/snowplow-analytics.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1842\" \/>\n\t<meta property=\"og:image:height\" content=\"1194\" \/>\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=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fivemor.com\/?p=88696#article\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/?p=88696\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371\"},\"headline\":\"Snowplow Analytics &#8211; Custom Tag Template\",\"datePublished\":\"2025-02-15T00:36:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=88696\"},\"wordCount\":1906,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fivemor.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/?p=88696#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/snowplow-analytics.jpg\",\"keywords\":[\"Analytics\",\"Custom\",\"Snowplow\",\"TAG\",\"Template\"],\"articleSection\":[\"Analytics\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fivemor.com\/?p=88696#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fivemor.com\/?p=88696\",\"url\":\"https:\/\/fivemor.com\/?p=88696\",\"name\":\"Snowplow Analytics - Custom Tag Template - Som2ny Network\",\"isPartOf\":{\"@id\":\"https:\/\/fivemor.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/fivemor.com\/?p=88696#primaryimage\"},\"image\":{\"@id\":\"https:\/\/fivemor.com\/?p=88696#primaryimage\"},\"thumbnailUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/snowplow-analytics.jpg\",\"datePublished\":\"2025-02-15T00:36:05+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fivemor.com\/?p=88696#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fivemor.com\/?p=88696\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/fivemor.com\/?p=88696#primaryimage\",\"url\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/snowplow-analytics.jpg\",\"contentUrl\":\"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/snowplow-analytics.jpg\",\"width\":1842,\"height\":1194},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fivemor.com\/?p=88696#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/fivemor.com\/?bp_activities=1\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Snowplow Analytics &#8211; Custom Tag Template\"}]},{\"@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":"Snowplow Analytics - Custom Tag Template - 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=88696","og_locale":"en_US","og_type":"article","og_title":"Snowplow Analytics - Custom Tag Template - Som2ny Network","og_description":"The Snowplow Analytics custom tag template is an official tag template for Google Tag Manager\u2019s community template gallery. Description This template implements the Snowplow Analytics JavaScript tracker. The template supports the full spread of features of the tracker, with a few exceptions due to the limitations of custom templates\u2019 sandboxed JavaScript. Install the template To [&hellip;]","og_url":"https:\/\/fivemor.com\/?p=88696","og_site_name":"Som2ny Network","article_published_time":"2025-02-15T00:36:05+00:00","og_image":[{"width":1842,"height":1194,"url":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/snowplow-analytics.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fivemor.com\/?p=88696#article","isPartOf":{"@id":"https:\/\/fivemor.com\/?p=88696"},"author":{"name":"admin","@id":"https:\/\/fivemor.com\/#\/schema\/person\/b85e3c3dc0e1daea076524dc8810c371"},"headline":"Snowplow Analytics &#8211; Custom Tag Template","datePublished":"2025-02-15T00:36:05+00:00","mainEntityOfPage":{"@id":"https:\/\/fivemor.com\/?p=88696"},"wordCount":1906,"commentCount":0,"publisher":{"@id":"https:\/\/fivemor.com\/#organization"},"image":{"@id":"https:\/\/fivemor.com\/?p=88696#primaryimage"},"thumbnailUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/snowplow-analytics.jpg","keywords":["Analytics","Custom","Snowplow","TAG","Template"],"articleSection":["Analytics"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fivemor.com\/?p=88696#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fivemor.com\/?p=88696","url":"https:\/\/fivemor.com\/?p=88696","name":"Snowplow Analytics - Custom Tag Template - Som2ny Network","isPartOf":{"@id":"https:\/\/fivemor.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fivemor.com\/?p=88696#primaryimage"},"image":{"@id":"https:\/\/fivemor.com\/?p=88696#primaryimage"},"thumbnailUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/snowplow-analytics.jpg","datePublished":"2025-02-15T00:36:05+00:00","breadcrumb":{"@id":"https:\/\/fivemor.com\/?p=88696#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fivemor.com\/?p=88696"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fivemor.com\/?p=88696#primaryimage","url":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/snowplow-analytics.jpg","contentUrl":"https:\/\/fivemor.com\/wp-content\/uploads\/2025\/02\/snowplow-analytics.jpg","width":1842,"height":1194},{"@type":"BreadcrumbList","@id":"https:\/\/fivemor.com\/?p=88696#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fivemor.com\/?bp_activities=1"},{"@type":"ListItem","position":2,"name":"Snowplow Analytics &#8211; Custom Tag Template"}]},{"@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\/88696","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=88696"}],"version-history":[{"count":0,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/posts\/88696\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=\/wp\/v2\/media\/88697"}],"wp:attachment":[{"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=88696"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=88696"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=88696"},{"taxonomy":"dealstore","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fdealstore&post=88696"},{"taxonomy":"offerexpiration","embeddable":true,"href":"https:\/\/fivemor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fofferexpiration&post=88696"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}