SlideShare uma empresa Scribd logo
1 de 52
Build your own
analytics power tools
like an artisan
Alban Gérôme
@albangerome
MeasureCamp London XII
24 March 2018
An epiphany
An epiphany
If I could strip down the code of the debugger to its
bare essentials
An epiphany
If I could strip down the code of the debugger to its
bare essentials, I could automate QA
Minified, impenetrable code
Minified, impenetrable code
• Browsers can’t tell you anything about web requests, not in client-
side Javascript
Minified, impenetrable code
• Browsers can’t tell you anything about web requests, not in client-
side Javascript
• But somehow, this debugger does just that
Minified, impenetrable code
• Browsers can’t tell you anything about web requests, not in client-
side Javascript
• But somehow, this debugger does just that
• The analytics library exposes a variable containing an <img> element
with src attribute and that’s the whole tracking request URL
Minified, impenetrable code
• Browsers can’t tell you anything about web requests, not in client-
side Javascript
• But somehow, this debugger does just that
• The analytics library exposes a variable containing an <img> element
with src attribute and that’s the whole tracking request URL
• I bet the other analytics tools this debugger supports all do
something similar but how could we expand this to more tools?
Fool me
• Trigger artificial click, change and blur events on all page elements
and I can get all the raw tracking requests
Fool me
• Trigger artificial click, change and blur events on all page elements
and I can get all the raw tracking requests
• I could represent the page view and the interactions in JSON format
Fool me
• Trigger artificial click, change and blur events on all page elements
and I can get all the raw tracking requests
• I could represent the page view and the interactions in JSON format
• I could represent our tracking requirements in JSON format too
Fool me
If the developers could generate the first JSON on the
fly and compare it with our tagging guide JSON, they
could catch implementation errors at build time
Fool me
If the developers could generate the first JSON on the
fly and compare it with our tagging guide JSON, they
could catch implementation errors at build time, before
going live
When the tough gets tough…
When the tough gets tough…
• Some links are outbound links
When the tough gets tough…
• Some links are outbound links
• I want to trigger the Javascript events, get them to trigger an analytics
tracking request but nothing else
When the tough gets tough…
• Some links are outbound links
• I want to trigger the Javascript events, get them to trigger an analytics
tracking request but nothing else
• Some events still fall through the cracks
When the tough gets tough…
• Some links are outbound links
• I want to trigger the Javascript events, get them to trigger an analytics
tracking request but nothing else
• Some events still fall through the cracks
• How am I going to identify which elements are tracked?
When the tough gets tough…
• Some links are outbound links
• I want to trigger the Javascript events, get them to trigger an analytics
tracking request but nothing else
• Some events still fall through the cracks
• How am I going to identify which elements are tracked?
• How can I make the script run fast enough?
When the tough gets tough…
• Some links are outbound links
• I want to trigger the Javascript events, get them to trigger an analytics
tracking request but nothing else
• Some events still fall through the cracks
• How am I going to identify which elements are tracked?
• How can I make the script run fast enough?
• THE #@%£ script worked yesterday and today it doesn’t!
When the tough gets tough…
• Some links are outbound links
• I want to trigger the Javascript events, get them to trigger an analytics
tracking request but nothing else
• Some events still fall through the cracks
• How am I going to identify which elements are tracked?
• How can I make the script run fast enough?
• THE #@%£ script worked yesterday and today it doesn’t!
• Why can’t I replace the cursor to a spinner while the script runs?
Could a Chrome extension work?
Could a Chrome extension work?
• A manifest file with all permissions and settings
Could a Chrome extension work?
• A manifest file with all permissions and settings
• A content script that runs on the page you want to process
Could a Chrome extension work?
• A manifest file with all permissions and settings
• A content script that runs on the page you want to process
• A popup script that runs inside your extension popup if your
extension has one
Could a Chrome extension work?
• A manifest file with all permissions and settings
• A content script that runs on the page you want to process
• A popup script that runs inside your extension popup if your
extension has one
• A background script that sits between the content and popup scripts
with some limitations but also extra power
Could a Chrome extension work?
• A manifest file with all permissions and settings
• A content script that runs on the page you want to process
• A popup script that runs inside your extension popup if your
extension has one
• A background script that sits between the content and popup scripts
with some limitations but also extra power
• A messaging system to pass information between all three scripts
Could a Chrome extension work?
• A manifest file with all permissions and settings
• A content script that runs on the page you want to process
• A popup script that runs inside your extension popup if your
extension has one
• A background script that sits between the content and popup scripts
with some limitations but also extra power
• A messaging system to pass information between all three scripts
• A limited-capacity but useful common data storage to remember
custom settings
Chrome extensions powers
• The background script can report and manage all web requests before
and after, any analytics tool that make web requests
Chrome extensions powers
• The background script can report and manage all web requests before
and after, any analytics tool that make web requests – oh yeah!
Chrome extensions powers
• The background script can report and manage all web requests before
and after, any analytics tool that make web requests – oh yeah!
• This lets you cancel your test traffic and keep your server calls low or
let the requests reach your analytics servers and see the hit in a test
account or redirect them to somewhere else
Chrome extensions powers
• The background script can report and manage all web requests before
and after, any analytics tool that make web requests – oh yeah!
• This lets you cancel your test traffic and keep your server calls low or
let the requests reach your analytics servers and see the hit in a test
account or redirect them to somewhere else – how flexible!
Chrome extensions powers
• The background script can report and manage all web requests before
and after, any analytics tool that make web requests – oh yeah!
• This lets you cancel your test traffic and keep your server calls low or
let the requests reach your analytics servers and see the hit in a test
account or redirect them to somewhere else – how flexible!
• This lets you do screenshots – only what’s visible in the window but
some extensions can generate full page screenshots
Chrome extensions powers
• The background script can report and manage all web requests before
and after, any analytics tool that make web requests – oh yeah!
• This lets you cancel your test traffic and keep your server calls low or
let the requests reach your analytics servers and see the hit in a test
account or redirect them to somewhere else – how flexible!
• This lets you do screenshots – only what’s visible in the window but
some extensions can generate full page screenshots – how useful!
Chrome extensions powers
• The background script can report and manage all web requests before
and after, any analytics tool that make web requests – oh yeah!
• This lets you cancel your test traffic and keep your server calls low or
let the requests reach your analytics servers and see the hit in a test
account or redirect them to somewhere else – how flexible!
• This lets you do screenshots – only what’s visible in the window but
some extensions can generate full page screenshots – how useful!
• You could actually package this into a commercial product
Useful Javascript libraries for us
Useful Javascript libraries for us
• jQuery – although you won’t care about cross-browser support, it will
make your code leaner and easier to maintain and add new features
Useful Javascript libraries for us
• jQuery – although you won’t care about cross-browser support, it will
make your code leaner and easier to maintain and add new features
• Bootstrap – makes interfaces look very slick
Useful Javascript libraries for us
• jQuery – although you won’t care about cross-browser support, it will
make your code leaner and easier to maintain and add new features
• Bootstrap – makes interfaces look very slick
• DataTables – a jQuery module that lets you convert Javascript arrays
and JSONs into sortable, searchable, paginated tables – perfect to
represent our decoded page view and interaction tracking requests
Useful Javascript libraries for us
• jQuery – although you won’t care about cross-browser support, it will
make your code leaner and easier to maintain and add new features
• Bootstrap – makes interfaces look very slick
• DataTables – a jQuery module that lets you convert Javascript arrays
and JSONs into sortable, searchable, paginated tables – perfect to
represent our decoded page view and interaction tracking requests
• jsPDF – a library that will generate a PDF from a HTML document.
Imagine generating a snazzy PDF report with your full page
screenshot showing which elements are tracked and a page number
reference for all the details about what each element tracks
Demo, anyone?
Thank you!
http://www.albangerome.com
@albangerome
Thank you!

