SlideShare a Scribd company logo
SUPERWEEK 2020
Punchcard Prize Entry
Presented by David Vallejo
29th Jan. 2020
Galyatető - HU
Super Week 2020 . Punchard Prize
SUPERWEEK 2020
Punchcard Prize Entry
Presented by David Vallejo
29th Jan. 2020
Galyatető - HU
Who I am
David Vallejo
Implementation Consultant
Blog: www.thyngster.com
@thyng
SUPERWEEK 2020
Punchcard Prize Entry
Presented by David Vallejo
29th Jan. 2020
Galyatető - HU
Presenting …
In the worst Timing possible for releasing this …
After Today’s GTM Team Announcement
SUPERWEEK 2020
Punchcard Prize Entry
Presented by David Vallejo
29th Jan. 2020
Galyatető - HU
TMS . Pseudo Server-Side
Running ANYTag Management System in a Server-Side mode
Tool Goal
Fire our hits or pixels via server-side
relying on any Tag Management System
as a launcher.
We will be using
1 NODE JS ( as a webserver/ webhooks endpoint )
2 Puppeteer ( Chrome Headless Browser )
How it works
.
How it works
.
● A public webhooks endpoint is
created (
https://sstms.ourdomain.com/eve
nts)
How it works
.
● A public webhooks endpoint is
created (
https://sstms.ourdomain.com/eve
nts)
● Events are pushed into an internal
Queue for processing
How it works
.
● A public webhooks endpoint is
created (
https://sstms.ourdomain.com/eve
nts)
● Events are pushed into an internal
Queue for processing
● Each 4 events or 30 seconds the
events are dispatched to a
headless chrome session via a
Puppeteer instance
Confidential Customized for Lorem Ipsum LLC Version 1.0
What are the webhooks
Why we need a Queue
Launching a browser can be a very
cpu/ram consuming process, so
loading a puppeteer instance on
each page load would be a killer
solution, therefore we’ll be using a
Queue System, in order to be able to
batch the events.
The Queue
The queue will be
processed when:
- The queue has more than 4 events
or
- After 30 seconds since the last
queue release
How it Works
1 NodeJS will act as a
webhook endpoint
2 We push events to our
NodeJS endpoint
3 When the Queue is ready
a Puppeteer instance is
launched
4 An html is loaded where
our GTM container and
our pushes are
dynamically pushed in
How we push the events
POST REQUEST
http://localhost/event/{{our-event-name}}
Request Body
{ pageType: ‘pdp’ }
Content-Type
application/json
How we push the events
POST REQUEST
http://localhost/event/{{our-event-name}}
Request Body
{ pageType: ‘pdp’ }
Content-Type
application/json
How we push the events
POST REQUEST
http://localhost/event/{{our-event-name}}
Request Body
{ pageType: ‘pdp’ }
Content-Type
application/json
How we push the events
POSTREQUEST
http://localhost/event/{{our-event-name}}
RequestBody
{ pageType: ‘confirmation page’ }
Content-Type
application/json
.
Demo
Since a demo is worth a
thousand slides, let’s see
it in action
To have in mind
● This is not meant to be a production ready tool ( it should work fine under
low events environments ).
● Implemented Queue is currently in-memory -> If the NodeJS instance is
restarted you’ll lost the non-processed events.
Fair Play
https://github.com/david-vallejo-com/server-side-tms/
Thank you,
SuperWeekers
@thyng

More Related Content

Similar to SPWK 2020 - Pseudo Server Side tms - punchcard prize entry

Http/2 - What's it all about?
Http/2  - What's it all about?Http/2  - What's it all about?
Http/2 - What's it all about?Andy Davies
 
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
Giacomo Zecchini
 
夜宴42期《Gadgets》
夜宴42期《Gadgets》夜宴42期《Gadgets》
夜宴42期《Gadgets》Koubei Banquet
 
