Essential Search Marketing Tweaks For Google Analytics And Google Tag Manager

Simo Ahava
Simo AhavaSenior Data Advocate
Search Marketing Tweaks

For Google Analytics and Google Tag Manager

SMX München - 20 March 2018
@SimoAhava from @ReaktorNow
Search Marketing Tweaks

For Google Analytics and Google Tag Manager

SMX München - 20 March 2018
@SimoAhava from @ReaktorNow
Simo Ahava
Senior Data Advocate, Reaktor
Google Developer Expert, Google Analytics
Blogger, developer, www.simoahava.com
Twitter-er, @SimoAhava
Google+:er, +SimoAhava
@SimoAhava from @ReaktorNow | #SMX | 20 March 2018
Why measure content?
@SimoAhava from @ReaktorNow | #SMX | 20 March 2018
Why measure content?
Bounce Rate and Time On Page are enough, right? Right? Hello?
To celebrate successTo learn from mistakes
To celebrate successTo plan ahead
To celebrate success
The many dimensions of engagement
Visibility
Interaction
Dwell time
Short-term goals
Long-term goals
Qualitative
The many dimensions of engagement
Visibility
Interaction
Dwell time
Short-term goals
Long-term goals
Qualitative
Page visibility Content visibility
The many dimensions of engagement
Visibility
Interaction
Dwell time
Short-term goals
Long-term goals
Qualitative
I love you
Click Scroll Keypress Long press Drag Resize Highlight Copy
The many dimensions of engagement
Visibility
Interaction
Dwell time
Short-term goals
Long-term goals
Qualitative
I love you
SERP bounce Idle time Active time Read time
The many dimensions of engagement
Visibility
Interaction
Dwell time
Short-term goals
Long-term goals
Qualitative
I love you
Mailing list Favorite Print Comment Share
The many dimensions of engagement
Visibility
Interaction
Dwell time
Short-term goals
Long-term goals
Qualitative
I love you
$
Followers More RPU Recruitment Better rankings
The many dimensions of engagement
Visibility
Interaction
Dwell time
Short-term goals
Long-term goals
Qualitative
I love you
$
Buzz Feedback Session rec. Heatmaps Polls
The many dimensions of engagement
Visibility
Interaction
Dwell time
Short-term goals
Long-term goals
Qualitative
I love you
$
The many dimensions of engagement
Visibility
Interaction
Dwell time
Short-term goals
Long-term goals
Qualitative
I love you
$
@SimoAhava from @ReaktorNow | #SMX | 20 March 2018
Why customize?
@SimoAhava from @ReaktorNow | #SMX | 20 March 2018
Why customize?
Google Analytics is GREAT out-of-the-box, right?
Essential Search Marketing Tweaks For Google Analytics And Google Tag Manager
PAGEVIEWS
PAGEVIEWS
BOUNCE AND CONVERSION RATE
PAGEVIEWS
BOUNCE AND CONVERSION RATE
SESSIONS
Google Analytics Session
Google Analytics Session
Group of interactions that takes place on a website
Google Analytics Session
Group of interactions that takes place on a website
That expires after 30 minutes of inactivity…
Google Analytics Session
Group of interactions that takes place on a website
That expires after 30 minutes of inactivity…
Or at the end of the day…
Google Analytics Session
Group of interactions that takes place on a website
That expires after 30 minutes of inactivity…
Or at the end of the day…
Or when acquisition campaign changes…
Google Analytics Session
Group of interactions that takes place on a website
That expires after 30 minutes of inactivity…
Or at the end of the day…
Or when acquisition campaign changes…
Unless the referral is in the Referral Exclusion List…
Google Analytics Session
Group of interactions that takes place on a website
That expires after 30 minutes of inactivity…
Or at the end of the day…
Or when acquisition campaign changes…
Unless the referral is in the Referral Exclusion List…
Or traffic is cross-domain, and cross-domain tracking is implemented…
Google Analytics Session
Group of interactions that takes place on a website
That expires after 30 minutes of inactivity…
Or at the end of the day…
Or when acquisition campaign changes…
Unless the referral is in the Referral Exclusion List…
Or traffic is cross-domain, and cross-domain tracking is implemented…
Unless it’s implemented incorrectly…
Google Analytics Session
Group of interactions that takes place on a website
That expires after 30 minutes of inactivity…
Or at the end of the day…
Or when acquisition campaign changes…
Unless the referral is in the Referral Exclusion List…
Or traffic is cross-domain, and cross-domain tracking is implemented…
Unless it’s implemented incorrectly…
Which is likely since it’s so !#/%(“% difficult…
Google Analytics Session
Group of interactions that takes place on a website
That expires after 30 minutes of inactivity…
Or at the end of the day…
Or when acquisition campaign changes…
Unless the referral is in the Referral Exclusion List…
Or traffic is cross-domain, and cross-domain tracking is implemented…
Unless it’s implemented incorrectly…
Which is likely since it’s so !#/%(“% difficult…
Unless you’re using Google Tag Manager…
Google Analytics Session
Group of interactions that takes place on a website
That expires after 30 minutes of inactivity…
Or at the end of the day…
Or when acquisition campaign changes…
Unless the referral is in the Referral Exclusion List…
Or traffic is cross-domain, and cross-domain tracking is implemented…
Unless it’s implemented incorrectly…
Which is likely since it’s so !#/%(“% difficult…
Unless you’re using Google Tag Manager…
Except if you’ve implemented THAT incorrectly…
Google Analytics Session
Group of interactions that takes place on a website
That expires after 30 minutes of inactivity…
Or at the end of the day…
Or when acquisition campaign changes…
Unless the referral is in the Referral Exclusion List…
Or traffic is cross-domain, and cross-domain tracking is implemented…
Unless it’s implemented incorrectly…
Which is likely since it’s so !#/%(“% difficult…
Unless you’re using Google Tag Manager…
Except if you’ve implemented THAT incorrectly…
There’s also the sessionControl parameter…
Google Analytics Session
Group of interactions that takes place on a website
That expires after 30 minutes of inactivity…
Or at the end of the day…
Or when acquisition campaign changes…
Unless the referral is in the Referral Exclusion List…
Or traffic is cross-domain, and cross-domain tracking is implemented…
Unless it’s implemented incorrectly…
Which is likely since it’s so !#/%(“% difficult…
Unless you’re using Google Tag Manager…
Except if you’ve implemented THAT incorrectly…
There’s also the sessionControl parameter…
Lets not forget mobile and single-page apps!
Google Analytics Session
Group of interactions that takes place on a website
That expires after 30 minutes of inactivity…
Or at the end of the day…
Or when acquisition campaign changes…
Unless the referral is in the Referral Exclusion List…
Or traffic is cross-domain, and cross-domain tracking is implemented…
Unless it’s implemented incorrectly…
Which is likely since it’s so !#/%(“% difficult…
Unless you’re using Google Tag Manager…
Except if you’ve implemented THAT incorrectly…
There’s also the sessionControl parameter…
Lets not forget mobile and single-page apps!
Who knows what else happens server-side?
Google Analytics Session
Group of interactions that takes place on a website
That expires after 30 minutes of inactivity…
Or at the end of the day…
Or when acquisition campaign changes…
Unless the referral is in the Referral Exclusion List…
Or traffic is cross-domain, and cross-domain tracking is implemented…
Unless it’s implemented incorrectly…
Which is likely since it’s so !#/%(“% difficult…
Unless you’re using Google Tag Manager…
Except if you’ve implemented THAT incorrectly…
There’s also the sessionControl parameter…
Lets not forget mobile and single-page apps!
Who knows what else happens server-side?
Cookies, localStorage, persistent data stores!?
@SimoAhava from @ReaktorNow | #2015ac | 8–11
@SimoAhava from @ReaktorNow | #2015ac | 8–11
X
All metrics and dimensions used by
a platform subscribe to the
definitions of said platform!
All metrics and dimensions used by
a platform subscribe to the
definitions of said platform!
sessionized
@SimoAhava from @ReaktorNow | #SMX | 20 March 2018
Google Tag Manager
@SimoAhava from @ReaktorNow | #SMX | 20 March 2018
Google Tag Manager
The best only way to deploy Google Analytics tracking.
Essential Search Marketing Tweaks For Google Analytics And Google Tag Manager
Google Tag Manager
Lets you create and deploy tracking

