SlideShare a Scribd company logo
Simo Ahava | NetBooster
GTM For Nerds 
MeasureCamp V – 20 September 2014 
function MeasureCampV() { this.awesome = awesome; }
GTM For Nerds 
MeasureCamp V – 20 September 2014 
@SimoAhava 
function MeasureCampV() { this.awesome = awesome; } 
http://google.me/+SimoAhava 
simo@simoahava.com 
www.simoahava.com
MASTERED by desire impulsive, 
By a mighty inward urging, 
I am ready now for singing, 
Ready to begin the coding -- 
A. Gallen-Kallela: The Boat’s Lament
What is dataLayer 
 A JavaScript Array 
@SimoAhava | MeasureCamp V
What is dataLayer 
 A JavaScript Array 
 dataLayer = []; 
@SimoAhava | MeasureCamp V
What is dataLayer 
 A JavaScript Array 
 dataLayer = []; 
 dataLayer.push('item1'); // dataLayer[0] => 'item1’ 
@SimoAhava | MeasureCamp V
What is dataLayer 
 A JavaScript Array 
 dataLayer = []; 
 dataLayer.push('item1'); // dataLayer[0] => 'item1' 
 dataLayer.push({'item2' : [{'data1' : true},{'data2' : 'Peter'}]}); 
// dataLayer[1] => 'item2' : Array[2] 
@SimoAhava | MeasureCamp V
What is dataLayer 
 A JavaScript Array 
 dataLayer = []; 
 dataLayer.push('item1'); // dataLayer[0] => 'item1' 
 dataLayer.push({'item2' : [{'data1' : true},{'data2' : 'Peter'}]}); 
// dataLayer[1] => 'item2' : Array[2] 
 var item2 = dataLayer.pop(); // item2 => Array[2], dataLayer[1] => 
@SimoAhava | MeasureCamp V 
undefined
What is dataLayer 
 A JavaScript Array 
 dataLayer = []; 
 dataLayer.push('item1'); // dataLayer[0] => 'item1' 
 dataLayer.push({'item2' : [{'data1' : true},{'data2' : 'Peter'}]}); 
// dataLayer[1] => 'item2' : Array[2] 
 var item2 = dataLayer.pop(); // item2 => Array[2], dataLayer[1] => 
@SimoAhava | MeasureCamp V 
undefined 
 dataLayer.push({'event' : 'gtm.js'}); // No special effects
What is dataLayer 
 A JavaScript Array 
 dataLayer = []; 
 dataLayer.push('item1'); // dataLayer[0] => 'item1' 
 dataLayer.push({'item2' : [{'data1' : true},{'data2' : 'Peter'}]}); 
// dataLayer[1] => 'item2' : Array[2] 
 var item2 = dataLayer.pop(); // item2 => Array[2], dataLayer[1] => 
@SimoAhava | MeasureCamp V 
undefined 
 dataLayer.push({'event' : 'gtm.js'}); // No special effects 
 There is absolutely nothing special about dataLayer ... or is there?
What is dataLayer 
 A JavaScript Array 
 dataLayer = []; 
 dataLayer.push('item1'); // dataLayer[0] => 'item1' 
 dataLayer.push({'item2' : [{'data1' : true},{'data2' : 'Peter'}]}); 
// dataLayer[1] => 'item2' : Array[2] 
 var item2 = dataLayer.pop(); // item2 => Array[2], dataLayer[1] => 
@SimoAhava | MeasureCamp V 
undefined 
 dataLayer.push({'event' : 'gtm.js'}); // No special effects 
 There is absolutely nothing special about dataLayer ... or is there? 
 It’s the default name of the data structure that Google Tag Manager uses
What is dataLayer 
 …but it looks like GTM overrides the default push() method: 
@SimoAhava | MeasureCamp V
What is dataLayer 
 …but it looks like GTM overrides the default push() method: 
 This does three (visible) things: 
@SimoAhava | MeasureCamp V
What is dataLayer 
 …but it looks like GTM overrides the default push() method: 
 This does three (visible) things: 
1. Initiates a listener which processes the new state of dataLayer after each push() 
2. Sets the maximum length of dataLayer to 300 
3. Instead of returning the length of the Array, a push() returns true if no tags were fired and 
false if tags were fired – synchronous operation for ”Wait for Tags”! 
@SimoAhava | MeasureCamp V
What is dataLayer 
 …but it looks like GTM overrides the default push() method: 
 This does three (visible) things: 
1. Initiates a listener which processes the new state of dataLayer after each push() 
2. Sets the maximum length of dataLayer to 300 
3. Instead of returning the length of the Array, a push() returns true if no tags were fired and 
false if tags were fired – synchronous operation for ”Wait for Tags”! 
 These will all be part of the specification that vendors need to adhere to 
 Memory management such as setting the maximum length of the Array will 
eventually be configurable 
@SimoAhava | MeasureCamp V
A. Gallen-Kallela: Lemminkainen’s Mother 
THERE the blood-stained data model, 
There Google's son and hero, 
Cuts in pieces dataLayer, 
Chops it with his mighty hatchet --
What is Google Tag Manager’s data model 
 An abstract data model, which passes and processes data from dataLayer to 
Google Tag Manager 
@SimoAhava | MeasureCamp V
What is Google Tag Manager’s data model 
 An abstract data model, which passes and processes data from dataLayer to 
Google Tag Manager 
dataLayer Data model 
Tool-agnostic Tool-specific 
Generic Unique 
Accessed directly Accessed via helper 
Structured Abstract 
@SimoAhava | MeasureCamp V
What is Google Tag Manager’s data model 
 In GTM, the interface exposes two methods: 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key') 
 google_tag_manager["GTM-XXXX"].dataLayer.set('key','value') 
@SimoAhava | MeasureCamp V
What is Google Tag Manager’s data model 
 In GTM, the interface exposes two methods: 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key') 
 google_tag_manager["GTM-XXXX"].dataLayer.set('key','value') 
 These are used to access the data stored in the data model, and should not be 
used directly 
@SimoAhava | MeasureCamp V
What is Google Tag Manager’s data model 
 In GTM, the interface exposes two methods: 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key') 
 google_tag_manager["GTM-XXXX"].dataLayer.set('key','value') 
 These are used to access the data stored in the data model, and should not be 
used directly 
 Using get() retrieves the most recent value for ’key’ 
 dataLayer.push({'key1' : 'value1'}); // dataLayer[0] 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // 'value1' 
 dataLayer.push({'key1' : 'value2'}); // dataLayer[1]! 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // 'value2' 
@SimoAhava | MeasureCamp V
What is Google Tag Manager’s data model 
 Cool, get() works nicely with dotted names and nested objects 
 dataLayer.push({'key1.id' : '123'}); 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key1.id'); // '123' 
 dataLayer.push({'key2' : {'id' : '234'}}); 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key2.id'); // '234’ 
@SimoAhava | MeasureCamp V
What is Google Tag Manager’s data model 
 Cool, get() works nicely with dotted names and nested objects 
 dataLayer.push({'key1.id' : '123'}); 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key1.id'); // '123' 
 dataLayer.push({'key2' : {'id' : '234'}}); 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key2.id'); // '234’ 
 Yes, get() is the method that is called by your Data Layer Variable Macros 