How to Develop Progressive Web Apps in Flutter – Step by Step Guide.pptx
How to Develop Progressive Web Apps in Flutter – Step by Step Guide.pptxHow to Develop Progressive Web Apps in Flutter – Step by Step Guide.pptx
How to Develop Progressive Web Apps in Flutter – Step by Step Guide.pptx
BOSC Tech Labs
 
Puppeteer - Headless Chrome Node API
Puppeteer - Headless Chrome Node APIPuppeteer - Headless Chrome Node API
Puppeteer - Headless Chrome Node API
ubunturk
 
Reactive & Realtime Web Applications with TurboGears2
Reactive & Realtime Web Applications with TurboGears2Reactive & Realtime Web Applications with TurboGears2
Reactive & Realtime Web Applications with TurboGears2Alessandro Molina
 
WebRTC: A front-end perspective
WebRTC: A front-end perspectiveWebRTC: A front-end perspective
WebRTC: A front-end perspective
shwetank
 
Rapid scaling in_the_cloud_with_puppet
Rapid scaling in_the_cloud_with_puppetRapid scaling in_the_cloud_with_puppet
Rapid scaling in_the_cloud_with_puppetCarl Caum
 
Velocity EU 2012 - Third party scripts and you
Velocity EU 2012 - Third party scripts and youVelocity EU 2012 - Third party scripts and you
Velocity EU 2012 - Third party scripts and you
Patrick Meenan
 
When third parties stop being polite... and start getting real
When third parties stop being polite... and start getting realWhen third parties stop being polite... and start getting real
When third parties stop being polite... and start getting real
Charles Vazac
 
Fluent 2018: When third parties stop being polite... and start getting real
Fluent 2018: When third parties stop being polite... and start getting realFluent 2018: When third parties stop being polite... and start getting real
Fluent 2018: When third parties stop being polite... and start getting real
Akamai Developers & Admins
 
When Third Parties Stop Being Polite... and Start Getting Real
When Third Parties Stop Being Polite... and Start Getting RealWhen Third Parties Stop Being Polite... and Start Getting Real
When Third Parties Stop Being Polite... and Start Getting Real
Nicholas Jansma
 
Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017
Matt Raible
 
A web perf dashboard up & running in 90 minutes presentation
A web perf dashboard up & running in 90 minutes presentationA web perf dashboard up & running in 90 minutes presentation
A web perf dashboard up & running in 90 minutes presentation
Justin Dorfman
 
An approach to responsive, realtime with Backbone.js and WebSockets
An approach to responsive, realtime with Backbone.js and WebSocketsAn approach to responsive, realtime with Backbone.js and WebSockets
An approach to responsive, realtime with Backbone.js and WebSockets
Andrei Sebastian Cîmpean
 
How to start ui automation in 15 mins with Puppeteer
How to start ui automation in 15 mins with PuppeteerHow to start ui automation in 15 mins with Puppeteer
How to start ui automation in 15 mins with Puppeteer
Oleksandr Pelykh
 
Swift hardware hacking @ try! Swift
Swift hardware hacking @ try! SwiftSwift hardware hacking @ try! Swift
Swift hardware hacking @ try! Swift
Sally Shepard
 
AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018
AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018
AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018
Andy Davies
 
Build and Deploy a Python Web App to Amazon in 30 Mins
Build and Deploy a Python Web App to Amazon in 30 MinsBuild and Deploy a Python Web App to Amazon in 30 Mins
Build and Deploy a Python Web App to Amazon in 30 Mins
Jeff Hull
 

Similar to SPWK 2020 - Pseudo Server Side tms - punchcard prize entry (20)

Http/2 - What's it all about?
Http/2  - What's it all about?Http/2  - What's it all about?
Http/2 - What's it all about?
 
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
 
夜宴42期《Gadgets》
夜宴42期《Gadgets》夜宴42期《Gadgets》
夜宴42期《Gadgets》
 
Banquet 42
Banquet 42Banquet 42
Banquet 42
 
