SlideShare una empresa de Scribd logo
1 de 36
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

Más contenido relacionado

La actualidad más candente

Google Tag Manager Can Do What
Google Tag Manager Can Do WhatGoogle Tag Manager Can Do What
Google Tag Manager Can Do Whatpatrickstox
 
Google Tag Manager (GTM)
Google Tag Manager (GTM)Google Tag Manager (GTM)
Google Tag Manager (GTM)Areva Digital
 
Media Kitchen - The Cookieless Future
Media Kitchen - The Cookieless FutureMedia Kitchen - The Cookieless Future
Media Kitchen - The Cookieless FutureThe Media Kitchen
 
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 DigitalSumeet Mayor
 
Most Advanced GTM Deployment. Ever!
Most Advanced GTM Deployment. Ever!Most Advanced GTM Deployment. Ever!
Most Advanced GTM Deployment. Ever!Phil Pearce
 
Third-Party Cookie Loss Masterclass 1: So Your Cookie Crumbled, What's Next?
Third-Party Cookie Loss Masterclass 1: So Your Cookie Crumbled, What's Next?Third-Party Cookie Loss Masterclass 1: So Your Cookie Crumbled, What's Next?
Third-Party Cookie Loss Masterclass 1: So Your Cookie Crumbled, What's Next?Tealium
 
Migrating wise.com to server-side GA4
Migrating wise.com to server-side GA4Migrating wise.com to server-side GA4
Migrating wise.com to server-side GA4Tom Bennet
 
Social Media Marketing Plan Playbook
Social Media Marketing Plan PlaybookSocial Media Marketing Plan Playbook
Social Media Marketing Plan PlaybookDemand Metric
 
Your Raw Data is Ready - Introduction to Analytics Engineering | SMX Advanced...
Your Raw Data is Ready - Introduction to Analytics Engineering | SMX Advanced...Your Raw Data is Ready - Introduction to Analytics Engineering | SMX Advanced...
Your Raw Data is Ready - Introduction to Analytics Engineering | SMX Advanced...Christopher Gutknecht
 
Google Tag Manager (GTM)
Google Tag Manager (GTM)Google Tag Manager (GTM)
Google Tag Manager (GTM)Dragos Ionita
 
Is Consent Mode Working.pdf
Is Consent Mode Working.pdfIs Consent Mode Working.pdf
Is Consent Mode Working.pdfDoug Hall
 
Digital Marketing Opportunities And Challenges Powerpoint Presentation Slides
Digital Marketing Opportunities And Challenges Powerpoint Presentation SlidesDigital Marketing Opportunities And Challenges Powerpoint Presentation Slides
Digital Marketing Opportunities And Challenges Powerpoint Presentation SlidesSlideTeam
 
Deck 3: Cookieless Tracking & Data Unification
Deck 3: Cookieless Tracking & Data UnificationDeck 3: Cookieless Tracking & Data Unification
Deck 3: Cookieless Tracking & Data UnificationFlashtalking
 
Social Media Marketing Plan
Social Media Marketing PlanSocial Media Marketing Plan
Social Media Marketing PlanPaolaLeon54
 
Adobe analytics presentation abhi boyanpalli sept 2013
Adobe analytics presentation   abhi boyanpalli sept 2013Adobe analytics presentation   abhi boyanpalli sept 2013
Adobe analytics presentation abhi boyanpalli sept 2013Karl Schneider
 
Getting Started with Google Analytics 4
Getting Started with Google Analytics 4Getting Started with Google Analytics 4
Getting Started with Google Analytics 4In Marketing We Trust
 
Digital marketing performance report - Q3 2011 - Efficient Frontier
Digital marketing performance report - Q3 2011 - Efficient FrontierDigital marketing performance report - Q3 2011 - Efficient Frontier
Digital marketing performance report - Q3 2011 - Efficient FrontierRomain Fonnier
 

La actualidad más candente (20)

Google Tag Manager Can Do What
Google Tag Manager Can Do WhatGoogle Tag Manager Can Do What
Google Tag Manager Can Do What
 
