Download - Next Generation Structured Data
Implementing semantic analytics & pushing structured data
Mike Arnesen Director of Analytics & Optimization
at SwellPath [email protected]
@mike_arnesen
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
Tags The ones you used to hardcode
Google Analytics Tracking CodeEvent TrackingAdWords Conversion PixelsRemarketing TagsCustom HTML/JavaScript
@mike_arnesen #SMX
Rules A rule triggers a tag(s) to fire
Google Analytics Tracking CodeEvent trackingAdWords Conversion PixelsRemarketing TagsCustom HTML/JavaScript
Fire when URL = xFire when Event = xFire when Class = xFire when {{macro}}= x
@mike_arnesen #SMX
Macros Variables you can use in tags and rules
Google Analytics Tracking CodeEvent trackingAdWords Conversion PixelsRemarketing TagsCustom HTML/JavaScript
Fire when URL = xFire when Event = xFire when Class = xFire when {{macro}}= x
{{tracking IDs}}{{event values}}{{lookup tables}}{{dataLayer variables}}{{custom JavaScript}}
@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”
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
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
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
It’s always a good idea to validate! developers.google.com/structured-data/testing-tool/
@mike_arnesen #SMX