@SimoAhava | MeasureCamp V
What is Google Tag Manager’s data model 
 Cool, get() works nicely with dotted names and nested objects 
 dataLayer.push({'key1.id' : '123'}); 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key1.id'); // '123' 
 dataLayer.push({'key2' : {'id' : '234'}}); 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key2.id'); // '234’ 
 Yes, get() is the method that is called by your Data Layer Variable Macros 
 So… 
 When a dataLayer.push() occurs, the arguments are copied to the data 
model 
@SimoAhava | MeasureCamp V
What is Google Tag Manager’s data model 
 Cool, get() works nicely with dotted names and nested objects 
 dataLayer.push({'key1.id' : '123'}); 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key1.id'); // '123' 
 dataLayer.push({'key2' : {'id' : '234'}}); 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key2.id'); // '234’ 
 Yes, get() is the method that is called by your Data Layer Variable Macros 
 So… 
 When a dataLayer.push() occurs, the arguments are copied to the data 
model 
 The get() method can be used to retrieve data from the data model 
@SimoAhava | MeasureCamp V
A. Gallen-Kallela: The Forging Of The Sampo 
dataLayer, worthy brother, 
Thou, my faithful indexed Array, 
Come and see this wondrous beauty, 
Abstract structure, awesome methods --
Peculiarities of the data model 
 Changing value type overwrites the previous value 
 dataLayer.push({'key1' : [1, 2, 3]}); 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // Array[3] 
 dataLayer.push({'key1' : 'cool'}); 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // 'cool' 
@SimoAhava | MeasureCamp V
Peculiarities of the data model 
 Changing value type overwrites the previous value 
 dataLayer.push({'key1' : [1, 2, 3]}); 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // Array[3] 
 dataLayer.push({'key1' : 'cool'}); 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // 'cool' 
 Array to Array and plain object to plain object behave a bit differently 
 dataLayer.push({'key1' : [1, 2, 3]}); 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // [1, 2, 3] 
 dataLayer.push({'key1' : [4, 5]}); 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // [4, 5, 3]! 
@SimoAhava | MeasureCamp V
Peculiarities of the data model 
 Updating an Array in the data model is clumsy (and not a good idea) 
 dataLayer.push({'key1' : [1, 2, 3]}); 
 var k = google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // [1, 2, 3] 
 k.push(4, 5); 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // [1, 2, 3, 4, 5] 
@SimoAhava | MeasureCamp V
Peculiarities of the data model 
 Updating an Array in the data model is clumsy (and not a good idea) 
 dataLayer.push({'key1' : [1, 2, 3]}); 
 var k = google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // [1, 2, 3] 
 k.push(4, 5); 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // [1, 2, 3, 4, 5] 
 So there’s a special ’command array’ you can use, which accesses all supported 
methods of the value 
 dataLayer.push({'key1' : [1, 2, 3]}); 
 dataLayer.push(['key1.push', 4, 5]); // Note the square brackets! 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // [1, 2, 3, 4, 5] 
@SimoAhava | MeasureCamp V
Peculiarities of the data model 
 Plain object to plain object is more straightforward 
 dataLayer.push({'key1' : {'one' : 1}}); 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // {one: 1} 
@SimoAhava | MeasureCamp V
Peculiarities of the data model 
 Plain object to plain object is more straightforward 
 dataLayer.push({'key1' : {'one' : 1}}); 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // {one: 1} 
 dataLayer.push({'key1' : {'two' : 2}}); 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // {one: 1}, {two: 2} 
@SimoAhava | MeasureCamp V
Peculiarities of the data model 
 Plain object to plain object is more straightforward 
 dataLayer.push({'key1' : {'one' : 1}}); 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // {one: 1} 
 dataLayer.push({'key1' : {'two' : 2}}); 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // {one: 1}, {two: 2} 
 dataLayer.push({'key1' : {'one' : {'two' : 3}}}); 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // {one: {two: 3}}, 