Mais conteúdo relacionado

Mais procurados

Migration Best Practices - SMX West 2019
Migration Best Practices - SMX West 2019Migration Best Practices - SMX West 2019
Migration Best Practices - SMX West 2019Bastian Grimm
 
Three site speed optimisation tips to make your website REALLY fast - Brighto...
Three site speed optimisation tips to make your website REALLY fast - Brighto...Three site speed optimisation tips to make your website REALLY fast - Brighto...
Three site speed optimisation tips to make your website REALLY fast - Brighto...Bastian Grimm
 
Pubcon Vegas 2017 You're Going To Screw Up International SEO - Patrick Stox
Pubcon Vegas 2017 You're Going To Screw Up International SEO - Patrick StoxPubcon Vegas 2017 You're Going To Screw Up International SEO - Patrick Stox
Pubcon Vegas 2017 You're Going To Screw Up International SEO - Patrick Stoxpatrickstox
 
Migration Best-Practices: Successfully re-launching your website - SMX New Yo...
Migration Best-Practices: Successfully re-launching your website - SMX New Yo...Migration Best-Practices: Successfully re-launching your website - SMX New Yo...
Migration Best-Practices: Successfully re-launching your website - SMX New Yo...Bastian Grimm
 
SEO Checklist for Google Mobile First Index
SEO Checklist for Google Mobile First IndexSEO Checklist for Google Mobile First Index
SEO Checklist for Google Mobile First IndexErudite
 
Use Google Docs to monitor SEO by pulling in Google Analytics #BrightonSEO
Use Google Docs to monitor SEO by pulling in Google Analytics #BrightonSEOUse Google Docs to monitor SEO by pulling in Google Analytics #BrightonSEO
Use Google Docs to monitor SEO by pulling in Google Analytics #BrightonSEOGerry White
 
What's in my SEO Toolbox: Linkbuilding Edition - SMX Milan 2014
What's in my SEO Toolbox: Linkbuilding Edition - SMX Milan 2014What's in my SEO Toolbox: Linkbuilding Edition - SMX Milan 2014
What's in my SEO Toolbox: Linkbuilding Edition - SMX Milan 2014Bastian Grimm
 