How to Develop Progressive Web Apps in Flutter – Step by Step Guide.pptx
How to Develop Progressive Web Apps in Flutter – Step by Step Guide.pptxHow to Develop Progressive Web Apps in Flutter – Step by Step Guide.pptx
How to Develop Progressive Web Apps in Flutter – Step by Step Guide.pptx
 
Puppeteer - Headless Chrome Node API
Puppeteer - Headless Chrome Node APIPuppeteer - Headless Chrome Node API
Puppeteer - Headless Chrome Node API
 
Reactive & Realtime Web Applications with TurboGears2
Reactive & Realtime Web Applications with TurboGears2Reactive & Realtime Web Applications with TurboGears2
Reactive & Realtime Web Applications with TurboGears2
 
WebRTC: A front-end perspective
WebRTC: A front-end perspectiveWebRTC: A front-end perspective
WebRTC: A front-end perspective
 
Rapid scaling in_the_cloud_with_puppet
Rapid scaling in_the_cloud_with_puppetRapid scaling in_the_cloud_with_puppet
Rapid scaling in_the_cloud_with_puppet
 
Velocity EU 2012 - Third party scripts and you
Velocity EU 2012 - Third party scripts and youVelocity EU 2012 - Third party scripts and you
Velocity EU 2012 - Third party scripts and you
 
When third parties stop being polite... and start getting real
When third parties stop being polite... and start getting realWhen third parties stop being polite... and start getting real
When third parties stop being polite... and start getting real
 
Fluent 2018: When third parties stop being polite... and start getting real
Fluent 2018: When third parties stop being polite... and start getting realFluent 2018: When third parties stop being polite... and start getting real
Fluent 2018: When third parties stop being polite... and start getting real
 
When Third Parties Stop Being Polite... and Start Getting Real
When Third Parties Stop Being Polite... and Start Getting RealWhen Third Parties Stop Being Polite... and Start Getting Real
When Third Parties Stop Being Polite... and Start Getting Real
 
Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017
 
A web perf dashboard up & running in 90 minutes presentation
A web perf dashboard up & running in 90 minutes presentationA web perf dashboard up & running in 90 minutes presentation
A web perf dashboard up & running in 90 minutes presentation
 
An approach to responsive, realtime with Backbone.js and WebSockets
An approach to responsive, realtime with Backbone.js and WebSocketsAn approach to responsive, realtime with Backbone.js and WebSockets
An approach to responsive, realtime with Backbone.js and WebSockets
 
How to start ui automation in 15 mins with Puppeteer
How to start ui automation in 15 mins with PuppeteerHow to start ui automation in 15 mins with Puppeteer
How to start ui automation in 15 mins with Puppeteer
 
Swift hardware hacking @ try! Swift
Swift hardware hacking @ try! SwiftSwift hardware hacking @ try! Swift
Swift hardware hacking @ try! Swift
 
AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018
AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018
AB Testing, Ads and other 3rd party tags - London WebPerf - March 2018
 
Build and Deploy a Python Web App to Amazon in 30 Mins
Build and Deploy a Python Web App to Amazon in 30 MinsBuild and Deploy a Python Web App to Amazon in 30 Mins
Build and Deploy a Python Web App to Amazon in 30 Mins
 

More from thyngster

EMERCE - 2024 - AMSTERDAM - CROSS-PLATFORM TRACKING WITH GOOGLE ANALYTICS.pptx
EMERCE - 2024 - AMSTERDAM - CROSS-PLATFORM  TRACKING WITH GOOGLE ANALYTICS.pptxEMERCE - 2024 - AMSTERDAM - CROSS-PLATFORM  TRACKING WITH GOOGLE ANALYTICS.pptx
EMERCE - 2024 - AMSTERDAM - CROSS-PLATFORM TRACKING WITH GOOGLE ANALYTICS.pptx
thyngster
 
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024
thyngster
 