@SimoAhava | MeasureCamp V 
{two: 2}
Peculiarities of the data model 
 You can also run your own functions on values in the data model 
 dataLayer.push({'key1' : {'one' : 1}}); 
 dataLayer.push(function() { 
var key1 = this.get('key1'); 
if(key1.hasOwnProperty('one') { 
this.set('key1', {'one' : 2}); 
} 
}); 
 google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // {one: 2} 
@SimoAhava | MeasureCamp V
@SimoAhava | MeasureCamp V 
Thank you 
www.simoahava.com/analytics/data-layer/ 
www.simoahava.com/analytics/google-tag-manager-data-model/ 
#GTMtips 
http://google.me/+SimoAhava @SimoAhava

More Related Content

What's hot

Introducing URL Shorteners
Introducing URL ShortenersIntroducing URL Shorteners
Introducing URL Shorteners
St. Petersburg College
 
Advanced Form Tracking in Google Tag Manager
Advanced Form Tracking in Google Tag ManagerAdvanced Form Tracking in Google Tag Manager
Advanced Form Tracking in Google Tag Manager
Simo Ahava
 
What's new in Google Analytics 4
What's new in Google Analytics 4What's new in Google Analytics 4
What's new in Google Analytics 4
Stephen Ellis
 
Google tag manager
Google tag managerGoogle tag manager
Google tag manager
Gusani Tech Ideation
 
GA4 Mini Training Webinar Deck.pdf
GA4 Mini Training Webinar Deck.pdfGA4 Mini Training Webinar Deck.pdf
GA4 Mini Training Webinar Deck.pdf
Builtvisible
 
Google analytics version 4 in details
Google analytics version 4 in detailsGoogle analytics version 4 in details
Google analytics version 4 in details
Omkar Nandi
 
How to Know Exactly Where to Optimize with GA4.pptx
How to Know Exactly Where to Optimize with GA4.pptxHow to Know Exactly Where to Optimize with GA4.pptx
How to Know Exactly Where to Optimize with GA4.pptx
MeasurementMarketing.io
 
Digital Analytics with the Google Tag Manager (GTM)
Digital Analytics with the Google Tag Manager (GTM)Digital Analytics with the Google Tag Manager (GTM)
Digital Analytics with the Google Tag Manager (GTM)
Yourposition AG
 
Advanced Google Analytics 4.0 by Aviso Digital
Advanced Google Analytics 4.0 by Aviso DigitalAdvanced Google Analytics 4.0 by Aviso Digital
Advanced Google Analytics 4.0 by Aviso Digital
Sumeet Mayor
 
One Further - Spektrix and Google Analytics 4
One Further - Spektrix and Google Analytics 4One Further - Spektrix and Google Analytics 4
One Further - Spektrix and Google Analytics 4
One Further
 
How to Accurately Track Marketing Campaigns + Free Campaign Tagging Tool
How to Accurately Track Marketing Campaigns + Free Campaign Tagging ToolHow to Accurately Track Marketing Campaigns + Free Campaign Tagging Tool
How to Accurately Track Marketing Campaigns + Free Campaign Tagging Tool
In Marketing We Trust
 
Google Tag Manager Can Do What
Google Tag Manager Can Do WhatGoogle Tag Manager Can Do What
Google Tag Manager Can Do What
patrickstox
 
Google ads for beginners
Google ads for beginnersGoogle ads for beginners
Google ads for beginners
Matthew Osborn, MBA
 
Introduction to Google Analytics
Introduction to Google AnalyticsIntroduction to Google Analytics
Introduction to Google Analytics
Cemal Buyukgokcesu
 
What is the best steps for seo ? ppt
What is the best steps for seo ? pptWhat is the best steps for seo ? ppt
What is the best steps for seo ? ppt
e-Definers Technology
 
Google Analytics 4: A Quick Start Guide
 Google Analytics 4: A Quick Start Guide Google Analytics 4: A Quick Start Guide
Google Analytics 4: A Quick Start Guide
Higher Education Marketing
 
Amazon SEO basics
Amazon SEO basicsAmazon SEO basics
Amazon SEO basics
Chaitanya A C V
 
Digital Marketing I : Marketing Funnel
Digital Marketing I : Marketing Funnel Digital Marketing I : Marketing Funnel
Digital Marketing I : Marketing Funnel
Politeknik Digital Boash Indonesia
 
Google Tag Manager (GTM)
Google Tag Manager (GTM)Google Tag Manager (GTM)
Google Tag Manager (GTM)
Dragos Ionita
 
Digital Marketing Service Provider
Digital Marketing Service ProviderDigital Marketing Service Provider
Digital Marketing Service ProviderFomaxtechnology
 

What's hot (20)

Introducing URL Shorteners
Introducing URL ShortenersIntroducing URL Shorteners
Introducing URL Shorteners
 
Advanced Form Tracking in Google Tag Manager
Advanced Form Tracking in Google Tag ManagerAdvanced Form Tracking in Google Tag Manager
Advanced Form Tracking in Google Tag Manager
 
What's new in Google Analytics 4
What's new in Google Analytics 4What's new in Google Analytics 4
What's new in Google Analytics 4
 
Google tag manager
Google tag managerGoogle tag manager
Google tag manager
 
GA4 Mini Training Webinar Deck.pdf
GA4 Mini Training Webinar Deck.pdfGA4 Mini Training Webinar Deck.pdf
GA4 Mini Training Webinar Deck.pdf
 
Google analytics version 4 in details
Google analytics version 4 in detailsGoogle analytics version 4 in details
Google analytics version 4 in details
 
How to Know Exactly Where to Optimize with GA4.pptx
How to Know Exactly Where to Optimize with GA4.pptxHow to Know Exactly Where to Optimize with GA4.pptx
How to Know Exactly Where to Optimize with GA4.pptx
 
Digital Analytics with the Google Tag Manager (GTM)
Digital Analytics with the Google Tag Manager (GTM)Digital Analytics with the Google Tag Manager (GTM)
Digital Analytics with the Google Tag Manager (GTM)
 
Advanced Google Analytics 4.0 by Aviso Digital
Advanced Google Analytics 4.0 by Aviso DigitalAdvanced Google Analytics 4.0 by Aviso Digital
Advanced Google Analytics 4.0 by Aviso Digital
 
One Further - Spektrix and Google Analytics 4
One Further - Spektrix and Google Analytics 4One Further - Spektrix and Google Analytics 4
One Further - Spektrix and Google Analytics 4
 
How to Accurately Track Marketing Campaigns + Free Campaign Tagging Tool
How to Accurately Track Marketing Campaigns + Free Campaign Tagging ToolHow to Accurately Track Marketing Campaigns + Free Campaign Tagging Tool
How to Accurately Track Marketing Campaigns + Free Campaign Tagging Tool
 
Google Tag Manager Can Do What
Google Tag Manager Can Do WhatGoogle Tag Manager Can Do What
Google Tag Manager Can Do What
 
Google ads for beginners
Google ads for beginnersGoogle ads for beginners
Google ads for beginners
 
Introduction to Google Analytics
Introduction to Google AnalyticsIntroduction to Google Analytics
Introduction to Google Analytics
 
What is the best steps for seo ? ppt
What is the best steps for seo ? pptWhat is the best steps for seo ? ppt
What is the best steps for seo ? ppt
 
Google Analytics 4: A Quick Start Guide
 Google Analytics 4: A Quick Start Guide Google Analytics 4: A Quick Start Guide
Google Analytics 4: A Quick Start Guide
 
Amazon SEO basics
Amazon SEO basicsAmazon SEO basics
Amazon SEO basics
 
Digital Marketing I : Marketing Funnel
Digital Marketing I : Marketing Funnel Digital Marketing I : Marketing Funnel
Digital Marketing I : Marketing Funnel
 
Google Tag Manager (GTM)
Google Tag Manager (GTM)Google Tag Manager (GTM)
Google Tag Manager (GTM)
 
Digital Marketing Service Provider
Digital Marketing Service ProviderDigital Marketing Service Provider
Digital Marketing Service Provider
 

Viewers also liked

Advanced Remarketing in Google Analytics Using CRM Data
Advanced Remarketing in Google Analytics Using CRM DataAdvanced Remarketing in Google Analytics Using CRM Data
Advanced Remarketing in Google Analytics Using CRM Data
metricmogul
 
The Lego Data Layer
The Lego Data LayerThe Lego Data Layer
The Lego Data Layer
Carmen Mardiros
 
MeasureCamp IX (London) - 10 JavaScript Concepts for web analysts
MeasureCamp IX (London) - 10 JavaScript Concepts for web analystsMeasureCamp IX (London) - 10 JavaScript Concepts for web analysts
MeasureCamp IX (London) - 10 JavaScript Concepts for web analysts
Simo Ahava
 
Search Marketer's Toolkit for Google Tag Manager and Google Analytics
Search Marketer's Toolkit for Google Tag Manager and Google AnalyticsSearch Marketer's Toolkit for Google Tag Manager and Google Analytics
Search Marketer's Toolkit for Google Tag Manager and Google Analytics
Simo Ahava
 
Tricks and tweaks for Google Analytics and Google Tag Manager
Tricks and tweaks for Google Analytics and Google Tag ManagerTricks and tweaks for Google Analytics and Google Tag Manager
Tricks and tweaks for Google Analytics and Google Tag Manager
Simo Ahava
 
Google Tag Manager for beginners
Google Tag Manager for beginnersGoogle Tag Manager for beginners
Google Tag Manager for beginners
L3analytics
 
Be Critical: Going Beyond The Defaults With GA And GTM (SMX Munich 2015)
Be Critical: Going Beyond The Defaults With GA And GTM (SMX Munich 2015)Be Critical: Going Beyond The Defaults With GA And GTM (SMX Munich 2015)
Be Critical: Going Beyond The Defaults With GA And GTM (SMX Munich 2015)
Simo Ahava
 
What's the weather like? MeasureFest 2014
What's the weather like? MeasureFest 2014What's the weather like? MeasureFest 2014
What's the weather like? MeasureFest 2014
Simo Ahava
 
Rationalizing Tag Management
Rationalizing Tag ManagementRationalizing Tag Management
Rationalizing Tag Management
Simo Ahava
 
Meaningful Data - Reaktor Breakpoint 2015
Meaningful Data - Reaktor Breakpoint 2015Meaningful Data - Reaktor Breakpoint 2015
Meaningful Data - Reaktor Breakpoint 2015
Simo Ahava
 
Tag Management Solutions - Best Data Ever (Marketing Festival 2014)
Tag Management Solutions - Best Data Ever (Marketing Festival 2014)Tag Management Solutions - Best Data Ever (Marketing Festival 2014)
Tag Management Solutions - Best Data Ever (Marketing Festival 2014)
Simo Ahava
 
Content Analytics - The Whys And Hows For Google Analytics
Content Analytics - The Whys And Hows For Google AnalyticsContent Analytics - The Whys And Hows For Google Analytics
Content Analytics - The Whys And Hows For Google Analytics
Simo Ahava
 
SuperWeek 2016 - Garbage In Garbage Out: Data Quality in a TMS World
SuperWeek 2016 - Garbage In Garbage Out: Data Quality in a TMS WorldSuperWeek 2016 - Garbage In Garbage Out: Data Quality in a TMS World
SuperWeek 2016 - Garbage In Garbage Out: Data Quality in a TMS World
Simo Ahava
 
Google tag manager fundamentals question and answer (june 23 and july 24, 2015)
Google tag manager fundamentals question and answer (june 23 and july 24, 2015)Google tag manager fundamentals question and answer (june 23 and july 24, 2015)
Google tag manager fundamentals question and answer (june 23 and july 24, 2015)
Mahendra Patel
 
Google Tag Manager Advanced - SEOCampixx 2016
Google Tag Manager Advanced - SEOCampixx 2016Google Tag Manager Advanced - SEOCampixx 2016
Google Tag Manager Advanced - SEOCampixx 2016
Jan Berens
 
Google Tag Manager (Manual in English)
Google Tag Manager (Manual in English)Google Tag Manager (Manual in English)
Google Tag Manager (Manual in English)Sergey Bizikin
 
Content Engagement with Google Analytics (Emerce Conversion 2015)
Content Engagement with Google Analytics (Emerce Conversion 2015)Content Engagement with Google Analytics (Emerce Conversion 2015)
Content Engagement with Google Analytics (Emerce Conversion 2015)
Simo Ahava
 
Universal Analytics and Google Tag Manager - Superweek 2014
Universal Analytics and Google Tag Manager - Superweek 2014Universal Analytics and Google Tag Manager - Superweek 2014
Universal Analytics and Google Tag Manager - Superweek 2014
Analytics Ninja LLC
 
Google tag manager-web analytics101
Google tag manager-web analytics101Google tag manager-web analytics101
Google tag manager-web analytics101
道育 黃
 
Data Layer - MeasureCamp VII 2015
Data Layer - MeasureCamp VII 2015Data Layer - MeasureCamp VII 2015
Data Layer - MeasureCamp VII 2015
Simo Ahava
 

Viewers also liked (20)

Advanced Remarketing in Google Analytics Using CRM Data
Advanced Remarketing in Google Analytics Using CRM DataAdvanced Remarketing in Google Analytics Using CRM Data
Advanced Remarketing in Google Analytics Using CRM Data
 
The Lego Data Layer
The Lego Data LayerThe Lego Data Layer
The Lego Data Layer
 
MeasureCamp IX (London) - 10 JavaScript Concepts for web analysts
MeasureCamp IX (London) - 10 JavaScript Concepts for web analystsMeasureCamp IX (London) - 10 JavaScript Concepts for web analysts
MeasureCamp IX (London) - 10 JavaScript Concepts for web analysts
 
Search Marketer's Toolkit for Google Tag Manager and Google Analytics
Search Marketer's Toolkit for Google Tag Manager and Google AnalyticsSearch Marketer's Toolkit for Google Tag Manager and Google Analytics
Search Marketer's Toolkit for Google Tag Manager and Google Analytics
 
Tricks and tweaks for Google Analytics and Google Tag Manager
Tricks and tweaks for Google Analytics and Google Tag ManagerTricks and tweaks for Google Analytics and Google Tag Manager
Tricks and tweaks for Google Analytics and Google Tag Manager
 
Google Tag Manager for beginners
Google Tag Manager for beginnersGoogle Tag Manager for beginners
Google Tag Manager for beginners
 
Be Critical: Going Beyond The Defaults With GA And GTM (SMX Munich 2015)
Be Critical: Going Beyond The Defaults With GA And GTM (SMX Munich 2015)Be Critical: Going Beyond The Defaults With GA And GTM (SMX Munich 2015)
Be Critical: Going Beyond The Defaults With GA And GTM (SMX Munich 2015)
 
What's the weather like? MeasureFest 2014
What's the weather like? MeasureFest 2014What's the weather like? MeasureFest 2014
What's the weather like? MeasureFest 2014
 
Rationalizing Tag Management
Rationalizing Tag ManagementRationalizing Tag Management
Rationalizing Tag Management
 
Meaningful Data - Reaktor Breakpoint 2015
Meaningful Data - Reaktor Breakpoint 2015Meaningful Data - Reaktor Breakpoint 2015
Meaningful Data - Reaktor Breakpoint 2015
 
Tag Management Solutions - Best Data Ever (Marketing Festival 2014)
Tag Management Solutions - Best Data Ever (Marketing Festival 2014)Tag Management Solutions - Best Data Ever (Marketing Festival 2014)
Tag Management Solutions - Best Data Ever (Marketing Festival 2014)
 
Content Analytics - The Whys And Hows For Google Analytics
Content Analytics - The Whys And Hows For Google AnalyticsContent Analytics - The Whys And Hows For Google Analytics
Content Analytics - The Whys And Hows For Google Analytics
 
SuperWeek 2016 - Garbage In Garbage Out: Data Quality in a TMS World
SuperWeek 2016 - Garbage In Garbage Out: Data Quality in a TMS WorldSuperWeek 2016 - Garbage In Garbage Out: Data Quality in a TMS World
SuperWeek 2016 - Garbage In Garbage Out: Data Quality in a TMS World
 
Google tag manager fundamentals question and answer (june 23 and july 24, 2015)
Google tag manager fundamentals question and answer (june 23 and july 24, 2015)Google tag manager fundamentals question and answer (june 23 and july 24, 2015)
Google tag manager fundamentals question and answer (june 23 and july 24, 2015)
 
Google Tag Manager Advanced - SEOCampixx 2016
Google Tag Manager Advanced - SEOCampixx 2016Google Tag Manager Advanced - SEOCampixx 2016
Google Tag Manager Advanced - SEOCampixx 2016
 
Google Tag Manager (Manual in English)
Google Tag Manager (Manual in English)Google Tag Manager (Manual in English)
Google Tag Manager (Manual in English)
 
Content Engagement with Google Analytics (Emerce Conversion 2015)
Content Engagement with Google Analytics (Emerce Conversion 2015)Content Engagement with Google Analytics (Emerce Conversion 2015)
Content Engagement with Google Analytics (Emerce Conversion 2015)
 
Universal Analytics and Google Tag Manager - Superweek 2014
Universal Analytics and Google Tag Manager - Superweek 2014Universal Analytics and Google Tag Manager - Superweek 2014
Universal Analytics and Google Tag Manager - Superweek 2014
 
Google tag manager-web analytics101
Google tag manager-web analytics101Google tag manager-web analytics101
Google tag manager-web analytics101
 
Data Layer - MeasureCamp VII 2015
Data Layer - MeasureCamp VII 2015Data Layer - MeasureCamp VII 2015
Data Layer - MeasureCamp VII 2015
 

Similar to Google Tag Manager For Nerds

"Taster Slides" for Most advanced GTM implementation
"Taster Slides" for Most advanced GTM implementation"Taster Slides" for Most advanced GTM implementation
"Taster Slides" for Most advanced GTM implementation
Phil Pearce
 
Speed bumps ahead
Speed bumps aheadSpeed bumps ahead
Speed bumps ahead
Alexander Yakushev
 
Game Playing RL Agent
Game Playing RL AgentGame Playing RL Agent
Game Playing RL Agent
Apache MXNet
 
AWS Lambda를 통한 Tensorflow 및 Keras 기반 추론 모델 서비스하기 :: 이준범 :: AWS Summit Seoul 2018
AWS Lambda를 통한 Tensorflow 및 Keras 기반 추론 모델 서비스하기 :: 이준범 :: AWS Summit Seoul 2018AWS Lambda를 통한 Tensorflow 및 Keras 기반 추론 모델 서비스하기 :: 이준범 :: AWS Summit Seoul 2018
AWS Lambda를 통한 Tensorflow 및 Keras 기반 추론 모델 서비스하기 :: 이준범 :: AWS Summit Seoul 2018
Amazon Web Services Korea
 
Build, train and deploy your ML models with Amazon Sage Maker
Build, train and deploy your ML models with Amazon Sage MakerBuild, train and deploy your ML models with Amazon Sage Maker
Build, train and deploy your ML models with Amazon Sage Maker
AWS User Group Bengaluru
 
Oracle - Program with PL/SQL - Lession 17
Oracle - Program with PL/SQL - Lession 17Oracle - Program with PL/SQL - Lession 17
Oracle - Program with PL/SQL - Lession 17
Thuan Nguyen
 
XQuery Triggers in Native XML Database Sedna
XQuery Triggers in Native XML Database SednaXQuery Triggers in Native XML Database Sedna
XQuery Triggers in Native XML Database Sednamaria.grineva
 
Drupal in aerospace - selling geodetic satellite data with Commerce - Martin ...
Drupal in aerospace - selling geodetic satellite data with Commerce - Martin ...Drupal in aerospace - selling geodetic satellite data with Commerce - Martin ...
Drupal in aerospace - selling geodetic satellite data with Commerce - Martin ...DrupalCamp MSK
 
Morphing GA into an Affiliate Analytics Monster
Morphing GA into an Affiliate Analytics MonsterMorphing GA into an Affiliate Analytics Monster
Morphing GA into an Affiliate Analytics Monster
Phil Pearce
 
Javascript & SQL within database management system
Javascript & SQL within database management systemJavascript & SQL within database management system
Javascript & SQL within database management system
Clusterpoint
 
Hacking Movable Type
Hacking Movable TypeHacking Movable Type
Hacking Movable Type
Stefano Rodighiero
 
Having fun with Google Tag Manager (implement cool things like weather tracki...
Having fun with Google Tag Manager (implement cool things like weather tracki...Having fun with Google Tag Manager (implement cool things like weather tracki...
Having fun with Google Tag Manager (implement cool things like weather tracki...
Eventz.Digital
 
JavaScript Refactoring
JavaScript RefactoringJavaScript Refactoring
JavaScript Refactoring
Krzysztof Szafranek
 
Clean Javascript
Clean JavascriptClean Javascript
Clean Javascript
Ryunosuke SATO
 
Bulletproof Jobs: Patterns For Large-Scale Spark Processing
Bulletproof Jobs: Patterns For Large-Scale Spark ProcessingBulletproof Jobs: Patterns For Large-Scale Spark Processing
Bulletproof Jobs: Patterns For Large-Scale Spark Processing
Spark Summit
 
Using Task Queues and D3.js to build an analytics product on App Engine
Using Task Queues and D3.js to build an analytics product on App EngineUsing Task Queues and D3.js to build an analytics product on App Engine
Using Task Queues and D3.js to build an analytics product on App Engine
River of Talent
 
Build, Train & Deploy Your ML Application on Amazon SageMaker
Build, Train & Deploy Your ML Application on Amazon SageMakerBuild, Train & Deploy Your ML Application on Amazon SageMaker
Build, Train & Deploy Your ML Application on Amazon SageMaker
Amazon Web Services
 
$.get, a Prime on Data Fetching
$.get, a Prime on Data Fetching$.get, a Prime on Data Fetching
$.get, a Prime on Data Fetching
Josh Black
 

Similar to Google Tag Manager For Nerds (20)

"Taster Slides" for Most advanced GTM implementation
"Taster Slides" for Most advanced GTM implementation"Taster Slides" for Most advanced GTM implementation
"Taster Slides" for Most advanced GTM implementation
 
Speed bumps ahead
Speed bumps aheadSpeed bumps ahead
Speed bumps ahead
 
Game Playing RL Agent
Game Playing RL AgentGame Playing RL Agent
Game Playing RL Agent
 
AWS Lambda를 통한 Tensorflow 및 Keras 기반 추론 모델 서비스하기 :: 이준범 :: AWS Summit Seoul 2018
AWS Lambda를 통한 Tensorflow 및 Keras 기반 추론 모델 서비스하기 :: 이준범 :: AWS Summit Seoul 2018AWS Lambda를 통한 Tensorflow 및 Keras 기반 추론 모델 서비스하기 :: 이준범 :: AWS Summit Seoul 2018
AWS Lambda를 통한 Tensorflow 및 Keras 기반 추론 모델 서비스하기 :: 이준범 :: AWS Summit Seoul 2018
 
Graphite
GraphiteGraphite
Graphite
 
Build, train and deploy your ML models with Amazon Sage Maker
Build, train and deploy your ML models with Amazon Sage MakerBuild, train and deploy your ML models with Amazon Sage Maker
Build, train and deploy your ML models with Amazon Sage Maker
 
Oracle - Program with PL/SQL - Lession 17
Oracle - Program with PL/SQL - Lession 17Oracle - Program with PL/SQL - Lession 17
Oracle - Program with PL/SQL - Lession 17
 
XQuery Triggers in Native XML Database Sedna
XQuery Triggers in Native XML Database SednaXQuery Triggers in Native XML Database Sedna
XQuery Triggers in Native XML Database Sedna
 
Drupal in aerospace - selling geodetic satellite data with Commerce - Martin ...
Drupal in aerospace - selling geodetic satellite data with Commerce - Martin ...Drupal in aerospace - selling geodetic satellite data with Commerce - Martin ...
Drupal in aerospace - selling geodetic satellite data with Commerce - Martin ...
 
Morphing GA into an Affiliate Analytics Monster
Morphing GA into an Affiliate Analytics MonsterMorphing GA into an Affiliate Analytics Monster
Morphing GA into an Affiliate Analytics Monster
 
Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJS
 
Javascript & SQL within database management system
Javascript & SQL within database management systemJavascript & SQL within database management system
Javascript & SQL within database management system
 
Hacking Movable Type
Hacking Movable TypeHacking Movable Type
Hacking Movable Type
 
Having fun with Google Tag Manager (implement cool things like weather tracki...
Having fun with Google Tag Manager (implement cool things like weather tracki...Having fun with Google Tag Manager (implement cool things like weather tracki...
Having fun with Google Tag Manager (implement cool things like weather tracki...
 
JavaScript Refactoring
JavaScript RefactoringJavaScript Refactoring
JavaScript Refactoring
 
Clean Javascript
Clean JavascriptClean Javascript
Clean Javascript
 
Bulletproof Jobs: Patterns For Large-Scale Spark Processing
Bulletproof Jobs: Patterns For Large-Scale Spark ProcessingBulletproof Jobs: Patterns For Large-Scale Spark Processing
Bulletproof Jobs: Patterns For Large-Scale Spark Processing
 
Using Task Queues and D3.js to build an analytics product on App Engine
Using Task Queues and D3.js to build an analytics product on App EngineUsing Task Queues and D3.js to build an analytics product on App Engine
Using Task Queues and D3.js to build an analytics product on App Engine
 
Build, Train & Deploy Your ML Application on Amazon SageMaker
Build, Train & Deploy Your ML Application on Amazon SageMakerBuild, Train & Deploy Your ML Application on Amazon SageMaker
Build, Train & Deploy Your ML Application on Amazon SageMaker
 
$.get, a Prime on Data Fetching
$.get, a Prime on Data Fetching$.get, a Prime on Data Fetching
$.get, a Prime on Data Fetching
 

More from Simo Ahava

Web Browsers and Tracking Protections
Web Browsers and Tracking ProtectionsWeb Browsers and Tracking Protections
Web Browsers and Tracking Protections
Simo Ahava
 
Server-side Tagging in Google Tag Manager - MeasureSummit 2020
Server-side Tagging in Google Tag Manager - MeasureSummit 2020Server-side Tagging in Google Tag Manager - MeasureSummit 2020
Server-side Tagging in Google Tag Manager - MeasureSummit 2020
Simo Ahava
 
Browser Tracking Protections - SuperWeek 2020
Browser Tracking Protections - SuperWeek 2020Browser Tracking Protections - SuperWeek 2020
Browser Tracking Protections - SuperWeek 2020
Simo Ahava
 
You can't spell MEASURE without CUSTOMIZATION
You can't spell MEASURE without CUSTOMIZATIONYou can't spell MEASURE without CUSTOMIZATION
You can't spell MEASURE without CUSTOMIZATION
Simo Ahava
 
Essential Search Marketing Tweaks For Google Analytics And Google Tag Manager
Essential Search Marketing Tweaks For Google Analytics And Google Tag ManagerEssential Search Marketing Tweaks For Google Analytics And Google Tag Manager
Essential Search Marketing Tweaks For Google Analytics And Google Tag Manager
Simo Ahava
 
Agile Analytics
Agile AnalyticsAgile Analytics
Agile Analytics
Simo Ahava
 
Google Tag Manager - 5 years. What have we learned?
Google Tag Manager - 5 years. What have we learned?Google Tag Manager - 5 years. What have we learned?
Google Tag Manager - 5 years. What have we learned?
Simo Ahava
 
Meaningful Data - Best Internet Conference 2015 (Lithuania)
Meaningful Data - Best Internet Conference 2015 (Lithuania)Meaningful Data - Best Internet Conference 2015 (Lithuania)
Meaningful Data - Best Internet Conference 2015 (Lithuania)
Simo Ahava
 
Key Insights From Funnels - Enhanced Ecommerce For Google Analytics
Key Insights From Funnels - Enhanced Ecommerce For Google AnalyticsKey Insights From Funnels - Enhanced Ecommerce For Google Analytics
Key Insights From Funnels - Enhanced Ecommerce For Google Analytics
Simo Ahava
 
Enhanced Ecommerce For Content (SMX München 2015)
Enhanced Ecommerce For Content (SMX München 2015)Enhanced Ecommerce For Content (SMX München 2015)
Enhanced Ecommerce For Content (SMX München 2015)
Simo Ahava
 
Google Analytics Bag O' Tricks
Google Analytics Bag O' TricksGoogle Analytics Bag O' Tricks
Google Analytics Bag O' Tricks
Simo Ahava
 

More from Simo Ahava (11)

Web Browsers and Tracking Protections
Web Browsers and Tracking ProtectionsWeb Browsers and Tracking Protections
Web Browsers and Tracking Protections
 
Server-side Tagging in Google Tag Manager - MeasureSummit 2020
Server-side Tagging in Google Tag Manager - MeasureSummit 2020Server-side Tagging in Google Tag Manager - MeasureSummit 2020
Server-side Tagging in Google Tag Manager - MeasureSummit 2020
 
Browser Tracking Protections - SuperWeek 2020
Browser Tracking Protections - SuperWeek 2020Browser Tracking Protections - SuperWeek 2020
Browser Tracking Protections - SuperWeek 2020
 
You can't spell MEASURE without CUSTOMIZATION
You can't spell MEASURE without CUSTOMIZATIONYou can't spell MEASURE without CUSTOMIZATION
You can't spell MEASURE without CUSTOMIZATION
 
Essential Search Marketing Tweaks For Google Analytics And Google Tag Manager
Essential Search Marketing Tweaks For Google Analytics And Google Tag ManagerEssential Search Marketing Tweaks For Google Analytics And Google Tag Manager
Essential Search Marketing Tweaks For Google Analytics And Google Tag Manager
 
Agile Analytics
Agile AnalyticsAgile Analytics
Agile Analytics
 
Google Tag Manager - 5 years. What have we learned?
Google Tag Manager - 5 years. What have we learned?Google Tag Manager - 5 years. What have we learned?
Google Tag Manager - 5 years. What have we learned?
 
Meaningful Data - Best Internet Conference 2015 (Lithuania)
Meaningful Data - Best Internet Conference 2015 (Lithuania)Meaningful Data - Best Internet Conference 2015 (Lithuania)
Meaningful Data - Best Internet Conference 2015 (Lithuania)
 
Key Insights From Funnels - Enhanced Ecommerce For Google Analytics
Key Insights From Funnels - Enhanced Ecommerce For Google AnalyticsKey Insights From Funnels - Enhanced Ecommerce For Google Analytics
Key Insights From Funnels - Enhanced Ecommerce For Google Analytics
 
Enhanced Ecommerce For Content (SMX München 2015)
Enhanced Ecommerce For Content (SMX München 2015)Enhanced Ecommerce For Content (SMX München 2015)
Enhanced Ecommerce For Content (SMX München 2015)
 
Google Analytics Bag O' Tricks
Google Analytics Bag O' TricksGoogle Analytics Bag O' Tricks
Google Analytics Bag O' Tricks
 

Recently uploaded

一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
eutxy
 
Comptia N+ Standard Networking lesson guide
Comptia N+ Standard Networking lesson guideComptia N+ Standard Networking lesson guide
Comptia N+ Standard Networking lesson guide
GTProductions1
 
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdfJAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
Javier Lasa
 
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shopHistory+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
laozhuseo02
 
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC
 
Latest trends in computer networking.pptx
Latest trends in computer networking.pptxLatest trends in computer networking.pptx
Latest trends in computer networking.pptx
JungkooksNonexistent
 
How to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptxHow to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptx
Gal Baras
 
This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!
nirahealhty
 
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
3ipehhoa
 
Italy Agriculture Equipment Market Outlook to 2027
Italy Agriculture Equipment Market Outlook to 2027Italy Agriculture Equipment Market Outlook to 2027
Italy Agriculture Equipment Market Outlook to 2027
harveenkaur52
 
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
ufdana
 
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
3ipehhoa
 
1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
JeyaPerumal1
 
Bài tập unit 1 English in the world.docx
Bài tập unit 1 English in the world.docxBài tập unit 1 English in the world.docx
Bài tập unit 1 English in the world.docx
nhiyenphan2005
 
guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...
Rogerio Filho
 
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdfMeet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Florence Consulting
 
The+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptxThe+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptx
laozhuseo02
 
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
3ipehhoa
 
test test test test testtest test testtest test testtest test testtest test ...
test test  test test testtest test testtest test testtest test testtest test ...test test  test test testtest test testtest test testtest test testtest test ...
test test test test testtest test testtest test testtest test testtest test ...
Arif0071
 
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
keoku
 

Recently uploaded (20)

一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
 
Comptia N+ Standard Networking lesson guide
Comptia N+ Standard Networking lesson guideComptia N+ Standard Networking lesson guide
Comptia N+ Standard Networking lesson guide
 
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdfJAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
 
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shopHistory+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
 
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
 
Latest trends in computer networking.pptx
Latest trends in computer networking.pptxLatest trends in computer networking.pptx
Latest trends in computer networking.pptx
 
How to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptxHow to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptx
 
This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!
 
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
 
Italy Agriculture Equipment Market Outlook to 2027
Italy Agriculture Equipment Market Outlook to 2027Italy Agriculture Equipment Market Outlook to 2027
Italy Agriculture Equipment Market Outlook to 2027
 
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
一比一原版(CSU毕业证)加利福尼亚州立大学毕业证成绩单专业办理
 
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
 
1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
 
Bài tập unit 1 English in the world.docx
Bài tập unit 1 English in the world.docxBài tập unit 1 English in the world.docx
Bài tập unit 1 English in the world.docx
 
guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...
 
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdfMeet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
Meet up Milano 14 _ Axpo Italia_ Migration from Mule3 (On-prem) to.pdf
 
The+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptxThe+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptx
 
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
 
test test test test testtest test testtest test testtest test testtest test ...
test test  test test testtest test testtest test testtest test testtest test ...test test  test test testtest test testtest test testtest test testtest test ...
test test test test testtest test testtest test testtest test testtest test ...
 
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
 

Google Tag Manager For Nerds

  • 1. Simo Ahava | NetBooster
  • 2. GTM For Nerds MeasureCamp V – 20 September 2014 function MeasureCampV() { this.awesome = awesome; }
  • 3. GTM For Nerds MeasureCamp V – 20 September 2014 @SimoAhava function MeasureCampV() { this.awesome = awesome; } http://google.me/+SimoAhava simo@simoahava.com www.simoahava.com
  • 4. MASTERED by desire impulsive, By a mighty inward urging, I am ready now for singing, Ready to begin the coding -- A. Gallen-Kallela: The Boat’s Lament
  • 5. What is dataLayer  A JavaScript Array @SimoAhava | MeasureCamp V
  • 6. What is dataLayer  A JavaScript Array  dataLayer = []; @SimoAhava | MeasureCamp V
  • 7. What is dataLayer  A JavaScript Array  dataLayer = [];  dataLayer.push('item1'); // dataLayer[0] => 'item1’ @SimoAhava | MeasureCamp V
  • 8. What is dataLayer  A JavaScript Array  dataLayer = [];  dataLayer.push('item1'); // dataLayer[0] => 'item1'  dataLayer.push({'item2' : [{'data1' : true},{'data2' : 'Peter'}]}); // dataLayer[1] => 'item2' : Array[2] @SimoAhava | MeasureCamp V
  • 9. What is dataLayer  A JavaScript Array  dataLayer = [];  dataLayer.push('item1'); // dataLayer[0] => 'item1'  dataLayer.push({'item2' : [{'data1' : true},{'data2' : 'Peter'}]}); // dataLayer[1] => 'item2' : Array[2]  var item2 = dataLayer.pop(); // item2 => Array[2], dataLayer[1] => @SimoAhava | MeasureCamp V undefined
  • 10. What is dataLayer  A JavaScript Array  dataLayer = [];  dataLayer.push('item1'); // dataLayer[0] => 'item1'  dataLayer.push({'item2' : [{'data1' : true},{'data2' : 'Peter'}]}); // dataLayer[1] => 'item2' : Array[2]  var item2 = dataLayer.pop(); // item2 => Array[2], dataLayer[1] => @SimoAhava | MeasureCamp V undefined  dataLayer.push({'event' : 'gtm.js'}); // No special effects
  • 11. What is dataLayer  A JavaScript Array  dataLayer = [];  dataLayer.push('item1'); // dataLayer[0] => 'item1'  dataLayer.push({'item2' : [{'data1' : true},{'data2' : 'Peter'}]}); // dataLayer[1] => 'item2' : Array[2]  var item2 = dataLayer.pop(); // item2 => Array[2], dataLayer[1] => @SimoAhava | MeasureCamp V undefined  dataLayer.push({'event' : 'gtm.js'}); // No special effects  There is absolutely nothing special about dataLayer ... or is there?
  • 12. What is dataLayer  A JavaScript Array  dataLayer = [];  dataLayer.push('item1'); // dataLayer[0] => 'item1'  dataLayer.push({'item2' : [{'data1' : true},{'data2' : 'Peter'}]}); // dataLayer[1] => 'item2' : Array[2]  var item2 = dataLayer.pop(); // item2 => Array[2], dataLayer[1] => @SimoAhava | MeasureCamp V undefined  dataLayer.push({'event' : 'gtm.js'}); // No special effects  There is absolutely nothing special about dataLayer ... or is there?  It’s the default name of the data structure that Google Tag Manager uses
  • 13. What is dataLayer  …but it looks like GTM overrides the default push() method: @SimoAhava | MeasureCamp V
  • 14. What is dataLayer  …but it looks like GTM overrides the default push() method:  This does three (visible) things: @SimoAhava | MeasureCamp V
  • 15. What is dataLayer  …but it looks like GTM overrides the default push() method:  This does three (visible) things: 1. Initiates a listener which processes the new state of dataLayer after each push() 2. Sets the maximum length of dataLayer to 300 3. Instead of returning the length of the Array, a push() returns true if no tags were fired and false if tags were fired – synchronous operation for ”Wait for Tags”! @SimoAhava | MeasureCamp V
  • 16. What is dataLayer  …but it looks like GTM overrides the default push() method:  This does three (visible) things: 1. Initiates a listener which processes the new state of dataLayer after each push() 2. Sets the maximum length of dataLayer to 300 3. Instead of returning the length of the Array, a push() returns true if no tags were fired and false if tags were fired – synchronous operation for ”Wait for Tags”!  These will all be part of the specification that vendors need to adhere to  Memory management such as setting the maximum length of the Array will eventually be configurable @SimoAhava | MeasureCamp V
  • 17. A. Gallen-Kallela: Lemminkainen’s Mother THERE the blood-stained data model, There Google's son and hero, Cuts in pieces dataLayer, Chops it with his mighty hatchet --
  • 18. What is Google Tag Manager’s data model  An abstract data model, which passes and processes data from dataLayer to Google Tag Manager @SimoAhava | MeasureCamp V
  • 19. What is Google Tag Manager’s data model  An abstract data model, which passes and processes data from dataLayer to Google Tag Manager dataLayer Data model Tool-agnostic Tool-specific Generic Unique Accessed directly Accessed via helper Structured Abstract @SimoAhava | MeasureCamp V
  • 20. What is Google Tag Manager’s data model  In GTM, the interface exposes two methods:  google_tag_manager["GTM-XXXX"].dataLayer.get('key')  google_tag_manager["GTM-XXXX"].dataLayer.set('key','value') @SimoAhava | MeasureCamp V
  • 21. What is Google Tag Manager’s data model  In GTM, the interface exposes two methods:  google_tag_manager["GTM-XXXX"].dataLayer.get('key')  google_tag_manager["GTM-XXXX"].dataLayer.set('key','value')  These are used to access the data stored in the data model, and should not be used directly @SimoAhava | MeasureCamp V
  • 22. What is Google Tag Manager’s data model  In GTM, the interface exposes two methods:  google_tag_manager["GTM-XXXX"].dataLayer.get('key')  google_tag_manager["GTM-XXXX"].dataLayer.set('key','value')  These are used to access the data stored in the data model, and should not be used directly  Using get() retrieves the most recent value for ’key’  dataLayer.push({'key1' : 'value1'}); // dataLayer[0]  google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // 'value1'  dataLayer.push({'key1' : 'value2'}); // dataLayer[1]!  google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // 'value2' @SimoAhava | MeasureCamp V
  • 23. What is Google Tag Manager’s data model  Cool, get() works nicely with dotted names and nested objects  dataLayer.push({'key1.id' : '123'});  google_tag_manager["GTM-XXXX"].dataLayer.get('key1.id'); // '123'  dataLayer.push({'key2' : {'id' : '234'}});  google_tag_manager["GTM-XXXX"].dataLayer.get('key2.id'); // '234’ @SimoAhava | MeasureCamp V
  • 24. What is Google Tag Manager’s data model  Cool, get() works nicely with dotted names and nested objects  dataLayer.push({'key1.id' : '123'});  google_tag_manager["GTM-XXXX"].dataLayer.get('key1.id'); // '123'  dataLayer.push({'key2' : {'id' : '234'}});  google_tag_manager["GTM-XXXX"].dataLayer.get('key2.id'); // '234’  Yes, get() is the method that is called by your Data Layer Variable Macros @SimoAhava | MeasureCamp V
  • 25. What is Google Tag Manager’s data model  Cool, get() works nicely with dotted names and nested objects  dataLayer.push({'key1.id' : '123'});  google_tag_manager["GTM-XXXX"].dataLayer.get('key1.id'); // '123'  dataLayer.push({'key2' : {'id' : '234'}});  google_tag_manager["GTM-XXXX"].dataLayer.get('key2.id'); // '234’  Yes, get() is the method that is called by your Data Layer Variable Macros  So…  When a dataLayer.push() occurs, the arguments are copied to the data model @SimoAhava | MeasureCamp V
  • 26. What is Google Tag Manager’s data model  Cool, get() works nicely with dotted names and nested objects  dataLayer.push({'key1.id' : '123'});  google_tag_manager["GTM-XXXX"].dataLayer.get('key1.id'); // '123'  dataLayer.push({'key2' : {'id' : '234'}});  google_tag_manager["GTM-XXXX"].dataLayer.get('key2.id'); // '234’  Yes, get() is the method that is called by your Data Layer Variable Macros  So…  When a dataLayer.push() occurs, the arguments are copied to the data model  The get() method can be used to retrieve data from the data model @SimoAhava | MeasureCamp V
  • 27. A. Gallen-Kallela: The Forging Of The Sampo dataLayer, worthy brother, Thou, my faithful indexed Array, Come and see this wondrous beauty, Abstract structure, awesome methods --
  • 28. Peculiarities of the data model  Changing value type overwrites the previous value  dataLayer.push({'key1' : [1, 2, 3]});  google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // Array[3]  dataLayer.push({'key1' : 'cool'});  google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // 'cool' @SimoAhava | MeasureCamp V
  • 29. Peculiarities of the data model  Changing value type overwrites the previous value  dataLayer.push({'key1' : [1, 2, 3]});  google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // Array[3]  dataLayer.push({'key1' : 'cool'});  google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // 'cool'  Array to Array and plain object to plain object behave a bit differently  dataLayer.push({'key1' : [1, 2, 3]});  google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // [1, 2, 3]  dataLayer.push({'key1' : [4, 5]});  google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // [4, 5, 3]! @SimoAhava | MeasureCamp V
  • 30. Peculiarities of the data model  Updating an Array in the data model is clumsy (and not a good idea)  dataLayer.push({'key1' : [1, 2, 3]});  var k = google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // [1, 2, 3]  k.push(4, 5);  google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // [1, 2, 3, 4, 5] @SimoAhava | MeasureCamp V
  • 31. Peculiarities of the data model  Updating an Array in the data model is clumsy (and not a good idea)  dataLayer.push({'key1' : [1, 2, 3]});  var k = google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // [1, 2, 3]  k.push(4, 5);  google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // [1, 2, 3, 4, 5]  So there’s a special ’command array’ you can use, which accesses all supported methods of the value  dataLayer.push({'key1' : [1, 2, 3]});  dataLayer.push(['key1.push', 4, 5]); // Note the square brackets!  google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // [1, 2, 3, 4, 5] @SimoAhava | MeasureCamp V
  • 32. Peculiarities of the data model  Plain object to plain object is more straightforward  dataLayer.push({'key1' : {'one' : 1}});  google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // {one: 1} @SimoAhava | MeasureCamp V
  • 33. Peculiarities of the data model  Plain object to plain object is more straightforward  dataLayer.push({'key1' : {'one' : 1}});  google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // {one: 1}  dataLayer.push({'key1' : {'two' : 2}});  google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // {one: 1}, {two: 2} @SimoAhava | MeasureCamp V
  • 34. Peculiarities of the data model  Plain object to plain object is more straightforward  dataLayer.push({'key1' : {'one' : 1}});  google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // {one: 1}  dataLayer.push({'key1' : {'two' : 2}});  google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // {one: 1}, {two: 2}  dataLayer.push({'key1' : {'one' : {'two' : 3}}});  google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // {one: {two: 3}}, @SimoAhava | MeasureCamp V {two: 2}
  • 35. Peculiarities of the data model  You can also run your own functions on values in the data model  dataLayer.push({'key1' : {'one' : 1}});  dataLayer.push(function() { var key1 = this.get('key1'); if(key1.hasOwnProperty('one') { this.set('key1', {'one' : 2}); } });  google_tag_manager["GTM-XXXX"].dataLayer.get('key1'); // {one: 2} @SimoAhava | MeasureCamp V
  • 36. @SimoAhava | MeasureCamp V Thank you www.simoahava.com/analytics/data-layer/ www.simoahava.com/analytics/google-tag-manager-data-model/ #GTMtips http://google.me/+SimoAhava @SimoAhava