SearchLeeds 2018 - Bastian Grimm - Peak Ace - International site speed: Going...
SearchLeeds 2018 - Bastian Grimm - Peak Ace - International site speed: Going...SearchLeeds 2018 - Bastian Grimm - Peak Ace - International site speed: Going...
SearchLeeds 2018 - Bastian Grimm - Peak Ace - International site speed: Going...Branded3
 
OK Google, Whats next? - OMT Wiesbaden 2018
OK Google, Whats next? - OMT Wiesbaden 2018OK Google, Whats next? - OMT Wiesbaden 2018
OK Google, Whats next? - OMT Wiesbaden 2018Bastian Grimm
 
Super speed around the globe - SearchLeeds 2018
Super speed around the globe - SearchLeeds 2018Super speed around the globe - SearchLeeds 2018
Super speed around the globe - SearchLeeds 2018Bastian Grimm
 
AMP - SMX München 2018
AMP - SMX München 2018AMP - SMX München 2018
AMP - SMX München 2018Bastian Grimm
 
Migration Best Practices - SMX London 2018
Migration Best Practices - SMX London 2018Migration Best Practices - SMX London 2018
Migration Best Practices - SMX London 2018Bastian Grimm
 
Dynamic Rendering - is this really an SEO silver bullet? SMX WEST
Dynamic Rendering - is this really an SEO silver bullet? SMX WESTDynamic Rendering - is this really an SEO silver bullet? SMX WEST
Dynamic Rendering - is this really an SEO silver bullet? SMX WESTOnely
 
Migration Best Practices - Search Y 2019, Paris
Migration Best Practices - Search Y 2019, ParisMigration Best Practices - Search Y 2019, Paris
Migration Best Practices - Search Y 2019, ParisBastian Grimm
 
Whats Next in SEO & CRO - 3XE Conference 2018 Dublin
Whats Next in SEO & CRO - 3XE Conference 2018 DublinWhats Next in SEO & CRO - 3XE Conference 2018 Dublin
Whats Next in SEO & CRO - 3XE Conference 2018 DublinBastian Grimm
 
Automating Google Lighthouse
Automating Google LighthouseAutomating Google Lighthouse
Automating Google LighthouseHamlet Batista
 
Mobile First et AMP - Developers Meetup - May 2017
Mobile First et AMP - Developers Meetup - May 2017Mobile First et AMP - Developers Meetup - May 2017
Mobile First et AMP - Developers Meetup - May 2017Jahia Solutions Group
 
Nine Things we're Checking for a Mobile First Index by Nichola Stott in The I...
Nine Things we're Checking for a Mobile First Index by Nichola Stott in The I...Nine Things we're Checking for a Mobile First Index by Nichola Stott in The I...
Nine Things we're Checking for a Mobile First Index by Nichola Stott in The I...We Are Marketing
 
Brighton SEO July 2021 How JavaScript is preventing you from passing Core W...
Brighton SEO July 2021   How JavaScript is preventing you from passing Core W...Brighton SEO July 2021   How JavaScript is preventing you from passing Core W...
Brighton SEO July 2021 How JavaScript is preventing you from passing Core W...Izabela Wisniewska
 

Mais procurados (20)

Migration Best Practices - SMX West 2019
Migration Best Practices - SMX West 2019Migration Best Practices - SMX West 2019
Migration Best Practices - SMX West 2019
 
Three site speed optimisation tips to make your website REALLY fast - Brighto...
Three site speed optimisation tips to make your website REALLY fast - Brighto...Three site speed optimisation tips to make your website REALLY fast - Brighto...
Three site speed optimisation tips to make your website REALLY fast - Brighto...
 
Pubcon Vegas 2017 You're Going To Screw Up International SEO - Patrick Stox
Pubcon Vegas 2017 You're Going To Screw Up International SEO - Patrick StoxPubcon Vegas 2017 You're Going To Screw Up International SEO - Patrick Stox
Pubcon Vegas 2017 You're Going To Screw Up International SEO - Patrick Stox
 
Migration Best-Practices: Successfully re-launching your website - SMX New Yo...
Migration Best-Practices: Successfully re-launching your website - SMX New Yo...Migration Best-Practices: Successfully re-launching your website - SMX New Yo...
Migration Best-Practices: Successfully re-launching your website - SMX New Yo...
 
SEO Checklist for Google Mobile First Index
SEO Checklist for Google Mobile First IndexSEO Checklist for Google Mobile First Index
SEO Checklist for Google Mobile First Index
 
Use Google Docs to monitor SEO by pulling in Google Analytics #BrightonSEO
Use Google Docs to monitor SEO by pulling in Google Analytics #BrightonSEOUse Google Docs to monitor SEO by pulling in Google Analytics #BrightonSEO
Use Google Docs to monitor SEO by pulling in Google Analytics #BrightonSEO
 
What's in my SEO Toolbox: Linkbuilding Edition - SMX Milan 2014
What's in my SEO Toolbox: Linkbuilding Edition - SMX Milan 2014What's in my SEO Toolbox: Linkbuilding Edition - SMX Milan 2014
What's in my SEO Toolbox: Linkbuilding Edition - SMX Milan 2014
 