and measurement scripts with ease.
Google Tag Manager
Lets you create and deploy tracking

and measurement scripts with ease.
Facilitates interaction between various

departments within your organization.
Google Tag Manager
Lets you create and deploy tracking

and measurement scripts with ease.
Facilitates interaction between various

departments within your organization.
Allows you to focus your time on analysis

rather than implementation.
Google Tag Manager
https://analyticsacademy.withgoogle.com/course/5
@SimoAhava from @ReaktorNow | #SMX | 20 March 2018
Tricks and methods
@SimoAhava from @ReaktorNow | #SMX | 20 March 2018
Tricks and methods
…for search marketing via Google Tag Manager…
WHY?
WHY?
Scroll% & Read%
WHY?
SERP Bounce Time
WHY?
Article performance
WHY?
Content Funnel
#1: Track (relevant) link clicks
https://goo.gl/CBmmZt
Complexity
Metric impact
LOW
MEDIUM
HIGH
LOW
MEDIUM
HIGH
Trigger
a:not([href*="mydomain.com"])
Clicks on links that do not redirect to a page on mydomain.com.
a[href$=".pdf"]
Clicks on links that end with ".pdf".
a[href^="mailto:"]
Clicks on links that start with "mailto:".
a[href*="#"]
Clicks on links that jump to page anchors.
10 Useful CSS Selectors: https://goo.gl/JXv7u6
#2: Track (relevant) other clicks
Complexity
Metric impact
LOW
MEDIUM
HIGH
LOW
MEDIUM
HIGH
Trigger
10 Useful CSS Selectors: https://goo.gl/JXv7u6
#3: Track scroll depth
Complexity
Metric impact
LOW
MEDIUM
HIGH
LOW
MEDIUM
HIGH
https://goo.gl/RjiAH1
Trigger
WORKS BEST WHEN:
-- All content is included in the HTML file (no dynamic
content)

-- No single-page transitions

-- Content fills (most of) the page from top-to-bottom
See also https://goo.gl/9XrPtQ for tips on how to customize the trigger!
#4: Track element visibility
Complexity
Metric impact
LOW
MEDIUM
HIGH
LOW
MEDIUM
HIGH
https://goo.gl/NTkTqK
Trigger
Trigger
#5: Track structured data as content attributes
https://goo.gl/NTkTqK
Complexity
Metric impact
LOW
MEDIUM
HIGH
LOW
MEDIUM
HIGH
function() {
var jsonLd = document.querySelector('script[type*="ld+json"]');
return jsonLd ? JSON.parse(jsonLd.innerHTML) : {};
}
Custom JS Variable 1: {{JSON-LD}}
function() {
return {{JSON-LD}}.author.name || undefined;
}
Custom JS Variable 2: {{JSON-LD - author.name}}
function() {
return {{JSON-LD}}.datePublished || undefined;
}
Custom JS Variable 3: {{JSON-LD - datePublished}}
function() {
return {{JSON-LD}}.headline || undefined;
}
Custom JS Variable 4: {{JSON-LD - headline}}
Google Analytics View Settings
Google Tag Manager - Page View Tag
Google Analytics - Site Content - All Pages
#6: Track article attributes as content groups
https://goo.gl/NTkTqK
Complexity
Metric impact
LOW
MEDIUM
HIGH
LOW
MEDIUM
HIGH
Custom JS Variable: {{JS - Blog Images}}
function() {
// Make sure the selector points to your content element
var content = document.querySelector('.entry-content');
var imgs = content.querySelectorAll('img').length - 1;
if (imgs>20) return '21+';
else if (imgs>15) return '16-20';
else if (imgs>10) return '11-15';
else if (imgs>7) return '8-10';
else if (imgs>5) return '6-7';
else if (imgs>3) return '4-5';
else if (imgs>1) return '2-3';
else if (imgs>0) return '1';
else return '0';
}
Custom JS Variable: {{JS - Blog Length}}
function() {
// Make sure the selector matches your content element
var content = document.querySelector('.entry-content');
var wCount = 0;
var cText = content.textContent || content.innerText;
cText = cText.replace(/(^s*)|(s*$)/gi,'');
cText = cText.replace(/[ ]{2,}/gi,' ');
cText = cText.replace(/n /,'n');
wCount = cText.split(' ').length;
if (wCount>3000) return '3k+';
else if (wCount>2500) return '2.5k-3k';
else if (wCount>2000) return '2k-2.5k';
else if (wCount>1500) return '1.5k-2k';
else if (wCount>1100) return '1.1k-1.5k';
else if (wCount>800) return '800-1.1k';
else if (wCount>500) return '500-800';
else if (wCount>200) return '200-500';
else return '<200';
}
Custom JS Variable: {{JS - Blog Title Length}}
function() {
var title = document.title;
var wCount;
title = title.replace(/(^s*)|(s*$)/gi,'');
title = title.replace(/[ ]{2,}/gi,' ');
wCount = title.split(' ').length;
if (wCount>20) return '21+';
else if (wCount>16) return '17-20';
else if (wCount>12) return '13-16';
else if (wCount>10) return '11-12';
else if (wCount>8) return '9-10';
else if (wCount>6) return '7-8';
else if (wCount>4) return '5-6';
else if (wCount>2) return '3-4';
else return '<3';
}
Page View Tag
Google Analytics - Site Content - All Pages
Find your happy place. Rant ahead.
https://support.google.com/analytics/answer/2853423?hl=en
You can create up to five Content
Groupings."
https://support.google.com/analytics/answer/2853423?hl=en
You can create up to five Content
Groupings."
https://support.google.com/analytics/answer/2853423?hl=en
You can create up to five Content
Groupings."
https://support.google.com/analytics/answer/2853423?hl=en
"
W
You can create up to five Content
Groupings.
https://support.google.com/analytics/answer/2853423?hl=en
"
W T
You can create up to five Content
Groupings.
https://support.google.com/analytics/answer/2853423?hl=en
"
W T F
You can create up to five Content
Groupings.
https://developers.google.com/analytics/devguides/collection/analyticsjs/custom-dims-mets
There is a maximum of 20 Custom

Dimensions (200 for Premium…)"
https://developers.google.com/analytics/devguides/collection/analyticsjs/custom-dims-mets
There is a maximum of 20 Custom

Dimensions (200 for Premium…)"
https://developers.google.com/analytics/devguides/collection/analyticsjs/custom-dims-mets
There is a maximum of 20 Custom

Dimensions (200 for Premium…)"
https://developers.google.com/analytics/devguides/collection/analyticsjs/custom-dims-mets
There is a maximum of 20 Custom

