Road to A/B testing - Alexey Vasiliev (ENG) | Ruby Meditation 25

Ruby Meditation
Ruby MeditationRuby Meditation
Road to A/B testing
Brought to you by Oleksii Vasyliev
1
Oleksii Vasyliev
Web and Mobile Developer (Ruby, Java, JavaScript, Objective-C, C/C++,
Golang, Elixir/Erlang), DevOps
Open-Source libs: PGTune, SQL Joins Visualizer, RWbox, Go-Kinesis, ElixirV8,
WebP-ffi, Zopfli-ffi, MongodbLogger, SMTRails, SHTRails, ...
Open-Source books: Setting up and scaling of PostgreSQL (Russian),
Cooking Infrastructure by Chef
Leading RWpod podcast about Ruby and JavaScript
•
•
•
•
2
What is A/B testing?
3
4
First reaction
5
Rails solutions
Split
Vanity
Field Test
A/Bingo (dead)
Bandit (dead)
Absurdity (dead)
SevenMinuteAbs (dead)
•
•
•
•
•
•
•
6
Split
Variants
ab_test(:user_variations, 'new', 'old', 'strange')
ab_test(:homepage_design, {'Old' => 18}, {'New' => 2})
Conversion
ab_finished(:user_variations)7
Split Web interface
gem 'split', require: 'split/dashboard'
mount Split::Dashboard, at: 'split'
8
9
Split Extensions
Split::Export - Easily export A/B test data out of Split.
Split::Analytics - Push test data to Google Analytics.
Split::Mongoid - Store experiment data in mongoid (still uses redis).
Split::Cacheable - Automatically create cache buckets per test.
Split::Counters - Add counters per experiment and alternative.
Split::Cli - A CLI to trigger Split A/B tests.
•
•
•
•
•
•
10
Demo for client
11
Small changes from client
Support SPA applications (React, Vue.js, Marionette.js)
Cover only some percentage of visitors to target an experiment
I need determines when the experiment is shown: geo data, browser/mobile
device, third-party cookies, query parameter, etc
Running simple experiments (text/image variations, etc) without
development and deployment
Support Multivariate and Multi-Armed Bandit testing
•
•
•
•
•
12
Multivariate tests (MVT)
13
Reaction
14
Ploblems
I need better admin system for experiments (editor, settings, etc)
I need collect info about customers (geo, device, etc) and do not forget
about GDPR/Data Processing Addendum/etc
It will create load on system
Your customers not need this feature
You as developer not need this code
It is only need for marketing/business analytic team
•
•
•
•
•
•
15
What about PaaS?
Optimizely
ABTasty
VWO
Omniconvert
Adobe Target
etc
•
•
•
•
•
•
16
PaaS pricing
Plans start at a minimum of $36,000 a year, for 200,000 visitors or more.
https://www.quora.com/How-much-is-optimizely
AB Tasty’s package starts at $1,000 per month
https://reviews.financesonline.com/p/ab-tasty/#pricing
Enterprise Pricing starts from $1,899/month
https://reviews.financesonline.com/p/omniconvert/#pricing
”
”
” 17
Me
18
19
ga('require', 'GTM-234234');
Google Optimize Integration
ga('create', 'UA-234234-1', 'auto');
ga('send', 'pageview');
20
Google Optimize Integration
<style>.async-hide { opacity: 0 !important} </style>
<script>(function(a,s,y,n,c,h,i,d,e){s.className+=' '+y;h.start=1*new Date;
h.end=i=function(){s.className=s.className.replace(RegExp(' ?'+y),'')};
(a[n]=a[n]||[]).hide=h;setTimeout(function(){i();h.end=null},c);h.timeout=c;
})(window,document.documentElement,'async-hide','dataLayer',4000,
{'GTM-234234':true});</script>
21
22
23
24
25
26
if (value === '2') {
'experiment_id_A'
Google Optimize JS API
function implementExperimentA(value) {
$( document ).ready(function() {
$('#my_element').text('Hello from variant 2');
})
}
}
gtag('event', 'optimize.callback', {
name: ,
callback: implementExperimentA
}); 27
A/B test results
28
29
30
31
MVT setup
32
33
34
It is Free (with some limits)
35
Conclusion
If you need PaaS for A/B testing - try Google Optimize
Free version limits: 5 experiments, 10 personalizations, 16 MVT
combinations. You can update to Optimize 360 if needed
Ability to do experiments without development
Works on top of a Google Analytics
Integration with Google Tag Manager provide additional flexibility in settings
•
•
•
•
•
36
<Thank You!> Questions?
Contact information
web: leopard.in.ua
github: le0pard
twitter: @leopard_me
•
•
•
37
1 of 37