SearchLeeds 2018 - Bastian Grimm - Peak Ace - International site speed: Going...
SearchLeeds 2018 - Bastian Grimm - Peak Ace - International site speed: Going...SearchLeeds 2018 - Bastian Grimm - Peak Ace - International site speed: Going...
SearchLeeds 2018 - Bastian Grimm - Peak Ace - International site speed: Going...
 
OK Google, Whats next? - OMT Wiesbaden 2018
OK Google, Whats next? - OMT Wiesbaden 2018OK Google, Whats next? - OMT Wiesbaden 2018
OK Google, Whats next? - OMT Wiesbaden 2018
 
Super speed around the globe - SearchLeeds 2018
Super speed around the globe - SearchLeeds 2018Super speed around the globe - SearchLeeds 2018
Super speed around the globe - SearchLeeds 2018
 
AMP - SMX München 2018
AMP - SMX München 2018AMP - SMX München 2018
AMP - SMX München 2018
 
Migration Best Practices - SMX London 2018
Migration Best Practices - SMX London 2018Migration Best Practices - SMX London 2018
Migration Best Practices - SMX London 2018
 
Dynamic Rendering - is this really an SEO silver bullet? SMX WEST
Dynamic Rendering - is this really an SEO silver bullet? SMX WESTDynamic Rendering - is this really an SEO silver bullet? SMX WEST
Dynamic Rendering - is this really an SEO silver bullet? SMX WEST
 
SEO for Large Websites
SEO for Large WebsitesSEO for Large Websites
SEO for Large Websites
 
Migration Best Practices - Search Y 2019, Paris
Migration Best Practices - Search Y 2019, ParisMigration Best Practices - Search Y 2019, Paris
Migration Best Practices - Search Y 2019, Paris
 
Whats Next in SEO & CRO - 3XE Conference 2018 Dublin
Whats Next in SEO & CRO - 3XE Conference 2018 DublinWhats Next in SEO & CRO - 3XE Conference 2018 Dublin
Whats Next in SEO & CRO - 3XE Conference 2018 Dublin
 
Automating Google Lighthouse
Automating Google LighthouseAutomating Google Lighthouse
Automating Google Lighthouse
 
Mobile First et AMP - Developers Meetup - May 2017
Mobile First et AMP - Developers Meetup - May 2017Mobile First et AMP - Developers Meetup - May 2017
Mobile First et AMP - Developers Meetup - May 2017
 
Nine Things we're Checking for a Mobile First Index by Nichola Stott in The I...
Nine Things we're Checking for a Mobile First Index by Nichola Stott in The I...Nine Things we're Checking for a Mobile First Index by Nichola Stott in The I...
Nine Things we're Checking for a Mobile First Index by Nichola Stott in The I...
 
Brighton SEO July 2021 How JavaScript is preventing you from passing Core W...
Brighton SEO July 2021   How JavaScript is preventing you from passing Core W...Brighton SEO July 2021   How JavaScript is preventing you from passing Core W...
Brighton SEO July 2021 How JavaScript is preventing you from passing Core W...
 

Semelhante a Build your own analytics power tools

Easier and faster tagging with Kermit
Easier and faster tagging with KermitEasier and faster tagging with Kermit
Easier and faster tagging with KermitAlban Gérôme
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuningJohn McCaffrey
 
A web app in pure Clojure
A web app in pure ClojureA web app in pure Clojure
A web app in pure ClojureDane Schneider
 
Technical SEO Checklist For Developers.pdf
Technical SEO Checklist For Developers.pdfTechnical SEO Checklist For Developers.pdf
Technical SEO Checklist For Developers.pdfBluebash LLC
 
Rapid and Responsive - UX to Prototype with Bootstrap
Rapid and Responsive - UX to Prototype with BootstrapRapid and Responsive - UX to Prototype with Bootstrap
Rapid and Responsive - UX to Prototype with BootstrapJosh Jeffryes
 
Pearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET DeveloperPearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET DeveloperOfer Zelig
 
Best Practices for WordPress in Enterprise
Best Practices for WordPress in EnterpriseBest Practices for WordPress in Enterprise
Best Practices for WordPress in EnterpriseTaylor Lovett
 
Stapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoStapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoChristian Heilmann
 
BD Conf: Visit speed - Page speed is only the beginning
BD Conf: Visit speed - Page speed is only the beginningBD Conf: Visit speed - Page speed is only the beginning
BD Conf: Visit speed - Page speed is only the beginningPeter McLachlan
 
Best practices-wordpress-enterprise
Best practices-wordpress-enterpriseBest practices-wordpress-enterprise
Best practices-wordpress-enterpriseTaylor Lovett
 
Scaling with swagger
Scaling with swaggerScaling with swagger
Scaling with swaggerTony Tam
 
Progressive Enhancement using WSGI
Progressive Enhancement using WSGIProgressive Enhancement using WSGI
Progressive Enhancement using WSGIMatthew Wilkes
 