Dimensions (200 for Premium…)"
sigh* *
#7: Measure SERP bounce time
Complexity
Metric impact
LOW
MEDIUM
HIGH
LOW
MEDIUM
HIGH
https://goo.gl/Wn16xD
Essential Search Marketing Tweaks For Google Analytics And Google Tag Manager
Total SERP
Bounces
Total SERP
Bounces
Average Dwell Time
Before Bounce
<script>
(function() {
var s = document.location.search;
var h = document.location.hash;
var e = {{Event}};
var n = {{New History Fragment}};
var o = {{Old History Fragment}};
// Only run if the History API is supported
if (window.history) {
// Create a new history state if the user lands from Google's SERP
if (e === 'gtm.js' &&
document.referrer.indexOf('www.google.') > -1 &&
s.indexOf('gclid') === -1 &&
s.indexOf('utm_') === -1 &&
h !== '#gref') {
window.oldFragment = false;
window.history.pushState(null,null,'#gref');
} else if (e === 'gtm.js') {
window.oldFragment = true;
}
// When the user tries to return to the SERP using browser back, fire the
// Google Analytics timing event, and after it's dispatched, manually
// navigate to the previous history entry, i.e. the SERP
if (e === 'gtm.historyChange' &&
n === '' &&
o === 'gref') {
var time = new Date().getTime() - {{DLV - gtm.start}};
if (!window.oldFragment) {
dataLayer.push({
'event' : 'returnToSerp',
'timeToSerp' : time,
'eventCallback' : function() {
window.history.go(-1);
}
});
} else {
window.history.go(-1);
}
}
}
})();
</script>
Custom HTML Tag
Triggers for the Custom HTML Tag
+ All Pages
Data Layer Variables
Trigger for the Event Tag
Custom JS Variable: {{JS - SERP Time In Seconds}}
function() {
return {{DLV - timeToSerp}} < 1800000 ? {{DLV - timeToSerp}} / 1000 : undefined;
}
GA Admin -> Property Settings -> Custom Definitions -> Custom Metrics
Event Tag
GA View Settings -> Calculated Metrics
Custom Report
Essential Search Marketing Tweaks For Google Analytics And Google Tag Manager
Total SERP
Bounces
Total SERP
Bounces
Average Dwell Time
Before Bounce
#8: Measure content interactive time
https://goo.gl/6HciRy
Complexity
Metric impact
LOW
MEDIUM
HIGH
LOW
MEDIUM
HIGH
Average engagement = Time when user is actively interacting with the page (keyboard and mouse)
Average engagement = Time when user is actively interacting with the page (keyboard and mouse)
= 8 x
= 6 x
= 5 x
= 5 x
= 6 x
= 6 x
= 5 x
= 3 x
= 6 x
= 6 x
<script>
(function() {
var startEngage = new Date().getTime();
var timeEngaged = 0;
var idleTime = 0;
var idle = true;
var idleReport = false;
var idleTimer, reportTimer;
/* Set the user as idle, and calculate the time
they were non-idle */
var setIdle = function() {
idleTime = new Date().getTime();
timeEngaged += idleTime - startEngage;
idle = true;
};
/* Reset the 5 second idle timer.
If the user was idle, start the non-idle timer */
var pulse = function(evt) {
if (idle) {
idle = false;
startEngage = new Date().getTime();
idleReport = false;
}
window.clearTimeout(idleTimer);
idleTimer = window.setTimeout(setIdle, 5000);
};
// Utility function for attaching listeners to the window
var addListener = function(evt, cb) {
if (window.addEventListener) {
window.addEventListener(evt, cb);
} else if (window.attachEvent) {
window.attachEvent('on' + evt, cb);
}
};
/* Push an event to dataLayer every 15 seconds
unless the user is idle.
Also, push an event when the user leaves the page */
var report = function(evt) {
if (!idle) {
timeEngaged += new Date().getTime() - startEngage;
}
// Push the payload to dataLayer, and only push valid time values
if (!idleReport && timeEngaged > 0 && timeEngaged < 3600000) {
window.dataLayer.push({
'event' : 'nonIdle',
'nonIdleTimeElapsed' : timeEngaged
});
}
if (idle) {
idleReport = true;
}
// Fix possible beforeunload duplication problem
if (evt && evt.type === 'beforeunload') {
window.removeEventListener('beforeunload', report);
}
timeEngaged = 0;
startEngage = new Date().getTime();
reportTimer = window.setTimeout(report, 15000);
};
addListener('mousedown', pulse);
addListener('keydown', pulse);
addListener('scroll', pulse);
addListener('mousemove', pulse);
addListener('beforeunload', report);
idleTimer = window.setTimeout(setIdle, 5000);
reportTimer = window.setTimeout(report, 15000);
})();
</script>
Custom HTML Tag
Trigger for the Custom HTML Tag
Data Layer Variable
Custom JS Variable: {{JS - Get Engagement Time In Seconds}}
function() {
return {{DLV - nonIdleTimeElapsed}} / 1000;
}
GA: New Custom Metric
Trigger for the Event Tag
Event Tag
GA: New Calculated Metric
GA: New Custom Report
Average engagement = Time when user is actively interacting with the page (keyboard and mouse)
Average engagement = Time when user is actively interacting with the page (keyboard and mouse)
= 8 x
= 6 x
= 5 x
= 5 x
= 6 x
= 6 x
= 5 x
= 3 x
= 6 x
= 6 x
#9: Track content as Ecommerce
https://goo.gl/EiuayM
Complexity
Metric impact
LOW
MEDIUM
HIGH
LOW
MEDIUM
HIGH
#9: Track content as Ecommerce
https://goo.gl/EiuayM
Complexity
Metric impact
LOW
MEDIUM
HIGH
LOW
MEDIUM
HIGH
Impressions: Element Visibility
Product Detail View: Article opened
Add To Cart: Initial scroll
Checkout: Scroll depth 33%, 66%, 100%
}
}
}
Step 1
Step 2
Step 3
Purchase: Scroll depth 100% and 1 minute engagement
Site engagement
Site engagement
Articles opened Articles scrolled Articles scrolled
past 33%
Articles "read"
Article engagement
Total words read
Article engagement
Total words read Avg. length of article
Article engagement
Total words read Avg. length of article Scroll-to-open %
Article engagement
Total words read Avg. length of article Scroll-to-open % Read-to-open %
Article engagement
@SimoAhava from @ReaktorNow | #SMX | 20 March 2018
Data is difficult
@SimoAhava from @ReaktorNow | #SMX | 20 March 2018
Data is difficult
Data quality is earned, not acquired.
simo.ahava@reaktor.com
www.simoahava.com
Twitter: @SimoAhava
Google+: +SimoAhava
1 of 139

Recommended

You can't spell MEASURE without CUSTOMIZATION by
You can't spell MEASURE without CUSTOMIZATIONYou can't spell MEASURE without CUSTOMIZATION
You can't spell MEASURE without CUSTOMIZATIONSimo Ahava
4.4K views80 slides
Meaningful Data - Best Internet Conference 2015 (Lithuania) by
Meaningful Data - Best Internet Conference 2015 (Lithuania)Meaningful Data - Best Internet Conference 2015 (Lithuania)
Meaningful Data - Best Internet Conference 2015 (Lithuania)Simo Ahava
19K views49 slides
Meaningful Data - Reaktor Breakpoint 2015 by
Meaningful Data - Reaktor Breakpoint 2015Meaningful Data - Reaktor Breakpoint 2015
Meaningful Data - Reaktor Breakpoint 2015Simo Ahava
6.2K views75 slides
SuperWeek 2016 - Garbage In Garbage Out: Data Quality in a TMS World by
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
4.1K views74 slides
Agile Analytics by
Agile AnalyticsAgile Analytics
Agile AnalyticsSimo Ahava
2.3K views31 slides
Google Tag Manager - 5 years. What have we learned? by
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
5.6K views54 slides