Google tag manager
Google tag managerGoogle tag manager
Google tag manager
 
Google Tag Manager (GTM)
Google Tag Manager (GTM)Google Tag Manager (GTM)
Google Tag Manager (GTM)
 
Media Kitchen - The Cookieless Future
Media Kitchen - The Cookieless FutureMedia Kitchen - The Cookieless Future
Media Kitchen - The Cookieless Future
 
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
 
Most Advanced GTM Deployment. Ever!
Most Advanced GTM Deployment. Ever!Most Advanced GTM Deployment. Ever!
Most Advanced GTM Deployment. Ever!
 
Third-Party Cookie Loss Masterclass 1: So Your Cookie Crumbled, What's Next?
Third-Party Cookie Loss Masterclass 1: So Your Cookie Crumbled, What's Next?Third-Party Cookie Loss Masterclass 1: So Your Cookie Crumbled, What's Next?
Third-Party Cookie Loss Masterclass 1: So Your Cookie Crumbled, What's Next?
 
Migrating wise.com to server-side GA4
Migrating wise.com to server-side GA4Migrating wise.com to server-side GA4
Migrating wise.com to server-side GA4
 
Social Media Marketing Plan Playbook
Social Media Marketing Plan PlaybookSocial Media Marketing Plan Playbook
Social Media Marketing Plan Playbook
 
Your Raw Data is Ready - Introduction to Analytics Engineering | SMX Advanced...
Your Raw Data is Ready - Introduction to Analytics Engineering | SMX Advanced...Your Raw Data is Ready - Introduction to Analytics Engineering | SMX Advanced...
Your Raw Data is Ready - Introduction to Analytics Engineering | SMX Advanced...
 
Google Tag Manager (GTM)
Google Tag Manager (GTM)Google Tag Manager (GTM)
Google Tag Manager (GTM)
 
Is Consent Mode Working.pdf
Is Consent Mode Working.pdfIs Consent Mode Working.pdf
Is Consent Mode Working.pdf
 
Digital Marketing Opportunities And Challenges Powerpoint Presentation Slides
Digital Marketing Opportunities And Challenges Powerpoint Presentation SlidesDigital Marketing Opportunities And Challenges Powerpoint Presentation Slides
Digital Marketing Opportunities And Challenges Powerpoint Presentation Slides
 
Deck 3: Cookieless Tracking & Data Unification
Deck 3: Cookieless Tracking & Data UnificationDeck 3: Cookieless Tracking & Data Unification
Deck 3: Cookieless Tracking & Data Unification
 
Social Media Marketing Plan
Social Media Marketing PlanSocial Media Marketing Plan
Social Media Marketing Plan
 
Google Analytics 4 - OMT
Google Analytics 4 - OMTGoogle Analytics 4 - OMT
Google Analytics 4 - OMT
 
Adobe analytics presentation abhi boyanpalli sept 2013
Adobe analytics presentation   abhi boyanpalli sept 2013Adobe analytics presentation   abhi boyanpalli sept 2013
Adobe analytics presentation abhi boyanpalli sept 2013
 
Google Tag Manager 101
Google Tag Manager 101Google Tag Manager 101
Google Tag Manager 101
 
Getting Started with Google Analytics 4
Getting Started with Google Analytics 4Getting Started with Google Analytics 4
Getting Started with Google Analytics 4
 
Digital marketing performance report - Q3 2011 - Efficient Frontier
Digital marketing performance report - Q3 2011 - Efficient FrontierDigital marketing performance report - Q3 2011 - Efficient Frontier
Digital marketing performance report - Q3 2011 - Efficient Frontier
 

Destacado

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 Datametricmogul
 
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 analystsSimo 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 AnalyticsSimo 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 ManagerSimo Ahava
 
Google Tag Manager for beginners
Google Tag Manager for beginnersGoogle Tag Manager for beginners
Google Tag Manager for beginnersL3analytics
 
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 2014Simo Ahava
 