Azure Functions Real World Examples
Azure Functions Real World Examples Azure Functions Real World Examples
Azure Functions Real World Examples Yochay Kiriaty
 
Search Engine Optimization (Seo) for Developers
Search Engine Optimization (Seo) for DevelopersSearch Engine Optimization (Seo) for Developers
Search Engine Optimization (Seo) for DevelopersMatthew Robinson
 
Social dev camp_2011
Social dev camp_2011Social dev camp_2011
Social dev camp_2011Craig Ulliott
 
WTF: Where To Focus when you take over a Drupal project
WTF: Where To Focus when you take over a Drupal projectWTF: Where To Focus when you take over a Drupal project
WTF: Where To Focus when you take over a Drupal projectSymetris
 
Creating Hyper Performant Web Apps with React
Creating Hyper Performant Web Apps with ReactCreating Hyper Performant Web Apps with React
Creating Hyper Performant Web Apps with ReactJp DeVries
 

Semelhante a Build your own analytics power tools (20)

Easier and faster tagging with Kermit
Easier and faster tagging with KermitEasier and faster tagging with Kermit
Easier and faster tagging with Kermit
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuning
 
NullMQ @ PDX
NullMQ @ PDXNullMQ @ PDX
NullMQ @ PDX
 
A web app in pure Clojure
A web app in pure ClojureA web app in pure Clojure
A web app in pure Clojure
 
Technical SEO Checklist For Developers.pdf
Technical SEO Checklist For Developers.pdfTechnical SEO Checklist For Developers.pdf
Technical SEO Checklist For Developers.pdf
 
Rapid and Responsive - UX to Prototype with Bootstrap
Rapid and Responsive - UX to Prototype with BootstrapRapid and Responsive - UX to Prototype with Bootstrap
Rapid and Responsive - UX to Prototype with Bootstrap
 
Pearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET DeveloperPearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET Developer
 
Best Practices for WordPress in Enterprise
Best Practices for WordPress in EnterpriseBest Practices for WordPress in Enterprise
Best Practices for WordPress in Enterprise
 
Stapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San FranciscoStapling and patching the web of now - ForwardJS3, San Francisco
Stapling and patching the web of now - ForwardJS3, San Francisco
 
BD Conf: Visit speed - Page speed is only the beginning
BD Conf: Visit speed - Page speed is only the beginningBD Conf: Visit speed - Page speed is only the beginning
BD Conf: Visit speed - Page speed is only the beginning
 
Best practices-wordpress-enterprise
Best practices-wordpress-enterpriseBest practices-wordpress-enterprise
Best practices-wordpress-enterprise
 
Scaling with swagger
Scaling with swaggerScaling with swagger
Scaling with swagger
 
DCI - Free Seo Tools
DCI - Free Seo ToolsDCI - Free Seo Tools
DCI - Free Seo Tools
 
How to do a SEO Site Audit
How to do a SEO Site AuditHow to do a SEO Site Audit
How to do a SEO Site Audit
 
Progressive Enhancement using WSGI
Progressive Enhancement using WSGIProgressive Enhancement using WSGI
Progressive Enhancement using WSGI
 
Azure Functions Real World Examples
Azure Functions Real World Examples Azure Functions Real World Examples
Azure Functions Real World Examples
 
Search Engine Optimization (Seo) for Developers
Search Engine Optimization (Seo) for DevelopersSearch Engine Optimization (Seo) for Developers
Search Engine Optimization (Seo) for Developers
 
Social dev camp_2011
Social dev camp_2011Social dev camp_2011
Social dev camp_2011
 
WTF: Where To Focus when you take over a Drupal project
WTF: Where To Focus when you take over a Drupal projectWTF: Where To Focus when you take over a Drupal project
WTF: Where To Focus when you take over a Drupal project
 
Creating Hyper Performant Web Apps with React
Creating Hyper Performant Web Apps with ReactCreating Hyper Performant Web Apps with React
Creating Hyper Performant Web Apps with React
 

Mais de Alban Gérôme

Avoir de l’impact, autrement
Avoir de l’impact, autrementAvoir de l’impact, autrement
Avoir de l’impact, autrementAlban Gérôme
 
Earning more as a Digital or Web Analyst
Earning more as a Digital or Web AnalystEarning more as a Digital or Web Analyst
Earning more as a Digital or Web AnalystAlban Gérôme
 
Is it just me, or the C-suite doesn't care about data?
Is it just me, or the C-suite doesn't care about data?Is it just me, or the C-suite doesn't care about data?
Is it just me, or the C-suite doesn't care about data?Alban Gérôme
 
Cracking trading cards packs and web analytics
Cracking trading cards packs and web analyticsCracking trading cards packs and web analytics
Cracking trading cards packs and web analyticsAlban Gérôme
 
Spicy javascript: Create your first Chrome extension for web analytics QA
Spicy javascript: Create your first Chrome extension for web analytics QASpicy javascript: Create your first Chrome extension for web analytics QA
Spicy javascript: Create your first Chrome extension for web analytics QAAlban Gérôme
 