More Related Content

What's hot

Advanced Form Tracking in Google Tag Manager by
Advanced Form Tracking in Google Tag ManagerAdvanced Form Tracking in Google Tag Manager
Advanced Form Tracking in Google Tag ManagerSimo Ahava
7.1K views43 slides
Ambitious Analytics: Google Analytics Customisation by
Ambitious Analytics: Google Analytics CustomisationAmbitious Analytics: Google Analytics Customisation
Ambitious Analytics: Google Analytics CustomisationiLive Conference
254 views74 slides
Google Tag Manager Crash Course | MnSummit by
Google Tag Manager Crash Course | MnSummitGoogle Tag Manager Crash Course | MnSummit
Google Tag Manager Crash Course | MnSummitMike Arnesen
1.5K views158 slides
Tricks and tweaks for Google Analytics and Google Tag Manager by
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
10.6K views84 slides
Google Analytics and Google Tag Manager for Startups by
Google Analytics and Google Tag Manager for StartupsGoogle Analytics and Google Tag Manager for Startups
Google Analytics and Google Tag Manager for StartupsJoost Hoogstrate
279 views29 slides
Simo's Top 30 GTM tips by
Simo's Top 30 GTM tipsSimo's Top 30 GTM tips
Simo's Top 30 GTM tipsSimo Ahava
6.2K views77 slides

What's hot(20)

Advanced Form Tracking in Google Tag Manager by Simo Ahava
Advanced Form Tracking in Google Tag ManagerAdvanced Form Tracking in Google Tag Manager
Advanced Form Tracking in Google Tag Manager
Simo Ahava7.1K views
Ambitious Analytics: Google Analytics Customisation by iLive Conference
Ambitious Analytics: Google Analytics CustomisationAmbitious Analytics: Google Analytics Customisation
Ambitious Analytics: Google Analytics Customisation
iLive Conference 254 views
Google Tag Manager Crash Course | MnSummit by Mike Arnesen
Google Tag Manager Crash Course | MnSummitGoogle Tag Manager Crash Course | MnSummit
Google Tag Manager Crash Course | MnSummit
Mike Arnesen1.5K views
Tricks and tweaks for Google Analytics and Google Tag Manager by Simo Ahava
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 Ahava10.6K views
Google Analytics and Google Tag Manager for Startups by Joost Hoogstrate
Google Analytics and Google Tag Manager for StartupsGoogle Analytics and Google Tag Manager for Startups
Google Analytics and Google Tag Manager for Startups
Joost Hoogstrate279 views
Simo's Top 30 GTM tips by Simo Ahava
Simo's Top 30 GTM tipsSimo's Top 30 GTM tips
Simo's Top 30 GTM tips
Simo Ahava6.2K views
TechSEO Boost 2021 - SEO Experimentation by Catalyst
TechSEO Boost 2021 - SEO ExperimentationTechSEO Boost 2021 - SEO Experimentation
TechSEO Boost 2021 - SEO Experimentation
Catalyst448 views
Google Tag Manager Can Do What by patrickstox
Google Tag Manager Can Do WhatGoogle Tag Manager Can Do What
Google Tag Manager Can Do What
patrickstox21K views
ReadingSEO - 14th of November - Master Deck by Matt Williamson
ReadingSEO - 14th of November - Master DeckReadingSEO - 14th of November - Master Deck
ReadingSEO - 14th of November - Master Deck
Matt Williamson1.1K views
SEO Tests on Big Sites & Small - What Etsy, Pinterest and Others Can Teach Us by Tom Anthony
SEO Tests on Big Sites & Small - What Etsy, Pinterest and Others Can Teach UsSEO Tests on Big Sites & Small - What Etsy, Pinterest and Others Can Teach Us
SEO Tests on Big Sites & Small - What Etsy, Pinterest and Others Can Teach Us
Tom Anthony6.5K views
BrightonSEO April 2018 Mobile-First & Crawl Budget by Mark Thomas
BrightonSEO April 2018 Mobile-First & Crawl BudgetBrightonSEO April 2018 Mobile-First & Crawl Budget
BrightonSEO April 2018 Mobile-First & Crawl Budget
Mark Thomas4.9K views
Cut the Crap: Next Level Content Audits with Crawlers - Sam Marsden, SEO & Co... by DeepCrawl
Cut the Crap: Next Level Content Audits with Crawlers - Sam Marsden, SEO & Co...Cut the Crap: Next Level Content Audits with Crawlers - Sam Marsden, SEO & Co...
Cut the Crap: Next Level Content Audits with Crawlers - Sam Marsden, SEO & Co...
DeepCrawl4.4K views
Google Analytics Bag O' Tricks by Simo Ahava
Google Analytics Bag O' TricksGoogle Analytics Bag O' Tricks
Google Analytics Bag O' Tricks
Simo Ahava27.1K views
How to build a scalable content production system. by Gareth Simpson
How to build a scalable content production system.How to build a scalable content production system.
How to build a scalable content production system.
Gareth Simpson1.1K views
MeasureFest July 2021 - Session Segmentation with Machine Learning by Richard Lawrence
MeasureFest July 2021 - Session Segmentation with Machine LearningMeasureFest July 2021 - Session Segmentation with Machine Learning
MeasureFest July 2021 - Session Segmentation with Machine Learning
Richard Lawrence1.7K views
The Ultimate Pagination for SEO by Catalyst
The Ultimate Pagination for SEOThe Ultimate Pagination for SEO
The Ultimate Pagination for SEO
Catalyst916 views
UK Top 5,000 Websites; Mobile Site Speed Benchmark - BrightonSEO by Erudite
UK Top 5,000 Websites; Mobile Site Speed Benchmark - BrightonSEOUK Top 5,000 Websites; Mobile Site Speed Benchmark - BrightonSEO
UK Top 5,000 Websites; Mobile Site Speed Benchmark - BrightonSEO
Erudite7.3K views
Competitor Site Audits with Free Tools and Data - Sophie Gibson - BrightonSEO... by Sophie Gibson
Competitor Site Audits with Free Tools and Data - Sophie Gibson - BrightonSEO...Competitor Site Audits with Free Tools and Data - Sophie Gibson - BrightonSEO...
Competitor Site Audits with Free Tools and Data - Sophie Gibson - BrightonSEO...
Sophie Gibson1.3K views
How Google Tag Manager can save your seo ? - Talk for Brighton SEO 2017 by Woptimo
How Google Tag Manager can save your seo ? - Talk for Brighton SEO 2017How Google Tag Manager can save your seo ? - Talk for Brighton SEO 2017
How Google Tag Manager can save your seo ? - Talk for Brighton SEO 2017
Woptimo8.1K views

Similar to Essential Search Marketing Tweaks For Google Analytics And Google Tag Manager