Rationalizing Tag Management
Rationalizing Tag ManagementRationalizing Tag Management
Rationalizing Tag ManagementSimo Ahava
 
Meaningful Data - Reaktor Breakpoint 2015
Meaningful Data - Reaktor Breakpoint 2015Meaningful Data - Reaktor Breakpoint 2015
Meaningful Data - Reaktor Breakpoint 2015Simo 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 AnalyticsSimo 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 WorldSimo 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 2016Jan 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 2014Analytics Ninja LLC
 
Google Tag Manager
Google Tag ManagerGoogle Tag Manager
Google Tag ManagerBraveBits
 
Google tag manager-web analytics101
Google tag manager-web analytics101Google tag manager-web analytics101
Google tag manager-web analytics101道育 黃
 

Destacado (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
Google Tag ManagerGoogle Tag Manager
Google Tag Manager
 
Google tag manager-web analytics101
Google tag manager-web analytics101Google tag manager-web analytics101
Google tag manager-web analytics101
 

Similar a Google Tag Manager For Nerds

Data Layer - MeasureCamp VII 2015
Data Layer - MeasureCamp VII 2015Data Layer - MeasureCamp VII 2015
Data Layer - MeasureCamp VII 2015Simo Ahava
 
"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 implementationPhil Pearce
 
Simo's Top 30 GTM tips
Simo's Top 30 GTM tipsSimo's Top 30 GTM tips
Simo's Top 30 GTM tipsSimo Ahava
 
Game Playing RL Agent
Game Playing RL AgentGame Playing RL Agent
Game Playing RL AgentApache 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 2018Amazon 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 MakerAWS 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 17Thuan 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 MonsterPhil Pearce
 
Javascript & SQL within database management system
Javascript & SQL within database management systemJavascript & SQL within database management system
Javascript & SQL within database management systemClusterpoint
 
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
 
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 ProcessingSpark 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 EngineRiver of Talent
 

Similar a Google Tag Manager For Nerds (20)

Data Layer - MeasureCamp VII 2015
Data Layer - MeasureCamp VII 2015Data Layer - MeasureCamp VII 2015
Data Layer - MeasureCamp VII 2015
 
"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
 
Simo's Top 30 GTM tips
Simo's Top 30 GTM tipsSimo's Top 30 GTM tips
Simo's Top 30 GTM tips
 
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
 

Más de Simo Ahava

Web Browsers and Tracking Protections
Web Browsers and Tracking ProtectionsWeb Browsers and Tracking Protections
Web Browsers and Tracking ProtectionsSimo 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 2020Simo Ahava
 
Browser Tracking Protections - SuperWeek 2020
Browser Tracking Protections - SuperWeek 2020Browser Tracking Protections - SuperWeek 2020
Browser Tracking Protections - SuperWeek 2020Simo 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 CUSTOMIZATIONSimo 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 ManagerSimo Ahava
 
Agile Analytics
Agile AnalyticsAgile Analytics
Agile AnalyticsSimo 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 AnalyticsSimo 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' TricksSimo Ahava
 

Más de 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
 

Último

Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...Escorts Call Girls
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Servicegwenoracqe6
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Call Girls in Nagpur High Profile
 
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.soniya singh
 
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...singhpriety023
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableSeo
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...APNIC
 
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.soniya singh
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Servicesexy call girls service in goa
 
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.soniya singh
 
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...SUHANI PANDEY
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...Diya Sharma
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersDamian Radcliffe
 

Último (20)

Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
 
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
Russian Call Girls in %(+971524965298  )#  Call Girls in DubaiRussian Call Girls in %(+971524965298  )#  Call Girls in Dubai
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
 
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
 
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
 
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting  High Prof...
VIP Model Call Girls Hadapsar ( Pune ) Call ON 9905417584 Starting High Prof...
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
 
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
 
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
 
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
Low Sexy Call Girls In Mohali 9053900678 🥵Have Save And Good Place 🥵
 
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
 
VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
 
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
 
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
 

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