The us vs the uk web analytics job slideshare
The us vs the uk web analytics job slideshareThe us vs the uk web analytics job slideshare
The us vs the uk web analytics job slideshareAlban Gérôme
 
Implementing Web Analytics on Single Page Applications
Implementing Web Analytics on Single Page ApplicationsImplementing Web Analytics on Single Page Applications
Implementing Web Analytics on Single Page ApplicationsAlban Gérôme
 
Automating boring tasks with Powershell
Automating boring tasks with PowershellAutomating boring tasks with Powershell
Automating boring tasks with PowershellAlban Gérôme
 
Influence and Persuasion
Influence and PersuasionInfluence and Persuasion
Influence and PersuasionAlban Gérôme
 
Reshaping the Hype Cycle
Reshaping the Hype CycleReshaping the Hype Cycle
Reshaping the Hype CycleAlban Gérôme
 
Claiming credit for being data-driven
Claiming credit for being data-drivenClaiming credit for being data-driven
Claiming credit for being data-drivenAlban Gérôme
 
Acceptance, Accessible, Applicable et Auditable
Acceptance, Accessible, Applicable et AuditableAcceptance, Accessible, Applicable et Auditable
Acceptance, Accessible, Applicable et AuditableAlban Gérôme
 
Acceptance, Accessible, Actionable and Auditable
Acceptance, Accessible, Actionable and AuditableAcceptance, Accessible, Actionable and Auditable
Acceptance, Accessible, Actionable and AuditableAlban Gérôme
 
Are you still working for a data justified company?
Are you still working for a data justified company?Are you still working for a data justified company?
Are you still working for a data justified company?Alban Gérôme
 
Is data visualisation bullshit?
Is data visualisation bullshit?Is data visualisation bullshit?
Is data visualisation bullshit?Alban Gérôme
 
Acceptance, accessible, actionable and auditable
Acceptance, accessible, actionable and auditableAcceptance, accessible, actionable and auditable
Acceptance, accessible, actionable and auditableAlban Gérôme
 

Mais de Alban Gérôme (20)

Avoir de l’impact, autrement
Avoir de l’impact, autrementAvoir de l’impact, autrement
Avoir de l’impact, autrement
 
Earning more as a Digital or Web Analyst
Earning more as a Digital or Web AnalystEarning more as a Digital or Web Analyst
Earning more as a Digital or Web Analyst
 
Is it just me, or the C-suite doesn't care about data?
Is it just me, or the C-suite doesn't care about data?Is it just me, or the C-suite doesn't care about data?
Is it just me, or the C-suite doesn't care about data?
 
Cracking trading cards packs and web analytics
Cracking trading cards packs and web analyticsCracking trading cards packs and web analytics
Cracking trading cards packs and web analytics
 
Spicy javascript: Create your first Chrome extension for web analytics QA
Spicy javascript: Create your first Chrome extension for web analytics QASpicy javascript: Create your first Chrome extension for web analytics QA
Spicy javascript: Create your first Chrome extension for web analytics QA
 
The us vs the uk web analytics job slideshare
The us vs the uk web analytics job slideshareThe us vs the uk web analytics job slideshare
The us vs the uk web analytics job slideshare
 
Implementing Web Analytics on Single Page Applications
Implementing Web Analytics on Single Page ApplicationsImplementing Web Analytics on Single Page Applications
Implementing Web Analytics on Single Page Applications
 
Tagging differently
Tagging differentlyTagging differently
Tagging differently
 
Automating boring tasks with Powershell
Automating boring tasks with PowershellAutomating boring tasks with Powershell
Automating boring tasks with Powershell
 
Influence and Persuasion
Influence and PersuasionInfluence and Persuasion
Influence and Persuasion
 
Reshaping the Hype Cycle
Reshaping the Hype CycleReshaping the Hype Cycle
Reshaping the Hype Cycle
 
Claiming credit for being data-driven
Claiming credit for being data-drivenClaiming credit for being data-driven
Claiming credit for being data-driven
 
Acceptance, Accessible, Applicable et Auditable
Acceptance, Accessible, Applicable et AuditableAcceptance, Accessible, Applicable et Auditable
Acceptance, Accessible, Applicable et Auditable
 
Acceptance, Accessible, Actionable and Auditable
Acceptance, Accessible, Actionable and AuditableAcceptance, Accessible, Actionable and Auditable
Acceptance, Accessible, Actionable and Auditable
 
Logic or emotions
Logic or emotionsLogic or emotions
Logic or emotions
 
Hub and spoke model
Hub and spoke modelHub and spoke model
Hub and spoke model
 
Are you still working for a data justified company?
Are you still working for a data justified company?Are you still working for a data justified company?
Are you still working for a data justified company?
 
Persuasion
PersuasionPersuasion
Persuasion
 
Is data visualisation bullshit?
Is data visualisation bullshit?Is data visualisation bullshit?
Is data visualisation bullshit?
 
