The next generation
Implementing semantic analytics
& pushing structured data
Mike Arnesen
Director of Analytics & Optimization
at SwellPath
mike.arnesen@swellpath.com
@mike_arnesen
@mike_arnesen #SMX
@mike_arnesen #SMX
Rich snippets that
don’t need microdata!
@mike_arnesen #SMX
What can we try?
@mike_arnesen #SMX
How about?
1.  Track which pages display rich
snippets in the SERPs
2.  Look at traffic to organic landing pages
3.  Merge and match up the data
@mike_arnesen #SMX
That’s not good enough!
@mike_arnesen #SMX
Exhibit A
@mike_arnesen #SMX
Exhibit B
@mike_arnesen #SMX
There’s got to be
a better way!
@mike_arnesen #SMX
We can re build it
We have the technology
@mike_arnesen #SMX
Google Tag Manager
Engage!
@mike_arnesen #SMX
A Quick Overview
of Tag Management
1. Tags
2. Rules
3. Macros
@mike_arnesen #SMX
Tags
The ones you used to hardcode
Google Analytics Tracking Code	
Event Tracking	
AdWords Conversion Pixels	
Remarketing Tags	
Custom HTML/JavaScript	
@mike_arnesen #SMX
Rules
A rule triggers a tag(s) to fire
Google Analytics Tracking Code	
Event tracking	
AdWords Conversion Pixels	
Remarketing Tags	
Custom HTML/JavaScript	
Fire when URL 	 	= x	
Fire when Event 	= x	
Fire when Class 	= x	
Fire when {{macro}}	= x	
	
@mike_arnesen #SMX
Macros
Variables you can use in tags and rules
Google Analytics Tracking Code	
Event tracking	
AdWords Conversion Pixels	
Remarketing Tags	
Custom HTML/JavaScript	
Fire when URL 	 	= x	
Fire when Event 	= x	
Fire when Class 	= x	
Fire when {{macro}}	= x	
	
{{tracking IDs}}	
{{event values}}	
{{lookup tables}}	
{{dataLayer variables}}	
{{custom JavaScript}}	
@mike_arnesen #SMX
A Basic Example
@mike_arnesen #SMX
But wait…
there’s more.
@mike_arnesen #SMX
Analytics, meet semantics
@mike_arnesen #SMX
moz.com/blog/semantic-analytics
Semantic Analytics
“Applying the principles of
the semantic web to your
analytics & data collection methodology”
@mike_arnesen #SMX
Semantic Analytics
“Applying the principles of
the semantic web to your
analytics & data collection methodology”
Walk-through time!
1. Tags
2. Rules
3. Macros
@mike_arnesen #SMX
Walk-through time!
1. Macros
2. Rules
3. Tags
@mike_arnesen #SMX
Macro
“Semantic Markup Detection”
function () {	
var SemElem =
document.querySelectorAll('[itemtype*="Event"]');	
SemElem = SemElem.length > 0 ? true : false;	
return SemElem;	
}	
Detects semantic markup in source code
@mike_arnesen #SMX
Macro
“Semantic Values”
function () {	
var venue = $('[itemtype*="Event"] [itemprop*="name"]') [0];	
var performer = $('[itemtype*="Event"]
[itemprop*="performer"]') .text();	
	
venue = $(venue).text();	
	
label = performer + " at " + venue + " (Semantic Event)”;	
}	
Dynamically builds labels for analytics
@mike_arnesen #SMX
Rule
“Semantic Markup Exists”
{{event}} equals “gtm.dom”;	
{{semantic markup detection}} equals “true”;	
Triggers if semantic markup exists
@mike_arnesen #SMX
Tag
Attach to “Page View” tag
{{event}} equals “gtm.dom”;	
{{semantic markup detection}} equals “true”;	
Sends semantic data as a custom variable
@mike_arnesen #SMX
Enjoy!
“Page View” or “Semantic Analytics”
{{event}} equals “gtm.dom”;	
{{semantic markup detection}} equals “true”;	
Apply “Semantic Markup” as a secondary dimension
@mike_arnesen #SMX
A more elegant solution
for a more civilized age.
@mike_arnesen #SMX
DATALAYER
@mike_arnesen #SMX
Application
Layer
Data
Layer
Experience
Layer
@mike_arnesen #SMX
Application
Layer
Data
Layer
Experience
Layer
WOW
@mike_arnesen #SMX
JavaScript Object Notation for Linked Data
@mike_arnesen #SMX
JavaScript Object Notation for Linked Data
JavaScript
@mike_arnesen #SMX
JavaScript Object Notation for Linked Data
JavaScript
Structured Data
@mike_arnesen #SMX
JavaScript is a transporter for Structured Data
JavaScript
Structured Data
@mike_arnesen #SMX
JSON-LD via GTM via DataLayer
@mike_arnesen #SMX
JSON-LD via GTM via DataLayer
@mike_arnesen #SMX
JSON-LD via GTM via DataLayer
@mike_arnesen #SMX
JSON-LD via GTM via DataLayer
@mike_arnesen #SMX
Semantic Analytics
from dataLayer
<script> - dataLayer
Populate a dataLayer with application layer (database) info
@mike_arnesen #SMX
Semantic Analytics
from dataLayer
Macro - “dataLayer – {{itemprop}}”
Then create dataLayer Variable Macros in GTM
@mike_arnesen #SMX
Semantic Analytics
from dataLayer
Macro - “Semantic Custom Dimension”
Then create JavaScript Macro to build analytics values
@mike_arnesen #SMX
Semantic Analytics
from dataLayer
Macro - “Semantic Custom Dimension”
Then create JavaScript Macro to build analytics values
@mike_arnesen #SMX
Semantic Analytics
from dataLayer
Tag – Add to “Page View”
Use the Macro to set your semantic Custom Dimension
@mike_arnesen #SMX
Here’s where it gets really cool
@mike_arnesen #SMX
JSON-LD from DataLayer via GTM
JSON-LD
Custom Tag
Google
Indexable
Structured Data
dataLayer
Variable Macros
dataLayer
values
@mike_arnesen #SMX
JSON-LD from DataLayer via GTM
Create a Custom HTML tag, using Macros as variables
@mike_arnesen #SMX
JSON-LD from DataLayer via GTM
Fire the tag on all pages with semantic data
@mike_arnesen #SMX
JSON-LD from DataLayer via GTM
It’s always a good idea to validate!
developers.google.com/structured-data/testing-tool/
@mike_arnesen #SMX
Rich Snippets in Search
Without having to markup content!!!
@mike_arnesen #SMX
@mike_arnesen #SMX
Epilogue
Don’t just implement structured data.
Track its performance.
@mike_arnesen #SMX
Epilogue
Leverage semantic data
to enhance your analytics.
@mike_arnesen #SMX
Epilogue
Let semantic analytics
inform your marketing strategy.
@mike_arnesen #SMX
Epilogue
Simplify your rollout using JSON-LD
powered by a rich dataLayer.
@mike_arnesen #SMX
Download
bit.ly/semantic-west
@mike_arnesen #SMX
Link Bundle
bit.ly/next-gen-data
@mike_arnesen #SMX
Link Bundle
bit.ly/next-gen-data
@mike_arnesen #SMX
Implementing semantic analytics
& pushing structured data
Thank you!
Mike Arnesen
Director of Analytics & Optimization
at SwellPath
google.com/search?mike+arnesen
Download: bit.ly/semantic-west

Next Generation Structured Data