Recommended

Sharing the pain using Protractor by
Sharing the pain using ProtractorSharing the pain using Protractor
Sharing the pain using ProtractorAnand Bagmar
6.8K views30 slides
The what, why and how of web analytics testing by
The what, why and how of web analytics testingThe what, why and how of web analytics testing
The what, why and how of web analytics testingAnand Bagmar
4.2K views37 slides
Increase automation to rest by
Increase automation to restIncrease automation to rest
Increase automation to restShivaling Sannalli
419 views35 slides
Pitfalls in Performance Testing AxxesCC 06/2015 by
Pitfalls in Performance Testing AxxesCC 06/2015Pitfalls in Performance Testing AxxesCC 06/2015
Pitfalls in Performance Testing AxxesCC 06/2015Axxes IT Consultancy
1.1K views36 slides
Selenium with protractor by
Selenium with protractorSelenium with protractor
Selenium with protractorBOGA HARIKRISHNA
282 views7 slides
CMG imPACt2016 - Mobile performance testing - Vendor training - Federico Tole... by
CMG imPACt2016 - Mobile performance testing - Vendor training - Federico Tole...CMG imPACt2016 - Mobile performance testing - Vendor training - Federico Tole...
CMG imPACt2016 - Mobile performance testing - Vendor training - Federico Tole...Federico Toledo
927 views55 slides

More Related Content

Similar to Road to A/B testing - Alexey Vasiliev (ENG) | Ruby Meditation 25

Creating PostgreSQL-as-a-Service at Scale by
Creating PostgreSQL-as-a-Service at ScaleCreating PostgreSQL-as-a-Service at Scale
Creating PostgreSQL-as-a-Service at ScaleSean Chittenden
1.2K views45 slides
Continuous Performance Testing: The New Standard by
Continuous Performance Testing: The New StandardContinuous Performance Testing: The New Standard
Continuous Performance Testing: The New StandardTechWell
887 views65 slides
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale by
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScaleGDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScalePatrick Chanezon
1.3K views68 slides
Intro To Django by
Intro To DjangoIntro To Django
Intro To DjangoUdi Bauman
2.6K views54 slides
Serverless in production, an experience report (FullStack 2018) by
Serverless in production, an experience report (FullStack 2018)Serverless in production, an experience report (FullStack 2018)
Serverless in production, an experience report (FullStack 2018)Yan Cui
359 views197 slides
Deep crawl the chaotic landscape of JavaScript by
Deep crawl the chaotic landscape of JavaScript Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript Onely
11.7K views240 slides

Similar to Road to A/B testing - Alexey Vasiliev (ENG) | Ruby Meditation 25(20)