Acceptance, accessible, actionable and auditable
Acceptance, accessible, actionable and auditableAcceptance, accessible, actionable and auditable
Acceptance, accessible, actionable and auditable
 

Último

Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Excelmac1
 
NSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentationNSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentationMarko4394
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa494f574xmv
 
Elevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New OrleansElevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New Orleanscorenetworkseo
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITMgdsc13
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书zdzoqco
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Sonam Pathan
 
Q4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxQ4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxeditsforyah
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一z xss
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxDyna Gilbert
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一Fs
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书rnrncn29
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一Fs
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书rnrncn29
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhimiss dipika
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Sonam Pathan
 
SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predieusebiomeyer
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一Fs
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作ys8omjxb
 

Último (20)

Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...
 
NSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentationNSX-T and Service Interfaces presentation
NSX-T and Service Interfaces presentation
 
Film cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasaFilm cover research (1).pptxsdasdasdasdasdasa
Film cover research (1).pptxsdasdasdasdasdasa
 
Elevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New OrleansElevate Your Business with Our IT Expertise in New Orleans
Elevate Your Business with Our IT Expertise in New Orleans
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITM
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
 
Q4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptxQ4-1-Illustrating-Hypothesis-Testing.pptx
Q4-1-Illustrating-Hypothesis-Testing.pptx
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
 
Top 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptxTop 10 Interactive Website Design Trends in 2024.pptx
Top 10 Interactive Website Design Trends in 2024.pptx
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
 
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
『澳洲文凭』买詹姆士库克大学毕业证书成绩单办理澳洲JCU文凭学位证书
 
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
定制(Management毕业证书)新加坡管理大学毕业证成绩单原版一比一
 
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
『澳洲文凭』买拉筹伯大学毕业证书成绩单办理澳洲LTU文凭学位证书
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhi
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170
 
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
young call girls in Uttam Nagar🔝 9953056974 🔝 Delhi escort Service
 
SCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is prediSCM Symposium PPT Format Customer loyalty is predi
SCM Symposium PPT Format Customer loyalty is predi
 
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
定制(AUT毕业证书)新西兰奥克兰理工大学毕业证成绩单原版一比一
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
 