Search Marketer's Toolkit for Google Tag Manager and Google Analytics by
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
10K views105 slides
How to Use Google Analytics to Drive SEO Benefit? by
How to Use Google Analytics to  Drive SEO Benefit?How to Use Google Analytics to  Drive SEO Benefit?
How to Use Google Analytics to Drive SEO Benefit?Tatvic Analytics
1.9K views44 slides
Recruitment Analytics workshop - Endouble Antwerp 6-3-2017 by
Recruitment Analytics workshop  - Endouble Antwerp 6-3-2017Recruitment Analytics workshop  - Endouble Antwerp 6-3-2017
Recruitment Analytics workshop - Endouble Antwerp 6-3-2017Endouble
277 views51 slides
Google Analytics Training Seminar - Vorian Agency by
Google Analytics Training Seminar - Vorian AgencyGoogle Analytics Training Seminar - Vorian Agency
Google Analytics Training Seminar - Vorian AgencyVorian Agency
1.9K views50 slides
Google Analytics for Beginners - Training by
Google Analytics for Beginners - TrainingGoogle Analytics for Beginners - Training
Google Analytics for Beginners - TrainingRuben Vezzoli
4.9K views55 slides
Introduction to Google Analytics by
Introduction to Google AnalyticsIntroduction to Google Analytics
Introduction to Google AnalyticsMary Kay Jerige Lofurno
577 views78 slides

Similar to Essential Search Marketing Tweaks For Google Analytics And Google Tag Manager(20)

Search Marketer's Toolkit for Google Tag Manager and Google Analytics by Simo Ahava
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 Ahava10K views
How to Use Google Analytics to Drive SEO Benefit? by Tatvic Analytics
How to Use Google Analytics to  Drive SEO Benefit?How to Use Google Analytics to  Drive SEO Benefit?
How to Use Google Analytics to Drive SEO Benefit?
Tatvic Analytics1.9K views
Recruitment Analytics workshop - Endouble Antwerp 6-3-2017 by Endouble
Recruitment Analytics workshop  - Endouble Antwerp 6-3-2017Recruitment Analytics workshop  - Endouble Antwerp 6-3-2017
Recruitment Analytics workshop - Endouble Antwerp 6-3-2017
Endouble 277 views
Google Analytics Training Seminar - Vorian Agency by Vorian Agency
Google Analytics Training Seminar - Vorian AgencyGoogle Analytics Training Seminar - Vorian Agency
Google Analytics Training Seminar - Vorian Agency
Vorian Agency1.9K views
Google Analytics for Beginners - Training by Ruben Vezzoli
Google Analytics for Beginners - TrainingGoogle Analytics for Beginners - Training
Google Analytics for Beginners - Training
Ruben Vezzoli4.9K views
Google Analytics Implementation Checklist by PadiCode
Google Analytics Implementation ChecklistGoogle Analytics Implementation Checklist
Google Analytics Implementation Checklist
PadiCode3.3K views
Free Basic SEO Course/Workshop - Anadigme by Joaquin Poggi
Free Basic SEO Course/Workshop - AnadigmeFree Basic SEO Course/Workshop - Anadigme
Free Basic SEO Course/Workshop - Anadigme
Joaquin Poggi202 views
One Point Solution Assignments, Projects, Synopsis by vineetkarhana
One Point Solution  Assignments, Projects, SynopsisOne Point Solution  Assignments, Projects, Synopsis
One Point Solution Assignments, Projects, Synopsis
vineetkarhana28 views
Vorian Agency - Google Analytics Seminar by Matt Lynch
Vorian Agency - Google Analytics SeminarVorian Agency - Google Analytics Seminar
Vorian Agency - Google Analytics Seminar
Matt Lynch1.8K views
Simo Ahava slides by IIHEvents
Simo Ahava slidesSimo Ahava slides
Simo Ahava slides
IIHEvents1.8K views
Tools for startup by Boni Satani
Tools for startupTools for startup
Tools for startup
Boni Satani882 views
Solving SEO Issues In Google's Post Update World: How To Track Unconfirmed Al... by Search Marketing Expo - SMX
Solving SEO Issues In Google's Post Update World: How To Track Unconfirmed Al...Solving SEO Issues In Google's Post Update World: How To Track Unconfirmed Al...
Solving SEO Issues In Google's Post Update World: How To Track Unconfirmed Al...
Simplifiedws - Solving SEO issues in google's post update world 2017 by sandeep paul
Simplifiedws - Solving SEO issues in google's post update world 2017Simplifiedws - Solving SEO issues in google's post update world 2017
Simplifiedws - Solving SEO issues in google's post update world 2017
sandeep paul89 views
SEO 101 - Google Search Console Explained by Steve Weber
SEO 101 - Google Search Console Explained SEO 101 - Google Search Console Explained
SEO 101 - Google Search Console Explained
Steve Weber759 views
Google Analytics & Web Masters Tools - GBG Mumbai by GBG Mumbai
Google Analytics & Web Masters Tools - GBG MumbaiGoogle Analytics & Web Masters Tools - GBG Mumbai
Google Analytics & Web Masters Tools - GBG Mumbai
GBG Mumbai 1.9K views

More from Simo Ahava

Web Browsers and Tracking Protections by
Web Browsers and Tracking ProtectionsWeb Browsers and Tracking Protections
Web Browsers and Tracking ProtectionsSimo Ahava
3.8K views84 slides
Server-side Tagging in Google Tag Manager - MeasureSummit 2020 by
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
3K views64 slides
Browser Tracking Protections - SuperWeek 2020 by
Browser Tracking Protections - SuperWeek 2020Browser Tracking Protections - SuperWeek 2020
Browser Tracking Protections - SuperWeek 2020Simo Ahava
4.5K views94 slides
MeasureCamp IX (London) - 10 JavaScript Concepts for web analysts by
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
5K views78 slides
Data Layer - MeasureCamp VII 2015 by
Data Layer - MeasureCamp VII 2015Data Layer - MeasureCamp VII 2015
Data Layer - MeasureCamp VII 2015Simo Ahava
4.4K views28 slides
Key Insights From Funnels - Enhanced Ecommerce For Google Analytics by
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
8.8K views55 slides

More from Simo Ahava(13)

Web Browsers and Tracking Protections by Simo Ahava
Web Browsers and Tracking ProtectionsWeb Browsers and Tracking Protections
Web Browsers and Tracking Protections
Simo Ahava3.8K views
Server-side Tagging in Google Tag Manager - MeasureSummit 2020 by Simo Ahava
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 Ahava3K views
Browser Tracking Protections - SuperWeek 2020 by Simo Ahava
Browser Tracking Protections - SuperWeek 2020Browser Tracking Protections - SuperWeek 2020
Browser Tracking Protections - SuperWeek 2020
Simo Ahava4.5K views
MeasureCamp IX (London) - 10 JavaScript Concepts for web analysts by Simo Ahava
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 Ahava5K views
Data Layer - MeasureCamp VII 2015 by Simo Ahava
Data Layer - MeasureCamp VII 2015Data Layer - MeasureCamp VII 2015
Data Layer - MeasureCamp VII 2015
Simo Ahava4.4K views
Key Insights From Funnels - Enhanced Ecommerce For Google Analytics by Simo Ahava
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 Ahava8.8K views
Content Engagement with Google Analytics (Emerce Conversion 2015) by Simo Ahava
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 Ahava3.1K views
Enhanced Ecommerce For Content (SMX München 2015) by 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)
Simo Ahava5.5K views
Be Critical: Going Beyond The Defaults With GA And GTM (SMX Munich 2015) by Simo Ahava
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 Ahava2.9K views
Rationalizing Tag Management by Simo Ahava
Rationalizing Tag ManagementRationalizing Tag Management
Rationalizing Tag Management
Simo Ahava5.7K views
Tag Management Solutions - Best Data Ever (Marketing Festival 2014) by 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)
Simo Ahava3.7K views
Google Tag Manager For Nerds by Simo Ahava
Google Tag Manager For NerdsGoogle Tag Manager For Nerds
Google Tag Manager For Nerds
Simo Ahava10.8K views
What's the weather like? MeasureFest 2014 by Simo Ahava
What's the weather like? MeasureFest 2014What's the weather like? MeasureFest 2014
What's the weather like? MeasureFest 2014
Simo Ahava2.2K views

