SlideShare a Scribd company logo
1 of 82
Slides: bit.ly/datalayer2
SEO dataLayer2:
Entity Wars
Welcome Back
Phil Pearce
Analytics Freedom Fighter
www.linkedin.com/in/philpearce
Web Analytics
Exchange
mentor
750 GA
questions answered
Tracking
protection
group
Agenda
1. A possible Dark Future
2. Battlefield report: Before vs After
3. Arming-up
1. Enabling markup (Cheat sheets & templates)
2. Shooting range (UI for enabling)
3. Testing it worked
4. JSONLD Listeners
5. A new future
Everyone thought Google was the Bad guy…
…they were wrong!
2020: Facebook Network introduce a
new search engine called Mercury, it
used Machine Learning & Facebook`s
database to return the perfect
answer to any question.
Google became an obsolete business model
It did`nt have access to the rich structured user & content data stored
in Facebooks proprietary database.
Google was missing a semantic understanding layer.
Realising its mistake, Google sent
a machine readable data
alternative back in time
Thus began the entity wars…
I`m here to Arm you
with the tools you
will need to enable
machine readable
dataLayer
The name of this
mark-up is called…
JSON-LD Corners
What is JSON-LD video
https://www.youtube.com/watch?v=vioCbTo3C-4
And https://www.youtube.com/watch?v=XXw8g-FbemI#t=251
Does Anyone know what the
LD stands for in JSON-LD?
Audience Question….
LD = Likes Die!
Benefits of JSON-LD
1. Increases organic CTR (Google & Bing)
2. Allows for Action buttons when signed-in
3. Allows you to leverage offsite markup (via LD)
4. Extra organic impressions in card carousal
5. Requirement for AMP pages (e.g News markup)
6. Allows for contentGroups & remarketing
7. Also works in webmail aswell
JSON-LD adoption rate - increasing
http://trends.builtwith.com/docinfo/JSON-LD
Facebook like button adoption - flat growth
bit.ly/entity-day
Timeline to Entity Day… Ramping up!
Arming your SEO
team…
“Schema Markup Generator”
Future Action:
Use
playground
technicalseo.com/seo-tools/schema-markup-generator/
“JSON-LD playground”
Future Action:
Use
playground
json-ld.org/playground/
http://peadig.com/wordpress-plugins/structured-social-profiles/
https://wordpress.org/plugins/structured-social-profiles/
Wordpress plugin for JSON-LD
1. Inline MicroData converted to JSONLD for Courses
bit.ly/rdfa-to-jsonld
2. JS variables converted to JSONLD for Restaurants
bit.ly/js-to-jsonld
Heavy lifting in JS using GTM…
GTM JSON-LD example source code…
JSON script are
downloadable
from here:
login:coolgtmstuff
@gmail.com
pw:philrulesgtm8
Auto config import file:
bit.ly/winningthewar6
Winning the war examples…
bit.ly/winningthewar35
2. Microdata >> JSON-LD convertor
bit.ly/winningthewar5
https://www.schemaapp.com/schema-markup-automation/
https://www.schemaapp.com/?wvideo=jz49i69b7p
Of if you are really F**king lazy & don’t want to do
any work… (automatic method)
Pro Tip… there is a bug in GTM on
when using special characters
Don’t use…
Use this instead…
Pro Tip… there is a bug in GTM on
when using special characters
Use this instead…
Testing JSON mark-up worked
Structure Data Validator (Whole site in GWT)
Structure Data Validator (one page at a time)
https://search.google.com/structured-data/testing-tool
Monitoring changes in Google SERPs…
You can already calculate existing Organic CTR
using GA sessions / GWT impressions
Rich Cards monitoring
SEOmoz now report on this for your site vs competitors
Incoming transmission
Facebook like buttons auto-enabled listening for
JSON-LD!!
How to disable Facebook autoConfig listner…
fbq("set", "autoConfig", false, "99999999999" );
Whitelist of Entities Types
Organization – Logo, Social and Telephone number
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Organization",
"url": "http://yourdomain.com/",
"logo": "http://yourdomain.com/images/logo.png",
"sameAs": [
"http://www.facebook.com/yourProfile",
"http://www.twitter.com/yourProfile",
"http://plus.google.com/yourProfile",
"http://www.linkedin.com/in/yourProfile",
"http://instagram.com/yourProfile"
],
"contactPoint": [{
"@type": "ContactPoint",
"telephone": "+1-401-555-1212",
"contactType": "customer service",
"contactOption": "TollFree",
"areaServed": [
"US",
"CA"
],
"availableLanguage": [
"English",
"French"
]
}]
}
</script>
Future Action:
Click
Homepage only
Person
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Person",
"name": "Barack Obama",
"jobTitle": "President",
"affiliation": "Democratic Party",
"additionalName": "Barack",
"url": "http://www.barackobama.com/",
"sameAs": [
"http://www.facebook.com/yourProfile",
"http://www.twitter.com/yourProfile",
"http://plus.google.com/yourProfile",
"http://www.linkedin.com/in/yourProfile",
"http://instagram.com/yourProfile"
],
"address": {
"@type": "PostalAddress",
"streetAddress": "White house, 1600 Pennsylvania Ave",
"addressLocality": "Northwest",
"addressRegion": "Washington"
}
}
</script>
Future Action:
Follow
updates
Homepage only
WebSite – Search box
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebSite",
"url": "http://yourdomain.com/",
"potentialAction": {
"@type": "SearchAction",
"target": "http://yourdomain.com/?s={search_term_string}",
"query-input": "required name=search_term_string"
}
}
</script>
Future Action:
Search
Global
Breadcrumbs
<!-- developers.google.com/structured-data/breadcrumbs -->
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"item": {
"@id": "http://{{Page Hostname}}/{{jsmacro_pathnameLevel1 - no prepending slash}}",
"name": "{{jsmacro_pathnameLevel1 - no prepending slash}}"
}
},{
"@type": "ListItem",
"position": 2,
"item": {
"@id": "http://{{Page Hostname}}{{Page Path}}",
"name": "{{js_document.title}}"
}
}]
}
</script>
Page specific
NewsArticle
<!--http://developers.google.com/search/docs/data-types/articles -->
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "NewsArticle",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "http://{{Page Hostname}}/article1"
},
"headline": "Article headline",
"description": "A most wonderful article",
"image": {
"@type": "ImageObject",
"url": "http://{{Page Hostname}}/thumbnail_1.jpg",
"height": 800,
"width": 800
},
"datePublished": "2016-01-01T00:00:00+08:00",
"dateModified": "2016-01-01T13:00:00+08:00",
"author": {
"@type": "Person",
"name": "John Doe",
"sameAs": "https://plus.google.com/106113236172152128711"
},
"publisher": {
"@type": "Organization",
"name": "Google",
"logo": {
"@type": "ImageObject",
"url": "https://www.newscorp.com/logo.jpg",
"width": 600,
Page specific
Products
<!-- https://developers.google.com/search/docs/data-types/products -->
<script type="application/ld+json">
{
"@context": "http://schema.org/",
"@type": "Product",
"name": "Executive Anvil",
"image": "http://www.example.com/anvil_executive.jpg",
"description": "Sleeker than ACME's Classic Anvil, the Executive Anvil
is perfect for the business traveler looking for something to drop from a
height.",
"mpn": "925872",
"brand": {
"@type": "Thing",
"name": "ACME"
},
"offers": {
"@type": "Offer",
"priceCurrency": "USD",
"price": "119.99",
"priceValidUntil": "2099-01-01",
"itemCondition": "UsedCondition", // schema.org/UsedCondition
"availability": "InStock", // schema.org/InStock
"seller": {
"@type": "Organization",
"name": "Executive Objects"
}
}
}
</script>
Page specific
Products Reviews
<!-- https://developers.google.com/search/docs/data-types/reviews -->
<script type="application/ld+json">
{
"@context": "http://schema.org/",
"@type": "Product",
"name": "Executive Anvil",
//...//
"aggregateRating": {
"@type": "AggregateRating",
"worstRating": 1,
"bestRating": 5,
"ratingValue": 4.4,
"reviewCount": 1
},
"review": {
"@type": "Review",
"reviewRating": {
"@type": "Rating",
"worstRating": 1,
"bestRating": 5,
"ratingValue": 4.4
},
"name": "A masterpiece of an Executive Anvil",
"datePublished": "2016-01-01",
"reviewBody": "I really like this product. It captures the essential
challenge business traveler looking for something to drop from a height`s",
"author": {
"@type": "Person",
"name": "John Doe",
"sameAs":
"https://plus.google.com/106113236172152128711"
Page specific
Review by Expert Author (GoogleNet whitelist)
<!-- https://developers.google.com/structured-data/critic-reviews -->
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Review",
"author": {
"@type": "Person",
"name": "Lisa Kennedy",
"sameAs": "https://plus.google.com/114108465800532712602"
},
"datePublished": "2014-03-13T20:00",
"description": "Nerve-racking, sentimental and thrilling.",
"itemReviewed": {
"@type": "Movie",
"name": "Gravity",
"sameAs": "http://www.imdb.com/title/tt1454468/",
"datePublished": "2013-10-04T00:00",
"director": {
"@type": "Person",
"name": "Alfonso Cuarón",
"sameAs": "http://en.wikipedia.org/wiki/Alfonso_Cuar%C3%B3n"
},
"actor": [{
"@type": "Person",
"name": "Sandra Bullock",
"sameAs": "http://en.wikipedia.org/wiki/Sandra_Bullock"
},{
"@type": "Person",
"name": "George Clooney",
"sameAs": "http://en.wikipedia.org/wiki/George_Clooney"
}
Page specific
LocalBusiness - Restaurant
<!-- https://developers.google.com/search/docs/data-types/local-businesses -->
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Restaurant",
"name": "Dave's Steak House",
"image": "http://www.example.com/image.jpg",
"url": "http://www.example.com/restaurant-locations/manhattan",
"menu": "http://www.example.com/menu",
"acceptsReservations": "True",
"telephone": "+12122459600",
"address": {
"@type": "PostalAddress",
"streetAddress": "148 W 51st St",
"addressLocality": "New York",
"addressRegion": "NY",
"postalCode": "10019",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": "40.761293",
"longitude": "-73.982294"
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday"
],
Page specific
LocalBusiness - HealthClub - ReserveAction
<!--
https://developers.google.com/search/docs/data-types/local-businesses
-->
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "HealthClub",
"name": "Dave's House of Yoga",
"image": "http://daveshouseofyoga.example.com/yoga.jpg",
"url": "http://daveshouseofyoga.example.com/",
"telephone": "+14085551135",
"potentialAction": {
"@type": "ReserveAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://www.example.com/reserve?merchantId=20373",
"inLanguage": "en-US",
"actionPlatform": [
"http://schema.org/DesktopWebPlatform"
//, "http://schema.org/IOSPlatform"
//, "http://schema.org/AndroidPlatform"
]
},
"result": {
"@type": "Reservation",
"name": "Book a class"
}
},
"address": {
"@type": "PostalAddress",
"streetAddress": "3986 Rivermark Pkwy",
Page specific
MusicEvent - location
<!– https://developers.google.com/search/docs/guides/mark-up-listings#mark_up_event_listings -->
<script type="application/ld+json">{
"@context": "http://schema.org",
"@type": "MusicEvent",
"name": "The Wurzels",
"image": "https://cdn2.gigantic.com/static/images/campaign/240x240/the-wurzels5545.jpg",
"url": "https://www.gigantic.com/the-wurzels-electric-palace-2016-09-17-19-30",
"startDate": "2016-09-17T19:30:00+01:00",
"doorTime": "19:30",
"typicalAgeRange": "Under 14's must be accompanied by an adult.",
"location": {
"@type": "Place",
"name": "Electric Palace",
"address": {
"@type": "PostalAddress",
"streetAddress": "35 South Street",
"addressLocality": "Bridport",
"postalCode": "DT63NY",
"addressCountry": "GB"
}
},
"offers": [{
"@type": "Offer",
"name": "Standing",
"category": "primary",
"price": "15.95",
"priceCurrency": "GBP",
"url": "https://www.gigantic.com/the-wurzels-electric-palace-2016-09-17-19-30",
"availability": "InStock"
}],
"performer": [{
Future Action:
Buy
The Wurzels
Sat, 17th Sept
gigantic.com
thewurzels.com
Electric Palace
35 South Street,
Bridport, DT63NY
Other supported event types include…
1. MusicEvent
2. TheaterEvent
3. SportsEvent
4. ComedyEvent
5. Festival
6. FoodEvent
Page specific
TheaterEvent - location
<!-- https://developers.google.com/search/docs/data-types/events#venue-markup -->
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "TheaterEvent",
"name": "Julius Caesar at Shakespeare's Globe",
"location": {
"@type": "PerformingArtsTheater",
"name": "Shakespeare's Globe",
"sameAs": "http://www.shakespearesglobe.com/",
"address": "London, UK"
},
"offers": [{
"@type": "Offer",
"name": "Standing (Yard)",
"url": "https://tickets.shakespearesglobe.com/performances.asp?PerIndex=287339",
"category": "primary",
"priceCurrency": "GBP",
"price": "7.50",
"availability": "http://schema.org/InStock"
},{
"@type": "AggregateOffer",
"name": "Lower Gallery",
"url": "https://tickets.shakespearesglobe.com/performances.asp?PerIndex=287339",
"category": "primary",
"priceCurrency": "GBP",
"lowPrice": "17.50",
"highPrice": "44.50",
"availability": "http://schema.org/LimitedAvailability"
}
],
Future Action:
Buy
Page specific
MusicGroup - ListenAction
<!-- https://developers.google.com/structured-data/actions/play-music -->
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "MusicGroup",
"url": [
"http://www.iheart.com/artist/Katy-Perry-35141/"
// Google validator does not like android-app URL - even though its in their example!
//, "android-app://com.clearchannel.iheartradio.controller/ihr/listen/custom_radio/artist/35141"
],
"name": "Katy Perry",
"sameAs": "http://www.katyperry.com",
"logo": "http://{{Page Hostname}}/images/logo.png", // PP missing in Google help pages
"description": "Katy Perry is a pop music artist.",
"potentialAction": {
"@type": "ListenAction",
"target": [
"http://www.iheart.com/artist/Katy-Perry-35141/?autoplay=true&ext=1&playedFrom=197"
// Google validator does not like android-app URL - even though its in their example!
//, "android-
app://com.clearchannel.iheartradio.controller/ihr/listen/custom_radio/artist/35141?ext=1&played_from=197"
],
// Offer added as validator said this was a recommended field
"expectsAcceptanceOf": {
"@type": "Offer",
"eligibleRegion": {
"@type": "Country",
"name": "US"
}
}
}
Page specific
TVEpisode - Play/WatchAction
<!-- https://developers.google.com/structured-data/actions/watch-movies -->
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@id": "2356865",
"@type": "TVEpisode",
"name": "The Occupation Recalibration",
"episodeNumber": 13,
"partOfSeason": {
"@type": "TVSeason",
"seasonNumber": 7
},
"partOfSeries": {
"@type": "TVSeries",
"name": "The Big Bang Theory",
"sameAs": "http://www.imdb.com/title/tt0898266/",
"url": "http://www.cbs.com/shows/big_bang_theory/",
"description": "The Big Bang Theory is an American sitcom."
},
"releasedEvent": {
"@type": "PublicationEvent",
"startDate": "2015-01-09",
"location": {
"@type": "Country",
"name": "US"
}
},
"potentialAction": [{
"@type": "WatchAction",
"target": {
Page specific
NewsArticle
(AMP requirement)
<script type="application/ld+json">
/* http://developers.google.com/search/docs/data-types/articles */
{
"@context": "http://schema.org",
"@type": "BlogPosting",
"mainEntityOfPage": "https://www.bookinglive.com/blog/online-booking-systems-for-the-public-sector/",
"publisher": {
"@type": "Organization",
"name": "BookingLive Blog",
"logo": {
"@type": "ImageObject",
"url": "https://www.bookinglive.com/blog/wp-
content/themes/bookingliveblog/themes/bookinglive/images/logo.png",
"height": 60,
"width": 600
}
},
"headline": "Online Booking Systems For The Public Sector",
"datePublished": "2016-08-08T14:59:58+00:00",
"dateModified": "",
"author": {
"@type": "Person",
"name": "Booking Live"
},
"description": "",
"image": {
"@type": "ImageObject",
"url": "https://www.bookinglive.com/blog/wp-content/themes/bookingliveblog/themes/bookinglive/images/logo.png",
"height": 800,
"width": 800
}
}
</script>
Page specific
“Kill” action
<script type="application/ld+json">
{
"@context": "http://schema.org",
"potentialAction":
[{
"@type": "MuteAction",
"target": "https://en.wikipedia.org/wiki/Jar_Jar_Binks",
"method": "Slap in face"
},{
"@type": "KillAction",
"target ": "https://en.wikipedia.org/wiki/Jar_Jar_Binks",
"method": "Terminate"
}]
}
</script>
Future Action:
Kill
Future Action:
Slap in face
Page specific
JSON ld cheatsheet
bit.ly/winningthewar4
Its not just about Websites…
Action buttons
also supported in Emails
<script type="application/ld+json">
/*
One Click Action: Confirm Action
https://developers.google.com/gmail/markup/reference/one-click-action#confirm_action
*/
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"description": "Approval request for John's $10.13 expense for office supplies",
"potentialAction": {
"@type": "ConfirmAction",
"name": "Approve Expense",
"handler": {
"@type": "HttpActionHandler",
"url": "https://myexpenses.com/approve?expenseId=abc123"
}
}
}
</script>
Here is a live
example from
GitHub emails...
http://semanticweb.com/github-adds-schema-org-actions-email-notifications-via-json-ld_b44450
You have mail
Future Action:
Pull Request
Summary
Enable JSON-LD via GTM or CMS plugins
Good for... Global JSON-LD
1. Brand Logo
2. Phone Number
3. Social Profiles
4. Site Search
5. OpeningHours
6. Address
Good for... Page Specific JSON-LD
1. News data
2. Product data
3. Review data
4. Breadcrumbs
5. Music & TV Product data
6. Local restaurants
Ping GoogleBot after making changes
1. Ensure pages validate:
2. Ping GoogleBot to re-crawl by visiting this URL:
Or use “Fetch, render and index” on homepage & individual pages in GWT.
3. Or Click submit sitemap.xml in GWT
Waiting for GoogleBot to index
(or check in SEOmoz)
Future actions…
1. Google JSON-LD Validator- try
2. GTM auto config for JSONLD
or WP CMS plugins - install
3. Ping GoogleBot via sitemap.xml - submit
Don’t let… Facebook win in 2020
Support Google`s JSON-LD… now!
Join the Resistance on GooglePlus
bit.ly/join-the-resistance
Appendix
Free “USB stick" for Best Question!
Questions….
bit.ly/wawquestions
FREE seo audit template
bit.ly/techseoaudit
Free resource...
For everyone else...
bit.ly/gtmdevguide2
€ FREE
www.amazon.de/Google-Tag-Manager-Developer-Guide-ebook/dp/B00KEC2IOK
Future Action:
Download
More links
• https://moz.com/blog/using-google-tag-
manager-to-dynamically-generate-schema-
org-json-ld-tags
• https://moz.com/blog/structured-data-for-
seo-2
• https://moz.com/blog/using-google-tag-
manager-to-dynamically-generate-schema-
org-json-ld-tags
JSON-LD Links
Testing Tools
• JSON-LD playground & validation tools:
www.json-ld.org
• Official Google markup-Tester for JSON-LD
www.google.com/webmasters/markup-tester/corporatecontacts (phone
numbers)
www.google.com/webmasters/markup-tester/events (music events)
www.google.com/webmasters/markup-tester/ (email)
JSON-LD blog posts
• www.seoskeptic.com/json-ld-google-knowledge-graph-schema-org-seo/
• moduscreate.com/google-announces-json-ld-compliance-at-google-io/
• semanticweb.com/category/technologies-2/json-ld
• https://schema.org/docs/actions.html (new)
Video on JSON LD
Very good intro video to JSON-LinkedData
• http://www.youtube.com/watch?v=vioCbTo3C-4
• http://www.youtube.com/watch?v=XXw8g-FbemI
History behind JSON-LinkedData
• http://manu.sporny.org/2014/json-ld-origins-2/
Links
http://www.simoahava.com/analytics/enrich-serp-results-using-gtm/
http://rdf.greggkellogg.net/distiller
https://developers.google.com/structured-data/testing-tool/
http://search4phil.com/_testing_script/____json_ld/json-ld-test.html
http://www.greenlaneseo.com/blog/2015/01/introducing-the-meta-and-rich-snippet-tester/
https://docs.google.com/spreadsheets/d/1sreYyRZ31HJdM1-
WX5wztTIbY28aZjCVmGIWN8WKCEM/edit#gid=674078569
https://developers.google.com/schemas/release-notes
http://www.w3.org/wiki/WebSchemas/ActivityActions
// Script to patch a broken inline JSON-LD values
https://plus.google.com/100057001384327175073/posts/SJjfczNMPhc
Free robot tracking via noscipt
+ session recording (like clicktale)
Yandex metric [config file]
bit.ly/yandexmetricagtm
or bit.ly/yandexmetricagtmV1
1. Create Yandex Account
2. Then go to yanex metrica and create a “counter” account
3. Replace 99999 accountID with your accountID in the
variable
Note: Yandex Metrica uses pageviews for crawl discovery
I recommend in the <head> with other <meta tags>
but can be placed anywhere.
Position of JSON LD on a page…
JSON-LD data
Note: If deployed via GTM - I recommend deploying on DOM ready.
Planning JSON implantation
Global vs Page specific
Global
1. Brand Logo
2. Phone Number
3. Social Profiles
4. Site Search
5. OpeningHours
6. Address
Page Specific
1. News data
2. Product data
3. Review data
4. Breadcrumbs
5. Music & TV Product data
6. Local restaurants
vs
Implementation
Method summary
GTM Wordpress
CMS agnostic Yes No
Supports server-side No
(dataLayer exception)
Yes
InTool JS validation Native n/a
Speed Asynchronous JS Server-side cache
Uneffected by CSS or
DOM ID changes
No, will break
(dataLayer exception)
Yes

More Related Content

What's hot

What's hot (20)

29 Advanced Google Tag Manager Tips Every Marketer Should Know
29 Advanced Google Tag Manager Tips Every Marketer Should Know29 Advanced Google Tag Manager Tips Every Marketer Should Know
29 Advanced Google Tag Manager Tips Every Marketer Should Know
 
Plan a Digital Analytics Training Strategy for an Analytics Agency
Plan a Digital Analytics Training Strategy for an Analytics AgencyPlan a Digital Analytics Training Strategy for an Analytics Agency
Plan a Digital Analytics Training Strategy for an Analytics Agency
 
Analytics Tools to improve Customer Insight
Analytics Tools to improve Customer InsightAnalytics Tools to improve Customer Insight
Analytics Tools to improve Customer Insight
 
Track Everything with Google Tag Manager - #DFWSEM May 2017
Track Everything with Google Tag Manager -  #DFWSEM May 2017Track Everything with Google Tag Manager -  #DFWSEM May 2017
Track Everything with Google Tag Manager - #DFWSEM May 2017
 
Google Data Studio - First impressions @ Measurecamp
Google Data Studio - First impressions @ MeasurecampGoogle Data Studio - First impressions @ Measurecamp
Google Data Studio - First impressions @ Measurecamp
 
CRO analytics - How to Continually Optimise
CRO analytics - How to Continually OptimiseCRO analytics - How to Continually Optimise
CRO analytics - How to Continually Optimise
 
Phils Session cards @ Measurecamp
Phils Session cards @ MeasurecampPhils Session cards @ Measurecamp
Phils Session cards @ Measurecamp
 
"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
 
Introduction To Developing Custom Actions Within SharePoint
Introduction To Developing Custom Actions Within SharePointIntroduction To Developing Custom Actions Within SharePoint
Introduction To Developing Custom Actions Within SharePoint
 
The Big Picture and How to Get Started
The Big Picture and How to Get StartedThe Big Picture and How to Get Started
The Big Picture and How to Get Started
 
The Need for Speed (5 Performance Optimization Tipps) - brightonSEO 2014
The Need for Speed (5 Performance Optimization Tipps) - brightonSEO 2014The Need for Speed (5 Performance Optimization Tipps) - brightonSEO 2014
The Need for Speed (5 Performance Optimization Tipps) - brightonSEO 2014
 
Implementing schema.org in the JSON-LD format with Google Tag Manager
Implementing schema.org in the JSON-LD format with Google Tag ManagerImplementing schema.org in the JSON-LD format with Google Tag Manager
Implementing schema.org in the JSON-LD format with Google Tag Manager
 
GTUG Philippines - Implementing Google Analytics - 2011-10-11
GTUG Philippines - Implementing Google Analytics - 2011-10-11GTUG Philippines - Implementing Google Analytics - 2011-10-11
GTUG Philippines - Implementing Google Analytics - 2011-10-11
 
Advanced data-driven technical SEO - SMX London 2019
Advanced data-driven technical SEO - SMX London 2019Advanced data-driven technical SEO - SMX London 2019
Advanced data-driven technical SEO - SMX London 2019
 
Font End Development + Automation with Django
Font End Development + Automation with DjangoFont End Development + Automation with Django
Font End Development + Automation with Django
 
Jamie Alberico — How to Leverage Insights from Your Site’s Server Logs | 5 Ho...
Jamie Alberico — How to Leverage Insights from Your Site’s Server Logs | 5 Ho...Jamie Alberico — How to Leverage Insights from Your Site’s Server Logs | 5 Ho...
Jamie Alberico — How to Leverage Insights from Your Site’s Server Logs | 5 Ho...
 
Structured Data & Schema.org - SMX Milan 2014
Structured Data & Schema.org - SMX Milan 2014Structured Data & Schema.org - SMX Milan 2014
Structured Data & Schema.org - SMX Milan 2014
 
SharePoint Saturday DC 12/5/09 - Introduction To Developing Custom Actions Wi...
SharePoint Saturday DC 12/5/09 - Introduction To Developing Custom Actions Wi...SharePoint Saturday DC 12/5/09 - Introduction To Developing Custom Actions Wi...
SharePoint Saturday DC 12/5/09 - Introduction To Developing Custom Actions Wi...
 
Challenges of building a search engine like web rendering service
Challenges of building a search engine like web rendering serviceChallenges of building a search engine like web rendering service
Challenges of building a search engine like web rendering service
 
Google Analytics Presentation
Google Analytics PresentationGoogle Analytics Presentation
Google Analytics Presentation
 

Similar to SEO dataLayer 2: Entity Wars

Content Delivery at Aviary - NYC MUG 11/19/13
Content Delivery at Aviary - NYC MUG 11/19/13Content Delivery at Aviary - NYC MUG 11/19/13
Content Delivery at Aviary - NYC MUG 11/19/13
MongoDB
 
12 core technologies you should learn, love, and hate to be a 'real' technocrat
12 core technologies you should learn, love, and hate to be a 'real' technocrat12 core technologies you should learn, love, and hate to be a 'real' technocrat
12 core technologies you should learn, love, and hate to be a 'real' technocrat
Jonathan Linowes
 
Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01
Tony Frame
 
Why Java Needs Hierarchical Data
Why Java Needs Hierarchical DataWhy Java Needs Hierarchical Data
Why Java Needs Hierarchical Data
Marakana Inc.
 

Similar to SEO dataLayer 2: Entity Wars (20)

JavaScript 2.0 in Dreamweaver CS4
JavaScript 2.0 in Dreamweaver CS4JavaScript 2.0 in Dreamweaver CS4
JavaScript 2.0 in Dreamweaver CS4
 
Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0Moving from Web 1.0 to Web 2.0
Moving from Web 1.0 to Web 2.0
 
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
#NoXML: Eliminating XML in Spring Projects - SpringOne 2GX 2015
 
Content Delivery at Aviary - NYC MUG 11/19/13
Content Delivery at Aviary - NYC MUG 11/19/13Content Delivery at Aviary - NYC MUG 11/19/13
Content Delivery at Aviary - NYC MUG 11/19/13
 
MongoDB and Content Delivery at Aviary by Nir Zicherman and Jack Sisson
MongoDB and Content Delivery at Aviary by Nir Zicherman and Jack SissonMongoDB and Content Delivery at Aviary by Nir Zicherman and Jack Sisson
MongoDB and Content Delivery at Aviary by Nir Zicherman and Jack Sisson
 
tutorial2-notes2
tutorial2-notes2tutorial2-notes2
tutorial2-notes2
 
tutorial2-notes2
tutorial2-notes2tutorial2-notes2
tutorial2-notes2
 
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018
Troubleshooting SEO for JS Frameworks - Patrick Stox - DTD 2018
 
Advanced Web Scraping or How To Make Internet Your Database #seoplus2018
Advanced Web Scraping or How To Make Internet Your Database #seoplus2018Advanced Web Scraping or How To Make Internet Your Database #seoplus2018
Advanced Web Scraping or How To Make Internet Your Database #seoplus2018
 
Scout xss csrf_security_presentation_chicago
Scout xss csrf_security_presentation_chicagoScout xss csrf_security_presentation_chicago
Scout xss csrf_security_presentation_chicago
 
12 core technologies you should learn, love, and hate to be a 'real' technocrat
12 core technologies you should learn, love, and hate to be a 'real' technocrat12 core technologies you should learn, love, and hate to be a 'real' technocrat
12 core technologies you should learn, love, and hate to be a 'real' technocrat
 
REST easy with API Platform
REST easy with API PlatformREST easy with API Platform
REST easy with API Platform
 
Scaling business app development with Play and Scala
Scaling business app development with Play and ScalaScaling business app development with Play and Scala
Scaling business app development with Play and Scala
 
12 core technologies you should learn, love, and hate to be a 'real' technocrat
12 core technologies you should learn, love, and hate to be a 'real' technocrat12 core technologies you should learn, love, and hate to be a 'real' technocrat
12 core technologies you should learn, love, and hate to be a 'real' technocrat
 
Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01
 
Why Java Needs Hierarchical Data
Why Java Needs Hierarchical DataWhy Java Needs Hierarchical Data
Why Java Needs Hierarchical Data
 
Build 2017 - B8002 - Introducing Adaptive Cards
Build 2017 - B8002 - Introducing Adaptive CardsBuild 2017 - B8002 - Introducing Adaptive Cards
Build 2017 - B8002 - Introducing Adaptive Cards
 
mago3D Technical Workshop Material
mago3D Technical Workshop Material mago3D Technical Workshop Material
mago3D Technical Workshop Material
 
Supercharge your data analytics with BigQuery
Supercharge your data analytics with BigQuerySupercharge your data analytics with BigQuery
Supercharge your data analytics with BigQuery
 
Designing the Call of Cthulhu app with Google App Engine
Designing the Call of Cthulhu app with Google App EngineDesigning the Call of Cthulhu app with Google App Engine
Designing the Call of Cthulhu app with Google App Engine
 

More from Phil Pearce

More from Phil Pearce (20)

GTM container positions: a summary of best & worst
GTM container positions: a summary of best & worstGTM container positions: a summary of best & worst
GTM container positions: a summary of best & worst
 
Photos of LaserBowling @ MeasureCamp Cardiff 2
Photos of LaserBowling @ MeasureCamp Cardiff 2Photos of LaserBowling @ MeasureCamp Cardiff 2
Photos of LaserBowling @ MeasureCamp Cardiff 2
 
Measurebowling Nerdshirts 2017-06-08
Measurebowling Nerdshirts 2017-06-08Measurebowling Nerdshirts 2017-06-08
Measurebowling Nerdshirts 2017-06-08
 
The Kamasutra of GTM container positions
The Kamasutra of GTM container positionsThe Kamasutra of GTM container positions
The Kamasutra of GTM container positions
 
Common mistakes with media tagging (utm tags) and how to fix them!
Common mistakes with media tagging (utm tags) and how to fix them!Common mistakes with media tagging (utm tags) and how to fix them!
Common mistakes with media tagging (utm tags) and how to fix them!
 
QR code uses cases & Digital Marketing podcasts
QR code uses cases & Digital Marketing podcastsQR code uses cases & Digital Marketing podcasts
QR code uses cases & Digital Marketing podcasts
 
Analytics Crystal maze
Analytics Crystal mazeAnalytics Crystal maze
Analytics Crystal maze
 
GTM Tools Checklist
GTM Tools ChecklistGTM Tools Checklist
GTM Tools Checklist
 
Example cookie compliance audit
Example cookie compliance auditExample cookie compliance audit
Example cookie compliance audit
 
Example SEO audit
Example SEO auditExample SEO audit
Example SEO audit
 
Clicktale Vendor Privacy Audit (August 2013)
Clicktale Vendor Privacy Audit (August 2013)Clicktale Vendor Privacy Audit (August 2013)
Clicktale Vendor Privacy Audit (August 2013)
 
SEO analytics: How to report & improve performance
SEO analytics: How to report & improve performanceSEO analytics: How to report & improve performance
SEO analytics: How to report & improve performance
 
Analytics & Optimisation for University sites
Analytics & Optimisation for University sitesAnalytics & Optimisation for University sites
Analytics & Optimisation for University sites
 
Benefits of Google Tag Manager
Benefits of Google Tag ManagerBenefits of Google Tag Manager
Benefits of Google Tag Manager
 
Digital analytics upskilling & career tips
Digital analytics upskilling & career tipsDigital analytics upskilling & career tips
Digital analytics upskilling & career tips
 
Hard PPC questions for the Panel
Hard PPC questions for the PanelHard PPC questions for the Panel
Hard PPC questions for the Panel
 
Google Tag Manager Flash Tips @ MeasureCamp
Google Tag Manager Flash Tips @ MeasureCampGoogle Tag Manager Flash Tips @ MeasureCamp
Google Tag Manager Flash Tips @ MeasureCamp
 
Realtime Google Analytics game
Realtime Google Analytics gameRealtime Google Analytics game
Realtime Google Analytics game
 
Top 10 Google Analytics tips to save you money!
Top 10 Google Analytics tips to save you money!Top 10 Google Analytics tips to save you money!
Top 10 Google Analytics tips to save you money!
 
Monetate Implementation Cheat Sheet
Monetate Implementation Cheat SheetMonetate Implementation Cheat Sheet
Monetate Implementation Cheat Sheet
 

Recently uploaded

Call Girls In Attibele ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Attibele ☎ 7737669865 🥵 Book Your One night StandCall Girls In Attibele ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Attibele ☎ 7737669865 🥵 Book Your One night Stand
amitlee9823
 
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
amitlee9823
 
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get CytotecAbortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Riyadh +966572737505 get cytotec
 
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
amitlee9823
 
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men 🔝Thrissur🔝 Escor...
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men  🔝Thrissur🔝   Escor...➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men  🔝Thrissur🔝   Escor...
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men 🔝Thrissur🔝 Escor...
amitlee9823
 
➥🔝 7737669865 🔝▻ Dindigul Call-girls in Women Seeking Men 🔝Dindigul🔝 Escor...
➥🔝 7737669865 🔝▻ Dindigul Call-girls in Women Seeking Men  🔝Dindigul🔝   Escor...➥🔝 7737669865 🔝▻ Dindigul Call-girls in Women Seeking Men  🔝Dindigul🔝   Escor...
➥🔝 7737669865 🔝▻ Dindigul Call-girls in Women Seeking Men 🔝Dindigul🔝 Escor...
amitlee9823
 
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
amitlee9823
 
Call Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night StandCall Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night Stand
amitlee9823
 
➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men 🔝Mathura🔝 Escorts...
➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men  🔝Mathura🔝   Escorts...➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men  🔝Mathura🔝   Escorts...
➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men 🔝Mathura🔝 Escorts...
amitlee9823
 
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts ServiceCall Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 
👉 Amritsar Call Girl 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Phone No Amri...
👉 Amritsar Call Girl 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Phone No Amri...👉 Amritsar Call Girl 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Phone No Amri...
👉 Amritsar Call Girl 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Phone No Amri...
karishmasinghjnh
 

Recently uploaded (20)

Call Girls In Attibele ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Attibele ☎ 7737669865 🥵 Book Your One night StandCall Girls In Attibele ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Attibele ☎ 7737669865 🥵 Book Your One night Stand
 
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
 
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get CytotecAbortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get Cytotec
 
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
 
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men 🔝Thrissur🔝 Escor...
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men  🔝Thrissur🔝   Escor...➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men  🔝Thrissur🔝   Escor...
➥🔝 7737669865 🔝▻ Thrissur Call-girls in Women Seeking Men 🔝Thrissur🔝 Escor...
 
Detecting Credit Card Fraud: A Machine Learning Approach
Detecting Credit Card Fraud: A Machine Learning ApproachDetecting Credit Card Fraud: A Machine Learning Approach
Detecting Credit Card Fraud: A Machine Learning Approach
 
Anomaly detection and data imputation within time series
Anomaly detection and data imputation within time seriesAnomaly detection and data imputation within time series
Anomaly detection and data imputation within time series
 
➥🔝 7737669865 🔝▻ Dindigul Call-girls in Women Seeking Men 🔝Dindigul🔝 Escor...
➥🔝 7737669865 🔝▻ Dindigul Call-girls in Women Seeking Men  🔝Dindigul🔝   Escor...➥🔝 7737669865 🔝▻ Dindigul Call-girls in Women Seeking Men  🔝Dindigul🔝   Escor...
➥🔝 7737669865 🔝▻ Dindigul Call-girls in Women Seeking Men 🔝Dindigul🔝 Escor...
 
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
 
Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% SecureCall me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
 
Thane Call Girls 7091864438 Call Girls in Thane Escort service book now -
Thane Call Girls 7091864438 Call Girls in Thane Escort service book now -Thane Call Girls 7091864438 Call Girls in Thane Escort service book now -
Thane Call Girls 7091864438 Call Girls in Thane Escort service book now -
 
Call Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night StandCall Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Nandini Layout ☎ 7737669865 🥵 Book Your One night Stand
 
➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men 🔝Mathura🔝 Escorts...
➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men  🔝Mathura🔝   Escorts...➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men  🔝Mathura🔝   Escorts...
➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men 🔝Mathura🔝 Escorts...
 
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts ServiceCall Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
 
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
April 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's AnalysisApril 2024 - Crypto Market Report's Analysis
April 2024 - Crypto Market Report's Analysis
 
Midocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxMidocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFx
 
(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
 
👉 Amritsar Call Girl 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Phone No Amri...
👉 Amritsar Call Girl 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Phone No Amri...👉 Amritsar Call Girl 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Phone No Amri...
👉 Amritsar Call Girl 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Phone No Amri...
 

SEO dataLayer 2: Entity Wars

  • 2. Welcome Back Phil Pearce Analytics Freedom Fighter www.linkedin.com/in/philpearce Web Analytics Exchange mentor 750 GA questions answered Tracking protection group
  • 3. Agenda 1. A possible Dark Future 2. Battlefield report: Before vs After 3. Arming-up 1. Enabling markup (Cheat sheets & templates) 2. Shooting range (UI for enabling) 3. Testing it worked 4. JSONLD Listeners 5. A new future
  • 4. Everyone thought Google was the Bad guy…
  • 6. 2020: Facebook Network introduce a new search engine called Mercury, it used Machine Learning & Facebook`s database to return the perfect answer to any question.
  • 7. Google became an obsolete business model It did`nt have access to the rich structured user & content data stored in Facebooks proprietary database. Google was missing a semantic understanding layer.
  • 8. Realising its mistake, Google sent a machine readable data alternative back in time
  • 9. Thus began the entity wars…
  • 10. I`m here to Arm you with the tools you will need to enable machine readable dataLayer The name of this mark-up is called…
  • 12. What is JSON-LD video https://www.youtube.com/watch?v=vioCbTo3C-4 And https://www.youtube.com/watch?v=XXw8g-FbemI#t=251
  • 13. Does Anyone know what the LD stands for in JSON-LD? Audience Question….
  • 14. LD = Likes Die!
  • 15. Benefits of JSON-LD 1. Increases organic CTR (Google & Bing) 2. Allows for Action buttons when signed-in 3. Allows you to leverage offsite markup (via LD) 4. Extra organic impressions in card carousal 5. Requirement for AMP pages (e.g News markup) 6. Allows for contentGroups & remarketing 7. Also works in webmail aswell
  • 16.
  • 17. JSON-LD adoption rate - increasing http://trends.builtwith.com/docinfo/JSON-LD
  • 18. Facebook like button adoption - flat growth
  • 21. “Schema Markup Generator” Future Action: Use playground technicalseo.com/seo-tools/schema-markup-generator/
  • 24. 1. Inline MicroData converted to JSONLD for Courses bit.ly/rdfa-to-jsonld 2. JS variables converted to JSONLD for Restaurants bit.ly/js-to-jsonld Heavy lifting in JS using GTM…
  • 25. GTM JSON-LD example source code… JSON script are downloadable from here: login:coolgtmstuff @gmail.com pw:philrulesgtm8 Auto config import file: bit.ly/winningthewar6
  • 26. Winning the war examples… bit.ly/winningthewar35
  • 27. 2. Microdata >> JSON-LD convertor bit.ly/winningthewar5
  • 28. https://www.schemaapp.com/schema-markup-automation/ https://www.schemaapp.com/?wvideo=jz49i69b7p Of if you are really F**king lazy & don’t want to do any work… (automatic method)
  • 29. Pro Tip… there is a bug in GTM on when using special characters Don’t use… Use this instead…
  • 30. Pro Tip… there is a bug in GTM on when using special characters Use this instead…
  • 32. Structure Data Validator (Whole site in GWT)
  • 33. Structure Data Validator (one page at a time) https://search.google.com/structured-data/testing-tool
  • 34. Monitoring changes in Google SERPs…
  • 35. You can already calculate existing Organic CTR using GA sessions / GWT impressions
  • 37. SEOmoz now report on this for your site vs competitors
  • 39. Facebook like buttons auto-enabled listening for JSON-LD!!
  • 40. How to disable Facebook autoConfig listner… fbq("set", "autoConfig", false, "99999999999" );
  • 42. Organization – Logo, Social and Telephone number <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Organization", "url": "http://yourdomain.com/", "logo": "http://yourdomain.com/images/logo.png", "sameAs": [ "http://www.facebook.com/yourProfile", "http://www.twitter.com/yourProfile", "http://plus.google.com/yourProfile", "http://www.linkedin.com/in/yourProfile", "http://instagram.com/yourProfile" ], "contactPoint": [{ "@type": "ContactPoint", "telephone": "+1-401-555-1212", "contactType": "customer service", "contactOption": "TollFree", "areaServed": [ "US", "CA" ], "availableLanguage": [ "English", "French" ] }] } </script> Future Action: Click Homepage only
  • 43. Person <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Person", "name": "Barack Obama", "jobTitle": "President", "affiliation": "Democratic Party", "additionalName": "Barack", "url": "http://www.barackobama.com/", "sameAs": [ "http://www.facebook.com/yourProfile", "http://www.twitter.com/yourProfile", "http://plus.google.com/yourProfile", "http://www.linkedin.com/in/yourProfile", "http://instagram.com/yourProfile" ], "address": { "@type": "PostalAddress", "streetAddress": "White house, 1600 Pennsylvania Ave", "addressLocality": "Northwest", "addressRegion": "Washington" } } </script> Future Action: Follow updates Homepage only
  • 44. WebSite – Search box <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "WebSite", "url": "http://yourdomain.com/", "potentialAction": { "@type": "SearchAction", "target": "http://yourdomain.com/?s={search_term_string}", "query-input": "required name=search_term_string" } } </script> Future Action: Search Global
  • 45. Breadcrumbs <!-- developers.google.com/structured-data/breadcrumbs --> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": 1, "item": { "@id": "http://{{Page Hostname}}/{{jsmacro_pathnameLevel1 - no prepending slash}}", "name": "{{jsmacro_pathnameLevel1 - no prepending slash}}" } },{ "@type": "ListItem", "position": 2, "item": { "@id": "http://{{Page Hostname}}{{Page Path}}", "name": "{{js_document.title}}" } }] } </script> Page specific
  • 46. NewsArticle <!--http://developers.google.com/search/docs/data-types/articles --> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "NewsArticle", "mainEntityOfPage": { "@type": "WebPage", "@id": "http://{{Page Hostname}}/article1" }, "headline": "Article headline", "description": "A most wonderful article", "image": { "@type": "ImageObject", "url": "http://{{Page Hostname}}/thumbnail_1.jpg", "height": 800, "width": 800 }, "datePublished": "2016-01-01T00:00:00+08:00", "dateModified": "2016-01-01T13:00:00+08:00", "author": { "@type": "Person", "name": "John Doe", "sameAs": "https://plus.google.com/106113236172152128711" }, "publisher": { "@type": "Organization", "name": "Google", "logo": { "@type": "ImageObject", "url": "https://www.newscorp.com/logo.jpg", "width": 600, Page specific
  • 47. Products <!-- https://developers.google.com/search/docs/data-types/products --> <script type="application/ld+json"> { "@context": "http://schema.org/", "@type": "Product", "name": "Executive Anvil", "image": "http://www.example.com/anvil_executive.jpg", "description": "Sleeker than ACME's Classic Anvil, the Executive Anvil is perfect for the business traveler looking for something to drop from a height.", "mpn": "925872", "brand": { "@type": "Thing", "name": "ACME" }, "offers": { "@type": "Offer", "priceCurrency": "USD", "price": "119.99", "priceValidUntil": "2099-01-01", "itemCondition": "UsedCondition", // schema.org/UsedCondition "availability": "InStock", // schema.org/InStock "seller": { "@type": "Organization", "name": "Executive Objects" } } } </script> Page specific
  • 48. Products Reviews <!-- https://developers.google.com/search/docs/data-types/reviews --> <script type="application/ld+json"> { "@context": "http://schema.org/", "@type": "Product", "name": "Executive Anvil", //...// "aggregateRating": { "@type": "AggregateRating", "worstRating": 1, "bestRating": 5, "ratingValue": 4.4, "reviewCount": 1 }, "review": { "@type": "Review", "reviewRating": { "@type": "Rating", "worstRating": 1, "bestRating": 5, "ratingValue": 4.4 }, "name": "A masterpiece of an Executive Anvil", "datePublished": "2016-01-01", "reviewBody": "I really like this product. It captures the essential challenge business traveler looking for something to drop from a height`s", "author": { "@type": "Person", "name": "John Doe", "sameAs": "https://plus.google.com/106113236172152128711" Page specific
  • 49. Review by Expert Author (GoogleNet whitelist) <!-- https://developers.google.com/structured-data/critic-reviews --> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Review", "author": { "@type": "Person", "name": "Lisa Kennedy", "sameAs": "https://plus.google.com/114108465800532712602" }, "datePublished": "2014-03-13T20:00", "description": "Nerve-racking, sentimental and thrilling.", "itemReviewed": { "@type": "Movie", "name": "Gravity", "sameAs": "http://www.imdb.com/title/tt1454468/", "datePublished": "2013-10-04T00:00", "director": { "@type": "Person", "name": "Alfonso Cuarón", "sameAs": "http://en.wikipedia.org/wiki/Alfonso_Cuar%C3%B3n" }, "actor": [{ "@type": "Person", "name": "Sandra Bullock", "sameAs": "http://en.wikipedia.org/wiki/Sandra_Bullock" },{ "@type": "Person", "name": "George Clooney", "sameAs": "http://en.wikipedia.org/wiki/George_Clooney" } Page specific
  • 50. LocalBusiness - Restaurant <!-- https://developers.google.com/search/docs/data-types/local-businesses --> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "Restaurant", "name": "Dave's Steak House", "image": "http://www.example.com/image.jpg", "url": "http://www.example.com/restaurant-locations/manhattan", "menu": "http://www.example.com/menu", "acceptsReservations": "True", "telephone": "+12122459600", "address": { "@type": "PostalAddress", "streetAddress": "148 W 51st St", "addressLocality": "New York", "addressRegion": "NY", "postalCode": "10019", "addressCountry": "US" }, "geo": { "@type": "GeoCoordinates", "latitude": "40.761293", "longitude": "-73.982294" }, "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": [ "Monday", "Tuesday" ], Page specific
  • 51. LocalBusiness - HealthClub - ReserveAction <!-- https://developers.google.com/search/docs/data-types/local-businesses --> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "HealthClub", "name": "Dave's House of Yoga", "image": "http://daveshouseofyoga.example.com/yoga.jpg", "url": "http://daveshouseofyoga.example.com/", "telephone": "+14085551135", "potentialAction": { "@type": "ReserveAction", "target": { "@type": "EntryPoint", "urlTemplate": "https://www.example.com/reserve?merchantId=20373", "inLanguage": "en-US", "actionPlatform": [ "http://schema.org/DesktopWebPlatform" //, "http://schema.org/IOSPlatform" //, "http://schema.org/AndroidPlatform" ] }, "result": { "@type": "Reservation", "name": "Book a class" } }, "address": { "@type": "PostalAddress", "streetAddress": "3986 Rivermark Pkwy", Page specific
  • 52. MusicEvent - location <!– https://developers.google.com/search/docs/guides/mark-up-listings#mark_up_event_listings --> <script type="application/ld+json">{ "@context": "http://schema.org", "@type": "MusicEvent", "name": "The Wurzels", "image": "https://cdn2.gigantic.com/static/images/campaign/240x240/the-wurzels5545.jpg", "url": "https://www.gigantic.com/the-wurzels-electric-palace-2016-09-17-19-30", "startDate": "2016-09-17T19:30:00+01:00", "doorTime": "19:30", "typicalAgeRange": "Under 14's must be accompanied by an adult.", "location": { "@type": "Place", "name": "Electric Palace", "address": { "@type": "PostalAddress", "streetAddress": "35 South Street", "addressLocality": "Bridport", "postalCode": "DT63NY", "addressCountry": "GB" } }, "offers": [{ "@type": "Offer", "name": "Standing", "category": "primary", "price": "15.95", "priceCurrency": "GBP", "url": "https://www.gigantic.com/the-wurzels-electric-palace-2016-09-17-19-30", "availability": "InStock" }], "performer": [{ Future Action: Buy The Wurzels Sat, 17th Sept gigantic.com thewurzels.com Electric Palace 35 South Street, Bridport, DT63NY Other supported event types include… 1. MusicEvent 2. TheaterEvent 3. SportsEvent 4. ComedyEvent 5. Festival 6. FoodEvent Page specific
  • 53. TheaterEvent - location <!-- https://developers.google.com/search/docs/data-types/events#venue-markup --> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "TheaterEvent", "name": "Julius Caesar at Shakespeare's Globe", "location": { "@type": "PerformingArtsTheater", "name": "Shakespeare's Globe", "sameAs": "http://www.shakespearesglobe.com/", "address": "London, UK" }, "offers": [{ "@type": "Offer", "name": "Standing (Yard)", "url": "https://tickets.shakespearesglobe.com/performances.asp?PerIndex=287339", "category": "primary", "priceCurrency": "GBP", "price": "7.50", "availability": "http://schema.org/InStock" },{ "@type": "AggregateOffer", "name": "Lower Gallery", "url": "https://tickets.shakespearesglobe.com/performances.asp?PerIndex=287339", "category": "primary", "priceCurrency": "GBP", "lowPrice": "17.50", "highPrice": "44.50", "availability": "http://schema.org/LimitedAvailability" } ], Future Action: Buy Page specific
  • 54. MusicGroup - ListenAction <!-- https://developers.google.com/structured-data/actions/play-music --> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "MusicGroup", "url": [ "http://www.iheart.com/artist/Katy-Perry-35141/" // Google validator does not like android-app URL - even though its in their example! //, "android-app://com.clearchannel.iheartradio.controller/ihr/listen/custom_radio/artist/35141" ], "name": "Katy Perry", "sameAs": "http://www.katyperry.com", "logo": "http://{{Page Hostname}}/images/logo.png", // PP missing in Google help pages "description": "Katy Perry is a pop music artist.", "potentialAction": { "@type": "ListenAction", "target": [ "http://www.iheart.com/artist/Katy-Perry-35141/?autoplay=true&ext=1&playedFrom=197" // Google validator does not like android-app URL - even though its in their example! //, "android- app://com.clearchannel.iheartradio.controller/ihr/listen/custom_radio/artist/35141?ext=1&played_from=197" ], // Offer added as validator said this was a recommended field "expectsAcceptanceOf": { "@type": "Offer", "eligibleRegion": { "@type": "Country", "name": "US" } } } Page specific
  • 55. TVEpisode - Play/WatchAction <!-- https://developers.google.com/structured-data/actions/watch-movies --> <script type="application/ld+json"> { "@context": "http://schema.org", "@id": "2356865", "@type": "TVEpisode", "name": "The Occupation Recalibration", "episodeNumber": 13, "partOfSeason": { "@type": "TVSeason", "seasonNumber": 7 }, "partOfSeries": { "@type": "TVSeries", "name": "The Big Bang Theory", "sameAs": "http://www.imdb.com/title/tt0898266/", "url": "http://www.cbs.com/shows/big_bang_theory/", "description": "The Big Bang Theory is an American sitcom." }, "releasedEvent": { "@type": "PublicationEvent", "startDate": "2015-01-09", "location": { "@type": "Country", "name": "US" } }, "potentialAction": [{ "@type": "WatchAction", "target": { Page specific
  • 56. NewsArticle (AMP requirement) <script type="application/ld+json"> /* http://developers.google.com/search/docs/data-types/articles */ { "@context": "http://schema.org", "@type": "BlogPosting", "mainEntityOfPage": "https://www.bookinglive.com/blog/online-booking-systems-for-the-public-sector/", "publisher": { "@type": "Organization", "name": "BookingLive Blog", "logo": { "@type": "ImageObject", "url": "https://www.bookinglive.com/blog/wp- content/themes/bookingliveblog/themes/bookinglive/images/logo.png", "height": 60, "width": 600 } }, "headline": "Online Booking Systems For The Public Sector", "datePublished": "2016-08-08T14:59:58+00:00", "dateModified": "", "author": { "@type": "Person", "name": "Booking Live" }, "description": "", "image": { "@type": "ImageObject", "url": "https://www.bookinglive.com/blog/wp-content/themes/bookingliveblog/themes/bookinglive/images/logo.png", "height": 800, "width": 800 } } </script> Page specific
  • 57. “Kill” action <script type="application/ld+json"> { "@context": "http://schema.org", "potentialAction": [{ "@type": "MuteAction", "target": "https://en.wikipedia.org/wiki/Jar_Jar_Binks", "method": "Slap in face" },{ "@type": "KillAction", "target ": "https://en.wikipedia.org/wiki/Jar_Jar_Binks", "method": "Terminate" }] } </script> Future Action: Kill Future Action: Slap in face Page specific
  • 58.
  • 60. Its not just about Websites…
  • 61. Action buttons also supported in Emails <script type="application/ld+json"> /* One Click Action: Confirm Action https://developers.google.com/gmail/markup/reference/one-click-action#confirm_action */ { "@context": "http://schema.org", "@type": "EmailMessage", "description": "Approval request for John's $10.13 expense for office supplies", "potentialAction": { "@type": "ConfirmAction", "name": "Approve Expense", "handler": { "@type": "HttpActionHandler", "url": "https://myexpenses.com/approve?expenseId=abc123" } } } </script>
  • 62. Here is a live example from GitHub emails... http://semanticweb.com/github-adds-schema-org-actions-email-notifications-via-json-ld_b44450 You have mail Future Action: Pull Request
  • 64. Enable JSON-LD via GTM or CMS plugins Good for... Global JSON-LD 1. Brand Logo 2. Phone Number 3. Social Profiles 4. Site Search 5. OpeningHours 6. Address Good for... Page Specific JSON-LD 1. News data 2. Product data 3. Review data 4. Breadcrumbs 5. Music & TV Product data 6. Local restaurants
  • 65. Ping GoogleBot after making changes 1. Ensure pages validate: 2. Ping GoogleBot to re-crawl by visiting this URL: Or use “Fetch, render and index” on homepage & individual pages in GWT. 3. Or Click submit sitemap.xml in GWT
  • 66. Waiting for GoogleBot to index (or check in SEOmoz)
  • 67. Future actions… 1. Google JSON-LD Validator- try 2. GTM auto config for JSONLD or WP CMS plugins - install 3. Ping GoogleBot via sitemap.xml - submit
  • 68. Don’t let… Facebook win in 2020
  • 70. Join the Resistance on GooglePlus bit.ly/join-the-resistance
  • 72. Free “USB stick" for Best Question! Questions…. bit.ly/wawquestions
  • 73. FREE seo audit template bit.ly/techseoaudit
  • 74. Free resource... For everyone else... bit.ly/gtmdevguide2 € FREE www.amazon.de/Google-Tag-Manager-Developer-Guide-ebook/dp/B00KEC2IOK Future Action: Download
  • 75. More links • https://moz.com/blog/using-google-tag- manager-to-dynamically-generate-schema- org-json-ld-tags • https://moz.com/blog/structured-data-for- seo-2 • https://moz.com/blog/using-google-tag- manager-to-dynamically-generate-schema- org-json-ld-tags
  • 76. JSON-LD Links Testing Tools • JSON-LD playground & validation tools: www.json-ld.org • Official Google markup-Tester for JSON-LD www.google.com/webmasters/markup-tester/corporatecontacts (phone numbers) www.google.com/webmasters/markup-tester/events (music events) www.google.com/webmasters/markup-tester/ (email) JSON-LD blog posts • www.seoskeptic.com/json-ld-google-knowledge-graph-schema-org-seo/ • moduscreate.com/google-announces-json-ld-compliance-at-google-io/ • semanticweb.com/category/technologies-2/json-ld • https://schema.org/docs/actions.html (new)
  • 77. Video on JSON LD Very good intro video to JSON-LinkedData • http://www.youtube.com/watch?v=vioCbTo3C-4 • http://www.youtube.com/watch?v=XXw8g-FbemI History behind JSON-LinkedData • http://manu.sporny.org/2014/json-ld-origins-2/
  • 79. Free robot tracking via noscipt + session recording (like clicktale) Yandex metric [config file] bit.ly/yandexmetricagtm or bit.ly/yandexmetricagtmV1 1. Create Yandex Account 2. Then go to yanex metrica and create a “counter” account 3. Replace 99999 accountID with your accountID in the variable Note: Yandex Metrica uses pageviews for crawl discovery
  • 80. I recommend in the <head> with other <meta tags> but can be placed anywhere. Position of JSON LD on a page… JSON-LD data Note: If deployed via GTM - I recommend deploying on DOM ready.
  • 81. Planning JSON implantation Global vs Page specific Global 1. Brand Logo 2. Phone Number 3. Social Profiles 4. Site Search 5. OpeningHours 6. Address Page Specific 1. News data 2. Product data 3. Review data 4. Breadcrumbs 5. Music & TV Product data 6. Local restaurants vs
  • 82. Implementation Method summary GTM Wordpress CMS agnostic Yes No Supports server-side No (dataLayer exception) Yes InTool JS validation Native n/a Speed Asynchronous JS Server-side cache Uneffected by CSS or DOM ID changes No, will break (dataLayer exception) Yes