Build your own analytics power tools

  • 1. Build your own analytics power tools like an artisan Alban Gérôme @albangerome MeasureCamp London XII 24 March 2018
  • 2.
  • 4. An epiphany If I could strip down the code of the debugger to its bare essentials
  • 5. An epiphany If I could strip down the code of the debugger to its bare essentials, I could automate QA
  • 6.
  • 8. Minified, impenetrable code • Browsers can’t tell you anything about web requests, not in client- side Javascript
  • 9. Minified, impenetrable code • Browsers can’t tell you anything about web requests, not in client- side Javascript • But somehow, this debugger does just that
  • 10. Minified, impenetrable code • Browsers can’t tell you anything about web requests, not in client- side Javascript • But somehow, this debugger does just that • The analytics library exposes a variable containing an <img> element with src attribute and that’s the whole tracking request URL
  • 11. Minified, impenetrable code • Browsers can’t tell you anything about web requests, not in client- side Javascript • But somehow, this debugger does just that • The analytics library exposes a variable containing an <img> element with src attribute and that’s the whole tracking request URL • I bet the other analytics tools this debugger supports all do something similar but how could we expand this to more tools?
  • 12.
  • 13. Fool me • Trigger artificial click, change and blur events on all page elements and I can get all the raw tracking requests
  • 14. Fool me • Trigger artificial click, change and blur events on all page elements and I can get all the raw tracking requests • I could represent the page view and the interactions in JSON format
  • 15. Fool me • Trigger artificial click, change and blur events on all page elements and I can get all the raw tracking requests • I could represent the page view and the interactions in JSON format • I could represent our tracking requirements in JSON format too
  • 16. Fool me If the developers could generate the first JSON on the fly and compare it with our tagging guide JSON, they could catch implementation errors at build time
  • 17. Fool me If the developers could generate the first JSON on the fly and compare it with our tagging guide JSON, they could catch implementation errors at build time, before going live
  • 18.
  • 19. When the tough gets tough…
  • 20. When the tough gets tough… • Some links are outbound links
  • 21. When the tough gets tough… • Some links are outbound links • I want to trigger the Javascript events, get them to trigger an analytics tracking request but nothing else
  • 22. When the tough gets tough… • Some links are outbound links • I want to trigger the Javascript events, get them to trigger an analytics tracking request but nothing else • Some events still fall through the cracks
  • 23. When the tough gets tough… • Some links are outbound links • I want to trigger the Javascript events, get them to trigger an analytics tracking request but nothing else • Some events still fall through the cracks • How am I going to identify which elements are tracked?
  • 24. When the tough gets tough… • Some links are outbound links • I want to trigger the Javascript events, get them to trigger an analytics tracking request but nothing else • Some events still fall through the cracks • How am I going to identify which elements are tracked? • How can I make the script run fast enough?
  • 25. When the tough gets tough… • Some links are outbound links • I want to trigger the Javascript events, get them to trigger an analytics tracking request but nothing else • Some events still fall through the cracks • How am I going to identify which elements are tracked? • How can I make the script run fast enough? • THE #@%£ script worked yesterday and today it doesn’t!
  • 26. When the tough gets tough… • Some links are outbound links • I want to trigger the Javascript events, get them to trigger an analytics tracking request but nothing else • Some events still fall through the cracks • How am I going to identify which elements are tracked? • How can I make the script run fast enough? • THE #@%£ script worked yesterday and today it doesn’t! • Why can’t I replace the cursor to a spinner while the script runs?
  • 27.
  • 28. Could a Chrome extension work?
  • 29. Could a Chrome extension work? • A manifest file with all permissions and settings
  • 30. Could a Chrome extension work? • A manifest file with all permissions and settings • A content script that runs on the page you want to process
  • 31. Could a Chrome extension work? • A manifest file with all permissions and settings • A content script that runs on the page you want to process • A popup script that runs inside your extension popup if your extension has one
  • 32. Could a Chrome extension work? • A manifest file with all permissions and settings • A content script that runs on the page you want to process • A popup script that runs inside your extension popup if your extension has one • A background script that sits between the content and popup scripts with some limitations but also extra power
  • 33. Could a Chrome extension work? • A manifest file with all permissions and settings • A content script that runs on the page you want to process • A popup script that runs inside your extension popup if your extension has one • A background script that sits between the content and popup scripts with some limitations but also extra power • A messaging system to pass information between all three scripts
  • 34. Could a Chrome extension work? • A manifest file with all permissions and settings • A content script that runs on the page you want to process • A popup script that runs inside your extension popup if your extension has one • A background script that sits between the content and popup scripts with some limitations but also extra power • A messaging system to pass information between all three scripts • A limited-capacity but useful common data storage to remember custom settings
  • 35.
  • 36. Chrome extensions powers • The background script can report and manage all web requests before and after, any analytics tool that make web requests
  • 37. Chrome extensions powers • The background script can report and manage all web requests before and after, any analytics tool that make web requests – oh yeah!
  • 38. Chrome extensions powers • The background script can report and manage all web requests before and after, any analytics tool that make web requests – oh yeah! • This lets you cancel your test traffic and keep your server calls low or let the requests reach your analytics servers and see the hit in a test account or redirect them to somewhere else
  • 39. Chrome extensions powers • The background script can report and manage all web requests before and after, any analytics tool that make web requests – oh yeah! • This lets you cancel your test traffic and keep your server calls low or let the requests reach your analytics servers and see the hit in a test account or redirect them to somewhere else – how flexible!
  • 40. Chrome extensions powers • The background script can report and manage all web requests before and after, any analytics tool that make web requests – oh yeah! • This lets you cancel your test traffic and keep your server calls low or let the requests reach your analytics servers and see the hit in a test account or redirect them to somewhere else – how flexible! • This lets you do screenshots – only what’s visible in the window but some extensions can generate full page screenshots
  • 41. Chrome extensions powers • The background script can report and manage all web requests before and after, any analytics tool that make web requests – oh yeah! • This lets you cancel your test traffic and keep your server calls low or let the requests reach your analytics servers and see the hit in a test account or redirect them to somewhere else – how flexible! • This lets you do screenshots – only what’s visible in the window but some extensions can generate full page screenshots – how useful!
  • 42. Chrome extensions powers • The background script can report and manage all web requests before and after, any analytics tool that make web requests – oh yeah! • This lets you cancel your test traffic and keep your server calls low or let the requests reach your analytics servers and see the hit in a test account or redirect them to somewhere else – how flexible! • This lets you do screenshots – only what’s visible in the window but some extensions can generate full page screenshots – how useful! • You could actually package this into a commercial product
  • 43.
  • 45. Useful Javascript libraries for us • jQuery – although you won’t care about cross-browser support, it will make your code leaner and easier to maintain and add new features
  • 46. Useful Javascript libraries for us • jQuery – although you won’t care about cross-browser support, it will make your code leaner and easier to maintain and add new features • Bootstrap – makes interfaces look very slick
  • 47. Useful Javascript libraries for us • jQuery – although you won’t care about cross-browser support, it will make your code leaner and easier to maintain and add new features • Bootstrap – makes interfaces look very slick • DataTables – a jQuery module that lets you convert Javascript arrays and JSONs into sortable, searchable, paginated tables – perfect to represent our decoded page view and interaction tracking requests
  • 48. Useful Javascript libraries for us • jQuery – although you won’t care about cross-browser support, it will make your code leaner and easier to maintain and add new features • Bootstrap – makes interfaces look very slick • DataTables – a jQuery module that lets you convert Javascript arrays and JSONs into sortable, searchable, paginated tables – perfect to represent our decoded page view and interaction tracking requests • jsPDF – a library that will generate a PDF from a HTML document. Imagine generating a snazzy PDF report with your full page screenshot showing which elements are tracked and a page number reference for all the details about what each element tracks
  • 49.