Recently uploaded

WEB 2.O TOOLS: Empowering education.pptx by
WEB 2.O TOOLS: Empowering education.pptxWEB 2.O TOOLS: Empowering education.pptx
WEB 2.O TOOLS: Empowering education.pptxnarmadhamanohar21
16 views16 slides
Is Entireweb better than Google by
Is Entireweb better than GoogleIs Entireweb better than Google
Is Entireweb better than Googlesebastianthomasbejan
12 views1 slide
Building trust in our information ecosystem: who do we trust in an emergency by
Building trust in our information ecosystem: who do we trust in an emergencyBuilding trust in our information ecosystem: who do we trust in an emergency
Building trust in our information ecosystem: who do we trust in an emergencyTina Purnat
98 views18 slides
IETF 118: Starlink Protocol Performance by
IETF 118: Starlink Protocol PerformanceIETF 118: Starlink Protocol Performance
IETF 118: Starlink Protocol PerformanceAPNIC
244 views22 slides
Marketing and Community Building in Web3 by
Marketing and Community Building in Web3Marketing and Community Building in Web3
Marketing and Community Building in Web3Federico Ast
12 views64 slides
UiPath Document Understanding_Day 3.pptx by
UiPath Document Understanding_Day 3.pptxUiPath Document Understanding_Day 3.pptx
UiPath Document Understanding_Day 3.pptxUiPathCommunity
103 views25 slides

Recently uploaded(10)

Building trust in our information ecosystem: who do we trust in an emergency by Tina Purnat
Building trust in our information ecosystem: who do we trust in an emergencyBuilding trust in our information ecosystem: who do we trust in an emergency
Building trust in our information ecosystem: who do we trust in an emergency
Tina Purnat98 views
IETF 118: Starlink Protocol Performance by APNIC
IETF 118: Starlink Protocol PerformanceIETF 118: Starlink Protocol Performance
IETF 118: Starlink Protocol Performance
APNIC244 views
Marketing and Community Building in Web3 by Federico Ast
Marketing and Community Building in Web3Marketing and Community Building in Web3
Marketing and Community Building in Web3
Federico Ast12 views
UiPath Document Understanding_Day 3.pptx by UiPathCommunity
UiPath Document Understanding_Day 3.pptxUiPath Document Understanding_Day 3.pptx
UiPath Document Understanding_Day 3.pptx
UiPathCommunity103 views
How to think like a threat actor for Kubernetes.pptx by LibbySchulze1
How to think like a threat actor for Kubernetes.pptxHow to think like a threat actor for Kubernetes.pptx
How to think like a threat actor for Kubernetes.pptx
LibbySchulze15 views
PORTFOLIO 1 (Bret Michael Pepito).pdf by brejess0410
PORTFOLIO 1 (Bret Michael Pepito).pdfPORTFOLIO 1 (Bret Michael Pepito).pdf
PORTFOLIO 1 (Bret Michael Pepito).pdf
brejess04108 views