Creating PostgreSQL-as-a-Service at Scale by Sean Chittenden
Creating PostgreSQL-as-a-Service at ScaleCreating PostgreSQL-as-a-Service at Scale
Creating PostgreSQL-as-a-Service at Scale
Sean Chittenden1.2K views
Continuous Performance Testing: The New Standard by TechWell
Continuous Performance Testing: The New StandardContinuous Performance Testing: The New Standard
Continuous Performance Testing: The New Standard
TechWell887 views
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale by Patrick Chanezon
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScaleGDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
Patrick Chanezon1.3K views
Intro To Django by Udi Bauman
Intro To DjangoIntro To Django
Intro To Django
Udi Bauman2.6K views
Serverless in production, an experience report (FullStack 2018) by Yan Cui
Serverless in production, an experience report (FullStack 2018)Serverless in production, an experience report (FullStack 2018)
Serverless in production, an experience report (FullStack 2018)
Yan Cui359 views
Deep crawl the chaotic landscape of JavaScript by Onely
Deep crawl the chaotic landscape of JavaScript Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript
Onely11.7K views
Preparing for Enterprise Continuous Delivery - 5 Critical Steps by XebiaLabs
Preparing for Enterprise Continuous Delivery - 5 Critical StepsPreparing for Enterprise Continuous Delivery - 5 Critical Steps
Preparing for Enterprise Continuous Delivery - 5 Critical Steps
XebiaLabs1.3K views
Building Products Quantitatively by Soren Harner
Building Products QuantitativelyBuilding Products Quantitatively
Building Products Quantitatively
Soren Harner1K views
Flavius Ștef: Big Rewrites Without Big Risks at I T.A.K.E. Unconference by Mozaic Works
Flavius Ștef: Big Rewrites Without Big Risks at I T.A.K.E. UnconferenceFlavius Ștef: Big Rewrites Without Big Risks at I T.A.K.E. Unconference
Flavius Ștef: Big Rewrites Without Big Risks at I T.A.K.E. Unconference
Mozaic Works371 views
Big rewrites without big risks by Flavius Stef
Big rewrites without big risksBig rewrites without big risks
Big rewrites without big risks
Flavius Stef535 views
Serverless in Production, an experience report (AWS UG South Wales) by Yan Cui
Serverless in Production, an experience report (AWS UG South Wales)Serverless in Production, an experience report (AWS UG South Wales)
Serverless in Production, an experience report (AWS UG South Wales)
Yan Cui830 views
GoralSoft by goralsoft
GoralSoftGoralSoft
GoralSoft
goralsoft586 views
Stapling and patching the web of now - ForwardJS3, San Francisco by Christian Heilmann
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
Christian Heilmann12.9K views
#NEOTYSPAC performance testing shift left by Amir Rozenberg
#NEOTYSPAC performance testing shift left#NEOTYSPAC performance testing shift left
#NEOTYSPAC performance testing shift left
Amir Rozenberg371 views
Web Development using Ruby on Rails by Avi Kedar
Web Development using Ruby on RailsWeb Development using Ruby on Rails
Web Development using Ruby on Rails
Avi Kedar628 views
How to build unified Batch & Streaming Pipelines with Apache Beam and Dataflow by Daniel Zivkovic
How to build unified Batch & Streaming Pipelines with Apache Beam and DataflowHow to build unified Batch & Streaming Pipelines with Apache Beam and Dataflow
How to build unified Batch & Streaming Pipelines with Apache Beam and Dataflow
Daniel Zivkovic80 views
Data Pipelines - Big Data meets Salesforce by agarciaodeian
Data Pipelines - Big Data meets SalesforceData Pipelines - Big Data meets Salesforce
Data Pipelines - Big Data meets Salesforce
agarciaodeian359 views
An Introduction to Microservices by Ad van der Veer
An Introduction to MicroservicesAn Introduction to Microservices
An Introduction to Microservices
Ad van der Veer604 views
Neo4j GraphTour New York_EY Presentation_Michael Moore by Neo4j
Neo4j GraphTour New York_EY Presentation_Michael MooreNeo4j GraphTour New York_EY Presentation_Michael Moore
Neo4j GraphTour New York_EY Presentation_Michael Moore
Neo4j348 views
improving the performance of Rails web Applications by John McCaffrey
improving the performance of Rails web Applicationsimproving the performance of Rails web Applications
improving the performance of Rails web Applications
John McCaffrey1.6K views

More from Ruby Meditation

Is this Legacy or Revenant Code? - Sergey Sergyenko | Ruby Meditation 30 by
Is this Legacy or Revenant Code? - Sergey Sergyenko  | Ruby Meditation 30Is this Legacy or Revenant Code? - Sergey Sergyenko  | Ruby Meditation 30
Is this Legacy or Revenant Code? - Sergey Sergyenko | Ruby Meditation 30Ruby Meditation
207 views22 slides
Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky... by
Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...
Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...Ruby Meditation
462 views141 slides
Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29 by
Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29
Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29Ruby Meditation
210 views49 slides
Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ... by
Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ...Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ...
Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ...Ruby Meditation
1.6K views59 slides
How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28 by
How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28 How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28
How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28 Ruby Meditation
366 views23 slides
How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28 by
How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28
How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28Ruby Meditation
459 views20 slides

More from Ruby Meditation(20)