MCCZ - Analytics Firewall - Prague - 2023.pdf
MCCZ - Analytics Firewall - Prague - 2023.pdfMCCZ - Analytics Firewall - Prague - 2023.pdf
MCCZ - Analytics Firewall - Prague - 2023.pdf
thyngster
 
MCNL - AMP Tracking with Google Analytics 4.pptx
MCNL - AMP Tracking with Google Analytics 4.pptxMCNL - AMP Tracking with Google Analytics 4.pptx
MCNL - AMP Tracking with Google Analytics 4.pptx
thyngster
 
UNTAGGED.DAY #1 . Seguimiento de aplicaciones con Firebase_GA4
UNTAGGED.DAY #1 . Seguimiento de aplicaciones con Firebase_GA4UNTAGGED.DAY #1 . Seguimiento de aplicaciones con Firebase_GA4
UNTAGGED.DAY #1 . Seguimiento de aplicaciones con Firebase_GA4
thyngster
 
SPWK 2020 - Analytics Debugger - Mobile Websites Implementations Debugging ...
SPWK 2020  -  Analytics Debugger - Mobile Websites Implementations Debugging ...SPWK 2020  -  Analytics Debugger - Mobile Websites Implementations Debugging ...
SPWK 2020 - Analytics Debugger - Mobile Websites Implementations Debugging ...
thyngster
 