Essential Search Marketing Tweaks For Google Analytics And Google Tag Manager

  • 1. Search Marketing Tweaks
 For Google Analytics and Google Tag Manager
 SMX München - 20 March 2018 @SimoAhava from @ReaktorNow
  • 2. Search Marketing Tweaks
 For Google Analytics and Google Tag Manager
 SMX München - 20 March 2018 @SimoAhava from @ReaktorNow
  • 3. Simo Ahava Senior Data Advocate, Reaktor Google Developer Expert, Google Analytics Blogger, developer, www.simoahava.com Twitter-er, @SimoAhava Google+:er, +SimoAhava
  • 4. @SimoAhava from @ReaktorNow | #SMX | 20 March 2018 Why measure content?
  • 5. @SimoAhava from @ReaktorNow | #SMX | 20 March 2018 Why measure content? Bounce Rate and Time On Page are enough, right? Right? Hello?
  • 6. To celebrate successTo learn from mistakes
  • 9. The many dimensions of engagement Visibility Interaction Dwell time Short-term goals Long-term goals Qualitative
  • 10. The many dimensions of engagement Visibility Interaction Dwell time Short-term goals Long-term goals Qualitative Page visibility Content visibility
  • 11. The many dimensions of engagement Visibility Interaction Dwell time Short-term goals Long-term goals Qualitative I love you Click Scroll Keypress Long press Drag Resize Highlight Copy
  • 12. The many dimensions of engagement Visibility Interaction Dwell time Short-term goals Long-term goals Qualitative I love you SERP bounce Idle time Active time Read time
  • 13. The many dimensions of engagement Visibility Interaction Dwell time Short-term goals Long-term goals Qualitative I love you Mailing list Favorite Print Comment Share
  • 14. The many dimensions of engagement Visibility Interaction Dwell time Short-term goals Long-term goals Qualitative I love you $ Followers More RPU Recruitment Better rankings
  • 15. The many dimensions of engagement Visibility Interaction Dwell time Short-term goals Long-term goals Qualitative I love you $ Buzz Feedback Session rec. Heatmaps Polls
  • 16. The many dimensions of engagement Visibility Interaction Dwell time Short-term goals Long-term goals Qualitative I love you $
  • 17. The many dimensions of engagement Visibility Interaction Dwell time Short-term goals Long-term goals Qualitative I love you $
  • 18. @SimoAhava from @ReaktorNow | #SMX | 20 March 2018 Why customize?
  • 19. @SimoAhava from @ReaktorNow | #SMX | 20 March 2018 Why customize? Google Analytics is GREAT out-of-the-box, right?
  • 25. Google Analytics Session Group of interactions that takes place on a website
  • 26. Google Analytics Session Group of interactions that takes place on a website That expires after 30 minutes of inactivity…
  • 27. Google Analytics Session Group of interactions that takes place on a website That expires after 30 minutes of inactivity… Or at the end of the day…
  • 28. Google Analytics Session Group of interactions that takes place on a website That expires after 30 minutes of inactivity… Or at the end of the day… Or when acquisition campaign changes…
  • 29. Google Analytics Session Group of interactions that takes place on a website That expires after 30 minutes of inactivity… Or at the end of the day… Or when acquisition campaign changes… Unless the referral is in the Referral Exclusion List…
  • 30. Google Analytics Session Group of interactions that takes place on a website That expires after 30 minutes of inactivity… Or at the end of the day… Or when acquisition campaign changes… Unless the referral is in the Referral Exclusion List… Or traffic is cross-domain, and cross-domain tracking is implemented…
  • 31. Google Analytics Session Group of interactions that takes place on a website That expires after 30 minutes of inactivity… Or at the end of the day… Or when acquisition campaign changes… Unless the referral is in the Referral Exclusion List… Or traffic is cross-domain, and cross-domain tracking is implemented… Unless it’s implemented incorrectly…
  • 32. Google Analytics Session Group of interactions that takes place on a website That expires after 30 minutes of inactivity… Or at the end of the day… Or when acquisition campaign changes… Unless the referral is in the Referral Exclusion List… Or traffic is cross-domain, and cross-domain tracking is implemented… Unless it’s implemented incorrectly… Which is likely since it’s so !#/%(“% difficult…
  • 33. Google Analytics Session Group of interactions that takes place on a website That expires after 30 minutes of inactivity… Or at the end of the day… Or when acquisition campaign changes… Unless the referral is in the Referral Exclusion List… Or traffic is cross-domain, and cross-domain tracking is implemented… Unless it’s implemented incorrectly… Which is likely since it’s so !#/%(“% difficult… Unless you’re using Google Tag Manager…
  • 34. Google Analytics Session Group of interactions that takes place on a website That expires after 30 minutes of inactivity… Or at the end of the day… Or when acquisition campaign changes… Unless the referral is in the Referral Exclusion List… Or traffic is cross-domain, and cross-domain tracking is implemented… Unless it’s implemented incorrectly… Which is likely since it’s so !#/%(“% difficult… Unless you’re using Google Tag Manager… Except if you’ve implemented THAT incorrectly…
  • 35. Google Analytics Session Group of interactions that takes place on a website That expires after 30 minutes of inactivity… Or at the end of the day… Or when acquisition campaign changes… Unless the referral is in the Referral Exclusion List… Or traffic is cross-domain, and cross-domain tracking is implemented… Unless it’s implemented incorrectly… Which is likely since it’s so !#/%(“% difficult… Unless you’re using Google Tag Manager… Except if you’ve implemented THAT incorrectly… There’s also the sessionControl parameter…
  • 36. Google Analytics Session Group of interactions that takes place on a website That expires after 30 minutes of inactivity… Or at the end of the day… Or when acquisition campaign changes… Unless the referral is in the Referral Exclusion List… Or traffic is cross-domain, and cross-domain tracking is implemented… Unless it’s implemented incorrectly… Which is likely since it’s so !#/%(“% difficult… Unless you’re using Google Tag Manager… Except if you’ve implemented THAT incorrectly… There’s also the sessionControl parameter… Lets not forget mobile and single-page apps!
  • 37. Google Analytics Session Group of interactions that takes place on a website That expires after 30 minutes of inactivity… Or at the end of the day… Or when acquisition campaign changes… Unless the referral is in the Referral Exclusion List… Or traffic is cross-domain, and cross-domain tracking is implemented… Unless it’s implemented incorrectly… Which is likely since it’s so !#/%(“% difficult… Unless you’re using Google Tag Manager… Except if you’ve implemented THAT incorrectly… There’s also the sessionControl parameter… Lets not forget mobile and single-page apps! Who knows what else happens server-side?
  • 38. Google Analytics Session Group of interactions that takes place on a website That expires after 30 minutes of inactivity… Or at the end of the day… Or when acquisition campaign changes… Unless the referral is in the Referral Exclusion List… Or traffic is cross-domain, and cross-domain tracking is implemented… Unless it’s implemented incorrectly… Which is likely since it’s so !#/%(“% difficult… Unless you’re using Google Tag Manager… Except if you’ve implemented THAT incorrectly… There’s also the sessionControl parameter… Lets not forget mobile and single-page apps! Who knows what else happens server-side? Cookies, localStorage, persistent data stores!?
  • 39. @SimoAhava from @ReaktorNow | #2015ac | 8–11
  • 40. @SimoAhava from @ReaktorNow | #2015ac | 8–11 X
  • 41. All metrics and dimensions used by a platform subscribe to the definitions of said platform!
  • 42. All metrics and dimensions used by a platform subscribe to the definitions of said platform! sessionized
  • 43. @SimoAhava from @ReaktorNow | #SMX | 20 March 2018 Google Tag Manager
  • 44. @SimoAhava from @ReaktorNow | #SMX | 20 March 2018 Google Tag Manager The best only way to deploy Google Analytics tracking.
  • 46. Google Tag Manager Lets you create and deploy tracking
 and measurement scripts with ease.
  • 47. Google Tag Manager Lets you create and deploy tracking
 and measurement scripts with ease. Facilitates interaction between various
 departments within your organization.
  • 48. Google Tag Manager Lets you create and deploy tracking
 and measurement scripts with ease. Facilitates interaction between various
 departments within your organization. Allows you to focus your time on analysis
 rather than implementation.
  • 50. @SimoAhava from @ReaktorNow | #SMX | 20 March 2018 Tricks and methods
  • 51. @SimoAhava from @ReaktorNow | #SMX | 20 March 2018 Tricks and methods …for search marketing via Google Tag Manager…
  • 52. WHY?
  • 57. #1: Track (relevant) link clicks https://goo.gl/CBmmZt Complexity Metric impact LOW MEDIUM HIGH LOW MEDIUM HIGH
  • 59. a:not([href*="mydomain.com"]) Clicks on links that do not redirect to a page on mydomain.com. a[href$=".pdf"] Clicks on links that end with ".pdf". a[href^="mailto:"] Clicks on links that start with "mailto:". a[href*="#"] Clicks on links that jump to page anchors. 10 Useful CSS Selectors: https://goo.gl/JXv7u6
  • 60. #2: Track (relevant) other clicks Complexity Metric impact LOW MEDIUM HIGH LOW MEDIUM HIGH
  • 61. Trigger 10 Useful CSS Selectors: https://goo.gl/JXv7u6
  • 62. #3: Track scroll depth Complexity Metric impact LOW MEDIUM HIGH LOW MEDIUM HIGH https://goo.gl/RjiAH1
  • 64. WORKS BEST WHEN: -- All content is included in the HTML file (no dynamic content)
 -- No single-page transitions
 -- Content fills (most of) the page from top-to-bottom See also https://goo.gl/9XrPtQ for tips on how to customize the trigger!
  • 65. #4: Track element visibility Complexity Metric impact LOW MEDIUM HIGH LOW MEDIUM HIGH https://goo.gl/NTkTqK
  • 68. #5: Track structured data as content attributes https://goo.gl/NTkTqK Complexity Metric impact LOW MEDIUM HIGH LOW MEDIUM HIGH
  • 69. function() { var jsonLd = document.querySelector('script[type*="ld+json"]'); return jsonLd ? JSON.parse(jsonLd.innerHTML) : {}; } Custom JS Variable 1: {{JSON-LD}}
  • 70. function() { return {{JSON-LD}}.author.name || undefined; } Custom JS Variable 2: {{JSON-LD - author.name}}
  • 71. function() { return {{JSON-LD}}.datePublished || undefined; } Custom JS Variable 3: {{JSON-LD - datePublished}}
  • 72. function() { return {{JSON-LD}}.headline || undefined; } Custom JS Variable 4: {{JSON-LD - headline}}
  • 74. Google Tag Manager - Page View Tag
  • 75. Google Analytics - Site Content - All Pages
  • 76. #6: Track article attributes as content groups https://goo.gl/NTkTqK Complexity Metric impact LOW MEDIUM HIGH LOW MEDIUM HIGH
  • 77. Custom JS Variable: {{JS - Blog Images}} function() { // Make sure the selector points to your content element var content = document.querySelector('.entry-content'); var imgs = content.querySelectorAll('img').length - 1; if (imgs>20) return '21+'; else if (imgs>15) return '16-20'; else if (imgs>10) return '11-15'; else if (imgs>7) return '8-10'; else if (imgs>5) return '6-7'; else if (imgs>3) return '4-5'; else if (imgs>1) return '2-3'; else if (imgs>0) return '1'; else return '0'; }
  • 78. Custom JS Variable: {{JS - Blog Length}} function() { // Make sure the selector matches your content element var content = document.querySelector('.entry-content'); var wCount = 0; var cText = content.textContent || content.innerText; cText = cText.replace(/(^s*)|(s*$)/gi,''); cText = cText.replace(/[ ]{2,}/gi,' '); cText = cText.replace(/n /,'n'); wCount = cText.split(' ').length; if (wCount>3000) return '3k+'; else if (wCount>2500) return '2.5k-3k'; else if (wCount>2000) return '2k-2.5k'; else if (wCount>1500) return '1.5k-2k'; else if (wCount>1100) return '1.1k-1.5k'; else if (wCount>800) return '800-1.1k'; else if (wCount>500) return '500-800'; else if (wCount>200) return '200-500'; else return '<200'; }
  • 79. Custom JS Variable: {{JS - Blog Title Length}} function() { var title = document.title; var wCount; title = title.replace(/(^s*)|(s*$)/gi,''); title = title.replace(/[ ]{2,}/gi,' '); wCount = title.split(' ').length; if (wCount>20) return '21+'; else if (wCount>16) return '17-20'; else if (wCount>12) return '13-16'; else if (wCount>10) return '11-12'; else if (wCount>8) return '9-10'; else if (wCount>6) return '7-8'; else if (wCount>4) return '5-6'; else if (wCount>2) return '3-4'; else return '<3'; }
  • 81. Google Analytics - Site Content - All Pages
  • 82. Find your happy place. Rant ahead.
  • 92. https://developers.google.com/analytics/devguides/collection/analyticsjs/custom-dims-mets There is a maximum of 20 Custom
 Dimensions (200 for Premium…)" sigh* *
  • 93. #7: Measure SERP bounce time Complexity Metric impact LOW MEDIUM HIGH LOW MEDIUM HIGH https://goo.gl/Wn16xD
  • 96. Total SERP Bounces Average Dwell Time Before Bounce
  • 97. <script> (function() { var s = document.location.search; var h = document.location.hash; var e = {{Event}}; var n = {{New History Fragment}}; var o = {{Old History Fragment}}; // Only run if the History API is supported if (window.history) { // Create a new history state if the user lands from Google's SERP if (e === 'gtm.js' && document.referrer.indexOf('www.google.') > -1 && s.indexOf('gclid') === -1 && s.indexOf('utm_') === -1 && h !== '#gref') { window.oldFragment = false; window.history.pushState(null,null,'#gref'); } else if (e === 'gtm.js') { window.oldFragment = true; } // When the user tries to return to the SERP using browser back, fire the // Google Analytics timing event, and after it's dispatched, manually // navigate to the previous history entry, i.e. the SERP if (e === 'gtm.historyChange' && n === '' && o === 'gref') { var time = new Date().getTime() - {{DLV - gtm.start}}; if (!window.oldFragment) { dataLayer.push({ 'event' : 'returnToSerp', 'timeToSerp' : time, 'eventCallback' : function() { window.history.go(-1); } }); } else { window.history.go(-1); } } } })(); </script> Custom HTML Tag
  • 98. Triggers for the Custom HTML Tag + All Pages
  • 100. Trigger for the Event Tag
  • 101. Custom JS Variable: {{JS - SERP Time In Seconds}} function() { return {{DLV - timeToSerp}} < 1800000 ? {{DLV - timeToSerp}} / 1000 : undefined; }
  • 102. GA Admin -> Property Settings -> Custom Definitions -> Custom Metrics
  • 104. GA View Settings -> Calculated Metrics
  • 108. Total SERP Bounces Average Dwell Time Before Bounce
  • 109. #8: Measure content interactive time https://goo.gl/6HciRy Complexity Metric impact LOW MEDIUM HIGH LOW MEDIUM HIGH
  • 110. Average engagement = Time when user is actively interacting with the page (keyboard and mouse)
  • 111. Average engagement = Time when user is actively interacting with the page (keyboard and mouse) = 8 x = 6 x = 5 x = 5 x = 6 x = 6 x = 5 x = 3 x = 6 x = 6 x
  • 112. <script> (function() { var startEngage = new Date().getTime(); var timeEngaged = 0; var idleTime = 0; var idle = true; var idleReport = false; var idleTimer, reportTimer; /* Set the user as idle, and calculate the time they were non-idle */ var setIdle = function() { idleTime = new Date().getTime(); timeEngaged += idleTime - startEngage; idle = true; }; /* Reset the 5 second idle timer. If the user was idle, start the non-idle timer */ var pulse = function(evt) { if (idle) { idle = false; startEngage = new Date().getTime(); idleReport = false; } window.clearTimeout(idleTimer); idleTimer = window.setTimeout(setIdle, 5000); }; // Utility function for attaching listeners to the window var addListener = function(evt, cb) { if (window.addEventListener) { window.addEventListener(evt, cb); } else if (window.attachEvent) { window.attachEvent('on' + evt, cb); } }; /* Push an event to dataLayer every 15 seconds unless the user is idle. Also, push an event when the user leaves the page */ var report = function(evt) { if (!idle) { timeEngaged += new Date().getTime() - startEngage; } // Push the payload to dataLayer, and only push valid time values if (!idleReport && timeEngaged > 0 && timeEngaged < 3600000) { window.dataLayer.push({ 'event' : 'nonIdle', 'nonIdleTimeElapsed' : timeEngaged }); } if (idle) { idleReport = true; } // Fix possible beforeunload duplication problem if (evt && evt.type === 'beforeunload') { window.removeEventListener('beforeunload', report); } timeEngaged = 0; startEngage = new Date().getTime(); reportTimer = window.setTimeout(report, 15000); }; addListener('mousedown', pulse); addListener('keydown', pulse); addListener('scroll', pulse); addListener('mousemove', pulse); addListener('beforeunload', report); idleTimer = window.setTimeout(setIdle, 5000); reportTimer = window.setTimeout(report, 15000); })(); </script> Custom HTML Tag
  • 113. Trigger for the Custom HTML Tag
  • 115. Custom JS Variable: {{JS - Get Engagement Time In Seconds}} function() { return {{DLV - nonIdleTimeElapsed}} / 1000; }
  • 116. GA: New Custom Metric
  • 117. Trigger for the Event Tag
  • 120. GA: New Custom Report
  • 121. Average engagement = Time when user is actively interacting with the page (keyboard and mouse)
  • 122. Average engagement = Time when user is actively interacting with the page (keyboard and mouse) = 8 x = 6 x = 5 x = 5 x = 6 x = 6 x = 5 x = 3 x = 6 x = 6 x
  • 123. #9: Track content as Ecommerce https://goo.gl/EiuayM Complexity Metric impact LOW MEDIUM HIGH LOW MEDIUM HIGH
  • 124. #9: Track content as Ecommerce https://goo.gl/EiuayM Complexity Metric impact LOW MEDIUM HIGH LOW MEDIUM HIGH
  • 126. Product Detail View: Article opened
  • 127. Add To Cart: Initial scroll
  • 128. Checkout: Scroll depth 33%, 66%, 100% } } } Step 1 Step 2 Step 3
  • 129. Purchase: Scroll depth 100% and 1 minute engagement
  • 131. Site engagement Articles opened Articles scrolled Articles scrolled past 33% Articles "read"
  • 134. Total words read Avg. length of article Article engagement
  • 135. Total words read Avg. length of article Scroll-to-open % Article engagement
  • 136. Total words read Avg. length of article Scroll-to-open % Read-to-open % Article engagement
  • 137. @SimoAhava from @ReaktorNow | #SMX | 20 March 2018 Data is difficult
  • 138. @SimoAhava from @ReaktorNow | #SMX | 20 March 2018 Data is difficult Data quality is earned, not acquired.