Book – Code Examples
Here are some of the code examples included in the second edition of the book.
Please take a moment to test code before it's applied to your live website to ensure it works as expected.
Chapter 19
Modified Google Optimize code for use with Google Tag Manager:
<HTML>
<HEAD>
<!-- Start Google Optimize -->
<style>.async-hide { opacity: 0 !important} </style>
<script>(function(a,s,y,n,c,h,i,d,e){s.className+=' '+y;h.start=1*new Date;
h.end=i=function(){s.className=s.className.replace(RegExp(' ?'+y),'')};
(a[n]=a[n]||[]).hide=h;setTimeout(function(){i();h.end=null},c);h.timeout=c;
})(window,document.documentElement,'async-hide','dataLayer',4000,
{'GTM-EDCBA':true});</script>
<!-- Modified GA tracking for Optimize -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-123456-1', 'auto');
ga('require', 'GTM-EDCBA');
</script>
<!-- End Google Optimize -->
Standard Google Tag Manager code (which would be placed below the Google Optimize code):
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-ABCDE');</script>
<!-- End Google Tag Manager -->
Chapter 22
Example of event tracking that has been hard-coded within a specific link:
<div class="banner-promotion"><a href="/free-trial" onClick="ga('send', 'event', 'Internal Promotion', 'Banner Image', 'Free Trial Offer', 5);"><img src="/images/banners/free-trial.png" /><img … /></a></div>
Custom HTML tag for use with Google Tag Manager to track promotion views (impressions):
<script>
(function() {
dataLayer.push({
'event': 'my-promotion-impression',
'ecommerce': {
'promoView': {
'promotions': [
{
'id': 'promotion1234',
'name': 'Spring Features',
'creative': 'Green Shirts',
'position': '1'
}]
}
}
});
}());
</script>
Custom HTML tag for use with Google Tag Manager when a promotion is clicked:
<script>
(function() {
dataLayer.push({
'event': 'my-promotion-click',
'ecommerce': {
'promoClick': {
'promotions': [
{
'id': 'promotion1234',
'name': 'Spring Features',
'creative': 'Green Shirts',
'position': '1'
}]
}
}
});
}());
</script>
Example of using custom parameters to track promotions:
<a href="/free-trial?in_type=banner-image&in_name=free-trial"><img src="/images/banners/free-trial.png" alt="Free Product Trial Offer" /></a>
Chapter 24
Regular Expression to find default pages:
^(/(index|default|home)?\.?(html|htm|php|asp|aspx|jsp)?)$
Chapter 28
Example code for tracking users between two websites:
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-123456-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments)};
gtag('js', new Date());
gtag('config', 'UA-123456-1', {
'linker': {
'domains': ['company.com', 'other.com']
}
});
</script>
Example of event tracking that has been hard-coded within a specific link to download a PDF:
<a href="/files/information.pdf" onclick="gtag('event', 'event_name', {'event_category': 'download', 'event_action': 'pdf', 'event_label': 'information.pdf'});">Download Information PDF</a>
Example of event tracking that has been hard-coded within a specific link to download a Document:
<a href="/files/information.pdf" onclick="gtag('event', 'event_name', {'event_category': 'download', 'event_action': 'doc', 'event_label': 'application.doc'});">Download Application Document</a>
Event tracking example:
gtag('event', 'event_name', {
'event_category': 'your category',
'event_action': 'your action',
'event_label': 'your label',
'value': 4
});
Event tracking example with a 'non-interaction' hit type:
gtag('event', 'event_name', {
'event_category': 'your category',
'event_action': 'your action',
'event_label': 'your label',
'value': 4,
'non_interaction': true
});
Example of the default Google Analytics tracking code:
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-123456-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments)};
gtag('js', new Date());
gtag('config', 'UA-123456-1');
</script>
Example of tracking code that is modified to track an ecommence transaction:
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-123456-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments)};
gtag('js', new Date());
gtag('config', 'UA-123456-1');
gtag('event', 'purchase', {
"transaction_id": "TID654321",
"value": 39.99,
"currency": "USD",
"tax": 3.19,
"shipping": 4.95,
"items": [
{
"name": "Branded Tshirt",
"category": "Apparel",
"variant": "Red",
"quantity": 1,
"price": 19.95
},
{
"name": "Mens Socks",
"category": "Apparel",
"variant": "Blue",
"quantity": 2,
"price": 5.95
}
]
});
</script>
Example of a data layer for tracking transactions into Google Tag Manager:
<script>
window.dataLayer = window.dataLayer || [];
dataLayer.push({
'ecommerce': {
'purchase': {
'actionField': {
'id': 'TID654321',
'revenue': '39.99',
'tax': '3.19',
'shipping': '4.95'
},
'products': [{
'id': 'PID765123',
'name': 'Branded Tshirt',
'category': 'Apparel',
'variant': 'red',
'price': '19.95',
'quantity': 1
},
{
'id': 'PID123445',
'name': 'Mens Socks',
'category': 'Apparel',
'variant': 'blue',
'price': '5.95',
'quantity': 2
}]
}
}
});
</script>
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-AB1EF2');</script>
<!-- End Google Tag Manager -->
Example of tracking code that is modified to track a custom dimension:
gtag('config', 'UA-123456-1', {
'custom_map': {'dimension1': 'author'}
});
gtag('event', 'author_dimension', {'author': 'Jessica'});
Example of correctly modified tracking code that tracks an event:
gtag('config', 'UA-123456-1');
gtag('event', 'event_name', {
'event_category': 'promotion',
'event_action': 'featured product',
});
Example of correctly modified tracking code to track data into two separate accounts:
gtag('config', 'UA-123456-1');
gtag('config', 'UA-654321-1');
Chapter 29
Regular Expression to track some clicks in Google Tag Manager:
\.(pdf|docx?|zip|xlsx?|pptx?|exe|txt)$
Custom JavaScript code to track YouTube video actions in Google Tag Manager:
function() {
var status = {{Video Status}};
switch (status) {
case 'start':
return 'Play';
case 'pause':
return 'Pause';
case 'seek':
return 'Seeking';
case 'progress':
return + {{Video Percent}} + '% Watched';
case 'complete':
return '100% Watched';
}
}