Is this Legacy or Revenant Code? - Sergey Sergyenko | Ruby Meditation 30 by Ruby Meditation
Is this Legacy or Revenant Code? - Sergey Sergyenko  | Ruby Meditation 30Is this Legacy or Revenant Code? - Sergey Sergyenko  | Ruby Meditation 30
Is this Legacy or Revenant Code? - Sergey Sergyenko | Ruby Meditation 30
Ruby Meditation207 views
Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky... by Ruby Meditation
Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...
Life with GraphQL API: good practices and unresolved issues - Roman Dubrovsky...
Ruby Meditation462 views
Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29 by Ruby Meditation
Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29
Where is your license, dude? - Viacheslav Miroshnychenko | Ruby Meditation 29
Ruby Meditation210 views
Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ... by Ruby Meditation
Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ...Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ...
Dry-validation update. Dry-validation vs Dry-schema 1.0 - Aleksandra Stolyar ...
Ruby Meditation1.6K views
How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28 by Ruby Meditation
How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28 How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28
How to cook Rabbit on Production - Bohdan Parshentsev | Ruby Meditation 28
Ruby Meditation366 views
How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28 by Ruby Meditation
How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28
How to cook Rabbit on Production - Serhiy Nazarov | Ruby Meditation 28
Ruby Meditation459 views
Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh... by Ruby Meditation
Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...
Reinventing the wheel - why do it and how to feel good about it - Julik Tarkh...
Ruby Meditation462 views
Performance Optimization 101 for Ruby developers - Nihad Abbasov (ENG) | Ruby... by Ruby Meditation
Performance Optimization 101 for Ruby developers - Nihad Abbasov (ENG) | Ruby...Performance Optimization 101 for Ruby developers - Nihad Abbasov (ENG) | Ruby...
Performance Optimization 101 for Ruby developers - Nihad Abbasov (ENG) | Ruby...
Ruby Meditation475 views
Use cases for Serverless Technologies - Ruslan Tolstov (RUS) | Ruby Meditatio... by Ruby Meditation
Use cases for Serverless Technologies - Ruslan Tolstov (RUS) | Ruby Meditatio...Use cases for Serverless Technologies - Ruslan Tolstov (RUS) | Ruby Meditatio...
Use cases for Serverless Technologies - Ruslan Tolstov (RUS) | Ruby Meditatio...
Ruby Meditation320 views
The Trailblazer Ride from the If Jungle into a Civilised Railway Station - Or... by Ruby Meditation
The Trailblazer Ride from the If Jungle into a Civilised Railway Station - Or...The Trailblazer Ride from the If Jungle into a Civilised Railway Station - Or...
The Trailblazer Ride from the If Jungle into a Civilised Railway Station - Or...
Ruby Meditation285 views
What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27 by Ruby Meditation
What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27
What/How to do with GraphQL? - Valentyn Ostakh (ENG) | Ruby Meditation 27
Ruby Meditation1.1K views
New features in Rails 6 - Nihad Abbasov (RUS) | Ruby Meditation 26 by Ruby Meditation
New features in Rails 6 -  Nihad Abbasov (RUS) | Ruby Meditation 26New features in Rails 6 -  Nihad Abbasov (RUS) | Ruby Meditation 26
New features in Rails 6 - Nihad Abbasov (RUS) | Ruby Meditation 26
Ruby Meditation577 views
Security Scanning Overview - Tetiana Chupryna (RUS) | Ruby Meditation 26 by Ruby Meditation
Security Scanning Overview - Tetiana Chupryna (RUS) | Ruby Meditation 26Security Scanning Overview - Tetiana Chupryna (RUS) | Ruby Meditation 26
Security Scanning Overview - Tetiana Chupryna (RUS) | Ruby Meditation 26
Ruby Meditation299 views
Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (... by Ruby Meditation
Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...
Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...
Ruby Meditation455 views
Best practices. Exploring - Ike Kurghinyan (RUS) | Ruby Meditation 26 by Ruby Meditation
Best practices. Exploring - Ike Kurghinyan (RUS) | Ruby Meditation 26Best practices. Exploring - Ike Kurghinyan (RUS) | Ruby Meditation 26
Best practices. Exploring - Ike Kurghinyan (RUS) | Ruby Meditation 26
Ruby Meditation204 views
Concurrency in production. Real life example - Dmytro Herasymuk | Ruby Medita... by Ruby Meditation
Concurrency in production. Real life example - Dmytro Herasymuk | Ruby Medita...Concurrency in production. Real life example - Dmytro Herasymuk | Ruby Medita...
Concurrency in production. Real life example - Dmytro Herasymuk | Ruby Medita...
Ruby Meditation511 views
Data encryption for Ruby web applications - Dmytro Shapovalov (RUS) | Ruby Me... by Ruby Meditation
Data encryption for Ruby web applications - Dmytro Shapovalov (RUS) | Ruby Me...Data encryption for Ruby web applications - Dmytro Shapovalov (RUS) | Ruby Me...
Data encryption for Ruby web applications - Dmytro Shapovalov (RUS) | Ruby Me...
Ruby Meditation299 views
Rails App performance at the limit - Bogdan Gusiev by Ruby Meditation
Rails App performance at the limit - Bogdan GusievRails App performance at the limit - Bogdan Gusiev
Rails App performance at the limit - Bogdan Gusiev
Ruby Meditation418 views
GDPR. Next Y2K in 2018? - Anton Tkachov | Ruby Meditation #23 by Ruby Meditation
GDPR. Next Y2K in 2018? - Anton Tkachov | Ruby Meditation #23GDPR. Next Y2K in 2018? - Anton Tkachov | Ruby Meditation #23
GDPR. Next Y2K in 2018? - Anton Tkachov | Ruby Meditation #23
Ruby Meditation179 views
Postgres vs Elasticsearch while enriching data - Vlad Somov | Ruby Meditaiton... by Ruby Meditation
Postgres vs Elasticsearch while enriching data - Vlad Somov | Ruby Meditaiton...Postgres vs Elasticsearch while enriching data - Vlad Somov | Ruby Meditaiton...
Postgres vs Elasticsearch while enriching data - Vlad Somov | Ruby Meditaiton...
Ruby Meditation2.7K views

Recently uploaded

The Research Portal of Catalonia: Growing more (information) & more (services) by
The Research Portal of Catalonia: Growing more (information) & more (services)The Research Portal of Catalonia: Growing more (information) & more (services)
The Research Portal of Catalonia: Growing more (information) & more (services)CSUC - Consorci de Serveis Universitaris de Catalunya
80 views25 slides
Ransomware is Knocking your Door_Final.pdf by
Ransomware is Knocking your Door_Final.pdfRansomware is Knocking your Door_Final.pdf
Ransomware is Knocking your Door_Final.pdfSecurity Bootcamp
59 views46 slides
Uni Systems for Power Platform.pptx by
Uni Systems for Power Platform.pptxUni Systems for Power Platform.pptx
Uni Systems for Power Platform.pptxUni Systems S.M.S.A.
56 views21 slides
Future of AR - Facebook Presentation by
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentationssuserb54b561
15 views27 slides
Microsoft Power Platform.pptx by
Microsoft Power Platform.pptxMicrosoft Power Platform.pptx
Microsoft Power Platform.pptxUni Systems S.M.S.A.
53 views38 slides
Network Source of Truth and Infrastructure as Code revisited by
Network Source of Truth and Infrastructure as Code revisitedNetwork Source of Truth and Infrastructure as Code revisited
Network Source of Truth and Infrastructure as Code revisitedNetwork Automation Forum
27 views45 slides

Recently uploaded(20)

Future of AR - Facebook Presentation by ssuserb54b561
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentation
ssuserb54b56115 views
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... by Bernd Ruecker
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
Bernd Ruecker40 views
Data Integrity for Banking and Financial Services by Precisely
Data Integrity for Banking and Financial ServicesData Integrity for Banking and Financial Services
Data Integrity for Banking and Financial Services
Precisely25 views
Voice Logger - Telephony Integration Solution at Aegis by Nirmal Sharma
Voice Logger - Telephony Integration Solution at AegisVoice Logger - Telephony Integration Solution at Aegis
Voice Logger - Telephony Integration Solution at Aegis
Nirmal Sharma39 views
STPI OctaNE CoE Brochure.pdf by madhurjyapb
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdf
madhurjyapb14 views
Serverless computing with Google Cloud (2023-24) by wesley chun
Serverless computing with Google Cloud (2023-24)Serverless computing with Google Cloud (2023-24)
Serverless computing with Google Cloud (2023-24)
wesley chun11 views
"Running students' code in isolation. The hard way", Yurii Holiuk by Fwdays
"Running students' code in isolation. The hard way", Yurii Holiuk "Running students' code in isolation. The hard way", Yurii Holiuk
"Running students' code in isolation. The hard way", Yurii Holiuk
Fwdays17 views
Five Things You SHOULD Know About Postman by Postman
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About Postman
Postman36 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10300 views

Road to A/B testing - Alexey Vasiliev (ENG) | Ruby Meditation 25

  • 1. Road to A/B testing Brought to you by Oleksii Vasyliev 1
  • 2. Oleksii Vasyliev Web and Mobile Developer (Ruby, Java, JavaScript, Objective-C, C/C++, Golang, Elixir/Erlang), DevOps Open-Source libs: PGTune, SQL Joins Visualizer, RWbox, Go-Kinesis, ElixirV8, WebP-ffi, Zopfli-ffi, MongodbLogger, SMTRails, SHTRails, ... Open-Source books: Setting up and scaling of PostgreSQL (Russian), Cooking Infrastructure by Chef Leading RWpod podcast about Ruby and JavaScript • • • • 2
  • 3. What is A/B testing? 3
  • 4. 4
  • 6. Rails solutions Split Vanity Field Test A/Bingo (dead) Bandit (dead) Absurdity (dead) SevenMinuteAbs (dead) • • • • • • • 6
  • 7. Split Variants ab_test(:user_variations, 'new', 'old', 'strange') ab_test(:homepage_design, {'Old' => 18}, {'New' => 2}) Conversion ab_finished(:user_variations)7
  • 8. Split Web interface gem 'split', require: 'split/dashboard' mount Split::Dashboard, at: 'split' 8
  • 9. 9
  • 10. Split Extensions Split::Export - Easily export A/B test data out of Split. Split::Analytics - Push test data to Google Analytics. Split::Mongoid - Store experiment data in mongoid (still uses redis). Split::Cacheable - Automatically create cache buckets per test. Split::Counters - Add counters per experiment and alternative. Split::Cli - A CLI to trigger Split A/B tests. • • • • • • 10
  • 12. Small changes from client Support SPA applications (React, Vue.js, Marionette.js) Cover only some percentage of visitors to target an experiment I need determines when the experiment is shown: geo data, browser/mobile device, third-party cookies, query parameter, etc Running simple experiments (text/image variations, etc) without development and deployment Support Multivariate and Multi-Armed Bandit testing • • • • • 12
  • 15. Ploblems I need better admin system for experiments (editor, settings, etc) I need collect info about customers (geo, device, etc) and do not forget about GDPR/Data Processing Addendum/etc It will create load on system Your customers not need this feature You as developer not need this code It is only need for marketing/business analytic team • • • • • • 15
  • 16. What about PaaS? Optimizely ABTasty VWO Omniconvert Adobe Target etc • • • • • • 16
  • 17. PaaS pricing Plans start at a minimum of $36,000 a year, for 200,000 visitors or more. https://www.quora.com/How-much-is-optimizely AB Tasty’s package starts at $1,000 per month https://reviews.financesonline.com/p/ab-tasty/#pricing Enterprise Pricing starts from $1,899/month https://reviews.financesonline.com/p/omniconvert/#pricing ” ” ” 17
  • 18. Me 18
  • 19. 19
  • 20. ga('require', 'GTM-234234'); Google Optimize Integration ga('create', 'UA-234234-1', 'auto'); ga('send', 'pageview'); 20
  • 21. Google Optimize Integration <style>.async-hide { opacity: 0 !important} </style> <script>(function(a,s,y,n,c,h,i,d,e){s.className+=' '+y;h.start=1*new Date; h.end=i=function(){s.className=s.className.replace(RegExp(' ?'+y),'')}; (a[n]=a[n]||[]).hide=h;setTimeout(function(){i();h.end=null},c);h.timeout=c; })(window,document.documentElement,'async-hide','dataLayer',4000, {'GTM-234234':true});</script> 21
  • 22. 22
  • 23. 23
  • 24. 24
  • 25. 25
  • 26. 26
  • 27. if (value === '2') { 'experiment_id_A' Google Optimize JS API function implementExperimentA(value) { $( document ).ready(function() { $('#my_element').text('Hello from variant 2'); }) } } gtag('event', 'optimize.callback', { name: , callback: implementExperimentA }); 27
  • 29. 29
  • 30. 30
  • 31. 31
  • 33. 33
  • 34. 34
  • 35. It is Free (with some limits) 35
  • 36. Conclusion If you need PaaS for A/B testing - try Google Optimize Free version limits: 5 experiments, 10 personalizations, 16 MVT combinations. You can update to Optimize 360 if needed Ability to do experiments without development Works on top of a Google Analytics Integration with Google Tag Manager provide additional flexibility in settings • • • • • 36
  • 37. <Thank You!> Questions? Contact information web: leopard.in.ua github: le0pard twitter: @leopard_me • • • 37