[Measure Camp Madrid 2019] Google Tag Manager - Custom Templates (Plantillas ...
[Measure Camp Madrid 2019] Google Tag Manager - Custom Templates (Plantillas ...[Measure Camp Madrid 2019] Google Tag Manager - Custom Templates (Plantillas ...
[Measure Camp Madrid 2019] Google Tag Manager - Custom Templates (Plantillas ...
thyngster
 

More from thyngster (7)

EMERCE - 2024 - AMSTERDAM - CROSS-PLATFORM TRACKING WITH GOOGLE ANALYTICS.pptx
EMERCE - 2024 - AMSTERDAM - CROSS-PLATFORM  TRACKING WITH GOOGLE ANALYTICS.pptxEMERCE - 2024 - AMSTERDAM - CROSS-PLATFORM  TRACKING WITH GOOGLE ANALYTICS.pptx
EMERCE - 2024 - AMSTERDAM - CROSS-PLATFORM TRACKING WITH GOOGLE ANALYTICS.pptx
 
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024
 
MCCZ - Analytics Firewall - Prague - 2023.pdf
MCCZ - Analytics Firewall - Prague - 2023.pdfMCCZ - Analytics Firewall - Prague - 2023.pdf
MCCZ - Analytics Firewall - Prague - 2023.pdf
 
MCNL - AMP Tracking with Google Analytics 4.pptx
MCNL - AMP Tracking with Google Analytics 4.pptxMCNL - AMP Tracking with Google Analytics 4.pptx
MCNL - AMP Tracking with Google Analytics 4.pptx
 
UNTAGGED.DAY #1 . Seguimiento de aplicaciones con Firebase_GA4
UNTAGGED.DAY #1 . Seguimiento de aplicaciones con Firebase_GA4UNTAGGED.DAY #1 . Seguimiento de aplicaciones con Firebase_GA4
UNTAGGED.DAY #1 . Seguimiento de aplicaciones con Firebase_GA4
 
SPWK 2020 - Analytics Debugger - Mobile Websites Implementations Debugging ...
SPWK 2020  -  Analytics Debugger - Mobile Websites Implementations Debugging ...SPWK 2020  -  Analytics Debugger - Mobile Websites Implementations Debugging ...
SPWK 2020 - Analytics Debugger - Mobile Websites Implementations Debugging ...
 
[Measure Camp Madrid 2019] Google Tag Manager - Custom Templates (Plantillas ...
[Measure Camp Madrid 2019] Google Tag Manager - Custom Templates (Plantillas ...[Measure Camp Madrid 2019] Google Tag Manager - Custom Templates (Plantillas ...
[Measure Camp Madrid 2019] Google Tag Manager - Custom Templates (Plantillas ...
 

Recently uploaded

Getting started with Amazon Bedrock Studio and Control Tower
Getting started with Amazon Bedrock Studio and Control TowerGetting started with Amazon Bedrock Studio and Control Tower
Getting started with Amazon Bedrock Studio and Control Tower
Vladimir Samoylov
 
Doctoral Symposium at the 17th IEEE International Conference on Software Test...
Doctoral Symposium at the 17th IEEE International Conference on Software Test...Doctoral Symposium at the 17th IEEE International Conference on Software Test...
Doctoral Symposium at the 17th IEEE International Conference on Software Test...
Sebastiano Panichella
 
Gregory Harris' Civics Presentation.pptx
Gregory Harris' Civics Presentation.pptxGregory Harris' Civics Presentation.pptx
Gregory Harris' Civics Presentation.pptx
gharris9
 
0x01 - Newton's Third Law: Static vs. Dynamic Abusers
0x01 - Newton's Third Law:  Static vs. Dynamic Abusers0x01 - Newton's Third Law:  Static vs. Dynamic Abusers
0x01 - Newton's Third Law: Static vs. Dynamic Abusers
OWASP Beja
 
AWANG ANIQKMALBIN AWANG TAJUDIN B22080004 ASSIGNMENT 2 MPU3193 PHILOSOPHY AND...
AWANG ANIQKMALBIN AWANG TAJUDIN B22080004 ASSIGNMENT 2 MPU3193 PHILOSOPHY AND...AWANG ANIQKMALBIN AWANG TAJUDIN B22080004 ASSIGNMENT 2 MPU3193 PHILOSOPHY AND...
AWANG ANIQKMALBIN AWANG TAJUDIN B22080004 ASSIGNMENT 2 MPU3193 PHILOSOPHY AND...
AwangAniqkmals
 
Burning Issue Presentation By Kenmaryon.pdf
Burning Issue Presentation By Kenmaryon.pdfBurning Issue Presentation By Kenmaryon.pdf
Burning Issue Presentation By Kenmaryon.pdf
kkirkland2
 
Obesity causes and management and associated medical conditions
Obesity causes and management and associated medical conditionsObesity causes and management and associated medical conditions
Obesity causes and management and associated medical conditions
Faculty of Medicine And Health Sciences
 
Supercharge your AI - SSP Industry Breakout Session 2024-v2_1.pdf
Supercharge your AI - SSP Industry Breakout Session 2024-v2_1.pdfSupercharge your AI - SSP Industry Breakout Session 2024-v2_1.pdf
Supercharge your AI - SSP Industry Breakout Session 2024-v2_1.pdf
Access Innovations, Inc.
 
Presentatie 8. Joost van der Linde & Daniel Anderton - Eliq 28 mei 2024
Presentatie 8. Joost van der Linde & Daniel Anderton - Eliq 28 mei 2024Presentatie 8. Joost van der Linde & Daniel Anderton - Eliq 28 mei 2024
Presentatie 8. Joost van der Linde & Daniel Anderton - Eliq 28 mei 2024
Dutch Power
 
Tom tresser burning issue.pptx My Burning issue
Tom tresser burning issue.pptx My Burning issueTom tresser burning issue.pptx My Burning issue
Tom tresser burning issue.pptx My Burning issue
amekonnen
 
Announcement of 18th IEEE International Conference on Software Testing, Verif...
Announcement of 18th IEEE International Conference on Software Testing, Verif...Announcement of 18th IEEE International Conference on Software Testing, Verif...
Announcement of 18th IEEE International Conference on Software Testing, Verif...
Sebastiano Panichella
 
Acorn Recovery: Restore IT infra within minutes
Acorn Recovery: Restore IT infra within minutesAcorn Recovery: Restore IT infra within minutes
Acorn Recovery: Restore IT infra within minutes
IP ServerOne
 
Bonzo subscription_hjjjjjjjj5hhhhhhh_2024.pdf
Bonzo subscription_hjjjjjjjj5hhhhhhh_2024.pdfBonzo subscription_hjjjjjjjj5hhhhhhh_2024.pdf
Bonzo subscription_hjjjjjjjj5hhhhhhh_2024.pdf
khadija278284
 
Presentatie 4. Jochen Cremer - TU Delft 28 mei 2024
Presentatie 4. Jochen Cremer - TU Delft 28 mei 2024Presentatie 4. Jochen Cremer - TU Delft 28 mei 2024
Presentatie 4. Jochen Cremer - TU Delft 28 mei 2024
Dutch Power
 
Media as a Mind Controlling Strategy In Old and Modern Era
Media as a Mind Controlling Strategy In Old and Modern EraMedia as a Mind Controlling Strategy In Old and Modern Era
Media as a Mind Controlling Strategy In Old and Modern Era
faizulhassanfaiz1670
 
International Workshop on Artificial Intelligence in Software Testing
International Workshop on Artificial Intelligence in Software TestingInternational Workshop on Artificial Intelligence in Software Testing
International Workshop on Artificial Intelligence in Software Testing
Sebastiano Panichella
 
María Carolina Martínez - eCommerce Day Colombia 2024
María Carolina Martínez - eCommerce Day Colombia 2024María Carolina Martínez - eCommerce Day Colombia 2024
María Carolina Martínez - eCommerce Day Colombia 2024
eCommerce Institute
 
Bitcoin Lightning wallet and tic-tac-toe game XOXO
Bitcoin Lightning wallet and tic-tac-toe game XOXOBitcoin Lightning wallet and tic-tac-toe game XOXO
Bitcoin Lightning wallet and tic-tac-toe game XOXO
Matjaž Lipuš
 
somanykidsbutsofewfathers-140705000023-phpapp02.pptx
somanykidsbutsofewfathers-140705000023-phpapp02.pptxsomanykidsbutsofewfathers-140705000023-phpapp02.pptx
somanykidsbutsofewfathers-140705000023-phpapp02.pptx
Howard Spence
 
Competition and Regulation in Professional Services – KLEINER – June 2024 OEC...
Competition and Regulation in Professional Services – KLEINER – June 2024 OEC...Competition and Regulation in Professional Services – KLEINER – June 2024 OEC...
Competition and Regulation in Professional Services – KLEINER – June 2024 OEC...
OECD Directorate for Financial and Enterprise Affairs
 

Recently uploaded (20)

Getting started with Amazon Bedrock Studio and Control Tower
Getting started with Amazon Bedrock Studio and Control TowerGetting started with Amazon Bedrock Studio and Control Tower
Getting started with Amazon Bedrock Studio and Control Tower
 
Doctoral Symposium at the 17th IEEE International Conference on Software Test...
Doctoral Symposium at the 17th IEEE International Conference on Software Test...Doctoral Symposium at the 17th IEEE International Conference on Software Test...
Doctoral Symposium at the 17th IEEE International Conference on Software Test...
 
Gregory Harris' Civics Presentation.pptx
Gregory Harris' Civics Presentation.pptxGregory Harris' Civics Presentation.pptx
Gregory Harris' Civics Presentation.pptx
 
0x01 - Newton's Third Law: Static vs. Dynamic Abusers
0x01 - Newton's Third Law:  Static vs. Dynamic Abusers0x01 - Newton's Third Law:  Static vs. Dynamic Abusers
0x01 - Newton's Third Law: Static vs. Dynamic Abusers
 
AWANG ANIQKMALBIN AWANG TAJUDIN B22080004 ASSIGNMENT 2 MPU3193 PHILOSOPHY AND...
AWANG ANIQKMALBIN AWANG TAJUDIN B22080004 ASSIGNMENT 2 MPU3193 PHILOSOPHY AND...AWANG ANIQKMALBIN AWANG TAJUDIN B22080004 ASSIGNMENT 2 MPU3193 PHILOSOPHY AND...
AWANG ANIQKMALBIN AWANG TAJUDIN B22080004 ASSIGNMENT 2 MPU3193 PHILOSOPHY AND...
 
Burning Issue Presentation By Kenmaryon.pdf
Burning Issue Presentation By Kenmaryon.pdfBurning Issue Presentation By Kenmaryon.pdf
Burning Issue Presentation By Kenmaryon.pdf
 
Obesity causes and management and associated medical conditions
Obesity causes and management and associated medical conditionsObesity causes and management and associated medical conditions
Obesity causes and management and associated medical conditions
 
Supercharge your AI - SSP Industry Breakout Session 2024-v2_1.pdf
Supercharge your AI - SSP Industry Breakout Session 2024-v2_1.pdfSupercharge your AI - SSP Industry Breakout Session 2024-v2_1.pdf
Supercharge your AI - SSP Industry Breakout Session 2024-v2_1.pdf
 
Presentatie 8. Joost van der Linde & Daniel Anderton - Eliq 28 mei 2024
Presentatie 8. Joost van der Linde & Daniel Anderton - Eliq 28 mei 2024Presentatie 8. Joost van der Linde & Daniel Anderton - Eliq 28 mei 2024
Presentatie 8. Joost van der Linde & Daniel Anderton - Eliq 28 mei 2024
 
Tom tresser burning issue.pptx My Burning issue
Tom tresser burning issue.pptx My Burning issueTom tresser burning issue.pptx My Burning issue
Tom tresser burning issue.pptx My Burning issue
 
Announcement of 18th IEEE International Conference on Software Testing, Verif...
Announcement of 18th IEEE International Conference on Software Testing, Verif...Announcement of 18th IEEE International Conference on Software Testing, Verif...
Announcement of 18th IEEE International Conference on Software Testing, Verif...
 
Acorn Recovery: Restore IT infra within minutes
Acorn Recovery: Restore IT infra within minutesAcorn Recovery: Restore IT infra within minutes
Acorn Recovery: Restore IT infra within minutes
 
Bonzo subscription_hjjjjjjjj5hhhhhhh_2024.pdf
Bonzo subscription_hjjjjjjjj5hhhhhhh_2024.pdfBonzo subscription_hjjjjjjjj5hhhhhhh_2024.pdf
Bonzo subscription_hjjjjjjjj5hhhhhhh_2024.pdf
 
Presentatie 4. Jochen Cremer - TU Delft 28 mei 2024
Presentatie 4. Jochen Cremer - TU Delft 28 mei 2024Presentatie 4. Jochen Cremer - TU Delft 28 mei 2024
Presentatie 4. Jochen Cremer - TU Delft 28 mei 2024
 
Media as a Mind Controlling Strategy In Old and Modern Era
Media as a Mind Controlling Strategy In Old and Modern EraMedia as a Mind Controlling Strategy In Old and Modern Era
Media as a Mind Controlling Strategy In Old and Modern Era
 
International Workshop on Artificial Intelligence in Software Testing
International Workshop on Artificial Intelligence in Software TestingInternational Workshop on Artificial Intelligence in Software Testing
International Workshop on Artificial Intelligence in Software Testing
 
María Carolina Martínez - eCommerce Day Colombia 2024
María Carolina Martínez - eCommerce Day Colombia 2024María Carolina Martínez - eCommerce Day Colombia 2024
María Carolina Martínez - eCommerce Day Colombia 2024
 
Bitcoin Lightning wallet and tic-tac-toe game XOXO
Bitcoin Lightning wallet and tic-tac-toe game XOXOBitcoin Lightning wallet and tic-tac-toe game XOXO
Bitcoin Lightning wallet and tic-tac-toe game XOXO
 
somanykidsbutsofewfathers-140705000023-phpapp02.pptx
somanykidsbutsofewfathers-140705000023-phpapp02.pptxsomanykidsbutsofewfathers-140705000023-phpapp02.pptx
somanykidsbutsofewfathers-140705000023-phpapp02.pptx
 
Competition and Regulation in Professional Services – KLEINER – June 2024 OEC...
Competition and Regulation in Professional Services – KLEINER – June 2024 OEC...Competition and Regulation in Professional Services – KLEINER – June 2024 OEC...
Competition and Regulation in Professional Services – KLEINER – June 2024 OEC...
 

SPWK 2020 - Pseudo Server Side tms - punchcard prize entry

  • 1. SUPERWEEK 2020 Punchcard Prize Entry Presented by David Vallejo 29th Jan. 2020 Galyatető - HU Super Week 2020 . Punchard Prize
  • 2. SUPERWEEK 2020 Punchcard Prize Entry Presented by David Vallejo 29th Jan. 2020 Galyatető - HU Who I am David Vallejo Implementation Consultant Blog: www.thyngster.com @thyng
  • 3. SUPERWEEK 2020 Punchcard Prize Entry Presented by David Vallejo 29th Jan. 2020 Galyatető - HU Presenting … In the worst Timing possible for releasing this … After Today’s GTM Team Announcement
  • 4. SUPERWEEK 2020 Punchcard Prize Entry Presented by David Vallejo 29th Jan. 2020 Galyatető - HU TMS . Pseudo Server-Side Running ANYTag Management System in a Server-Side mode
  • 5. Tool Goal Fire our hits or pixels via server-side relying on any Tag Management System as a launcher.
  • 6. We will be using 1 NODE JS ( as a webserver/ webhooks endpoint ) 2 Puppeteer ( Chrome Headless Browser )
  • 8. How it works . ● A public webhooks endpoint is created ( https://sstms.ourdomain.com/eve nts)
  • 9. How it works . ● A public webhooks endpoint is created ( https://sstms.ourdomain.com/eve nts) ● Events are pushed into an internal Queue for processing
  • 10. How it works . ● A public webhooks endpoint is created ( https://sstms.ourdomain.com/eve nts) ● Events are pushed into an internal Queue for processing ● Each 4 events or 30 seconds the events are dispatched to a headless chrome session via a Puppeteer instance
  • 11. Confidential Customized for Lorem Ipsum LLC Version 1.0 What are the webhooks
  • 12. Why we need a Queue Launching a browser can be a very cpu/ram consuming process, so loading a puppeteer instance on each page load would be a killer solution, therefore we’ll be using a Queue System, in order to be able to batch the events.
  • 13. The Queue The queue will be processed when: - The queue has more than 4 events or - After 30 seconds since the last queue release
  • 14. How it Works 1 NodeJS will act as a webhook endpoint 2 We push events to our NodeJS endpoint 3 When the Queue is ready a Puppeteer instance is launched 4 An html is loaded where our GTM container and our pushes are dynamically pushed in
  • 15. How we push the events POST REQUEST http://localhost/event/{{our-event-name}} Request Body { pageType: ‘pdp’ } Content-Type application/json
  • 16. How we push the events POST REQUEST http://localhost/event/{{our-event-name}} Request Body { pageType: ‘pdp’ } Content-Type application/json
  • 17. How we push the events POST REQUEST http://localhost/event/{{our-event-name}} Request Body { pageType: ‘pdp’ } Content-Type application/json
  • 18. How we push the events POSTREQUEST http://localhost/event/{{our-event-name}} RequestBody { pageType: ‘confirmation page’ } Content-Type application/json .
  • 19. Demo Since a demo is worth a thousand slides, let’s see it in action
  • 20. To have in mind ● This is not meant to be a production ready tool ( it should work fine under low events environments ). ● Implemented Queue is currently in-memory -> If the NodeJS instance is restarted you’ll lost the non-processed events.