Funnel Analysis in Hadoop at Etsy

Matt Walker
Matt WalkerCo-Founder, Engineering at Radico
Funnel Analysis in Hadoop at
                                    Etsy
                             Steve Mardenfeld, Wil Stuckey, Matt Walker




Tuesday, March 12, 13
Tuesday, March 12, 13
Handmade MarketPlace




Tuesday, March 12, 13
Tuesday, March 12, 13
Data Driven Development


                        •   Use data to make informed decisions

                        •   Use data to evaluate the efficacy of our products




Tuesday, March 12, 13
Funnel Analysis




Tuesday, March 12, 13
Registration Funnel




Tuesday, March 12, 13
Registration Funnel



       50,000                                 10,000
        100%                                   20%




Tuesday, March 12, 13
Registration Funnel



       50,000           45,000         15,000   10,000
        100%             90%            33%      60%
        100%             90%            29%      20%




Tuesday, March 12, 13
Funnels ++
                        •   Funnels are more than just an optimization tool

                        •   Use them to understand different pathways throughout our
                            site

                            •   Partition and compare these pathways by attributes

                                •   A/B tests, categories, queries, cohorts

                        •   Attribution model


Tuesday, March 12, 13
Attribution Models
                        •   Tie conversions and successes to specific products and
                            actions

                        •   Use to gain understanding of our users’ interaction with Etsy

                        •   Help us to measure gains in A/B testing

                        •   Easily compare different varieties of the same product

                        •   Attribution techniques for internal and external attribution


Tuesday, March 12, 13
Attributions Illustrated




Tuesday, March 12, 13
Attributions Illustrated




                         •   last product interaction - browse




Tuesday, March 12, 13
Attributions Illustrated




                         •   last product interaction - browse

                         •   co-occurrence - search and browse


Tuesday, March 12, 13
Attributions Illustrated




                         •   last product interaction - browse

                         •   co-occurrence - search and browse

                         •   direct funnel attribution - search
Tuesday, March 12, 13
Indirect Attribution Illustrated




Tuesday, March 12, 13
Indirect Attribution Illustrated




                             •   direct funnel attribution - shop home



Tuesday, March 12, 13
Indirect Attribution Illustrated




                             •   direct funnel attribution - shop home

                             •   indirect funnel attribution - search

Tuesday, March 12, 13
Aggregate Results
Direct
                        Search   Clicked Listing   Purchased
               Events   50,000       25,000          5,000




Tuesday, March 12, 13
Aggregate Results
Direct
                        Search   Clicked Listing   Purchased
               Events   50,000       25,000           5,000



Indirect
                        Search   Clicked Listing   Shop        Clicked Listing   Purchased
               Events   50,000       25,000         10,000            5,000        3,000




Tuesday, March 12, 13
Aggregate Results
Direct
                        Search   Clicked Listing   Purchased
               Events   50,000       25,000           5,000



Indirect
                        Search   Clicked Listing   Shop        Clicked Listing   Purchased
               Events   50,000       25,000         10,000            5,000        3,000



Combined
                        Search   Clicked Listing   Purchased
               Events   50,000       25,000          8,000



Tuesday, March 12, 13
Segmenting Within Funnels
Old Algorithm
                                 Search    Clicked Listing   Purchased
                        Counts    50,000       20,000          15,000




 New Hotness
                                 Search    Clicked Listing   Purchased
                        Counts   100,000       60,000          15,000




Tuesday, March 12, 13
Segmenting Within Funnels
Old Algorithm
                                   Search   Clicked Listing   Purchased
                        Step        100%         50%             40%
                        To t a l    100%         50%             20%



 New Hotness
                                   Search   Clicked Listing   Purchased
                        Step        100%         60%             25%
                        To t a l    100%         60%             15%




Tuesday, March 12, 13
Segmenting Across Funnels

                                           *     Clicked Listing   Purchased
                        Search            100%        50%             40%
                        Browse            100%        40%             30%
                        Home              100%        60%             36%
                        Activity Feed     100%        62%             28%
                        Ta s t e Te s t   100%        47%             31%
                        Search Ads        100%        45%             38%




Tuesday, March 12, 13
Democratized Funnels
                        How do we make this awesomeness available for everyone?




Tuesday, March 12, 13
Tuesday, March 12, 13
Awesome infrastructure but...


                 •      Must be an engineer to write your own queries

                 •      Engineering resources become the bottleneck

                 •      Hard to scale as the company grows




Tuesday, March 12, 13
So we want to:


                 •      Allow the data engineers to focus on higher priority things.

                 •      Allow people to answer their own questions.




Tuesday, March 12, 13
How do we do this?




Tuesday, March 12, 13
The Path of Funnel Tools


                        google spreadsheets   internal tools
                                              •   Funnel Cake
                                              •   Feature Funnel




Tuesday, March 12, 13
Funnel Cake




Tuesday, March 12, 13
Version 1



Tuesday, March 12, 13
Real Time




Tuesday, March 12, 13
Lets do it in PHP!



Tuesday, March 12, 13
Why?



Tuesday, March 12, 13
It’s the “Etsy Way”

                 •      Already have existing infrastructure

                 •      Operationally stable

                 •      The same tools everyone else is using means a better adoption rate
                        across Engineering




Tuesday, March 12, 13
•      Event Stream

                 •      Code runs on every page view

                 •      Simple matching system

                 •      (ab)Used memcached as a temporary storage

                 •      Rolled up to DB every min (near real time)




Tuesday, March 12, 13
What happened?



Tuesday, March 12, 13
Broader adoption!
                          Over 75 Funnels were created




Tuesday, March 12, 13
Shiny Visualized Results




Tuesday, March 12, 13
•      Funnels had to be setup ahead of time (no backfills)

                 •      Reconciliation is hard

                 •      Limited to events in our web clickstream (ios/android would be
                        excluded)

                 •      Scaling and Operational issues

                 •      Difficult to maintain multiple stacks



Tuesday, March 12, 13
Turns out that we don’t make
                        Product decisions in real time


                         http://mcfunley.com/whom-the-gods-would-destroy-they-first-give-real-time-analytics

Tuesday, March 12, 13
Version 2



Tuesday, March 12, 13
Tuesday, March 12, 13
Getting back on the elephant

                 •      Able to carry over the User Interface from v1

                 •      Standardized event sessionization

                 •      Operationally supported infrastructure

                 •      Nightly batch process



Tuesday, March 12, 13
Feature Funnel



Tuesday, March 12, 13
Attribution for ALL



Tuesday, March 12, 13
Built in metrics
                 • Click through rate
                 • Listing impressions
                 • Purchase rate
                                             -
                 • Purchase from shop rate
                 • Favorite from shop rate
                 • More...

Tuesday, March 12, 13
Built in metrics
                 • Click through rate        - Direct Attribution
                 • Listing impressions       - Direct Attribution
                 • Purchase rate             - Direct Attribution
                 • Purchase from shop rate   - Indirect Attribution
                 • Favorite from shop rate   - Indirect Attribution
                 • More...                   -

Tuesday, March 12, 13
Segmentation


                 •      Primarily used for A/B test analysis

                 •      Arbitrary segmentation




Tuesday, March 12, 13
How do we get it?




Tuesday, March 12, 13
How do we get it?

                        select (clicks/visits * 100.0) as "CTR"
                         from feature_funnel
                          where event_type = 'search'
                          and ab_test = 'sitewide'
                          and epoch_s = 1361318400
                          and group_name = 'ALL_GROUPINGS';




Tuesday, March 12, 13
The Future?



Tuesday, March 12, 13
Features

                 •      Eliminate the need for an engineer to write the queries

                 •      Robust segmentation

                 •      Not be limited to visit sessions

                 •      Run Ad Hoc queries



Tuesday, March 12, 13
Build your own Funnels


                             show the builder ui here




Tuesday, March 12, 13
Mechanics of Funnel Analysis



Tuesday, March 12, 13
Input


                 •      Event sequences

                 •      Typically visits to website

                 •      Sessionization scheme left to developer




Tuesday, March 12, 13
Tuesday, March 12, 13
Funnel


                 •      Search

                 •      Listing

                 •      Cart




Tuesday, March 12, 13
Tuesday, March 12, 13
Tuesday, March 12, 13
Tuesday, March 12, 13
Tuesday, March 12, 13
Tuesday, March 12, 13
Query

                 •      Only discussed event types

                 •      Funnel steps require additional constraints:

                        •   Listing referred by search

                        •   Added that listing to cart



Tuesday, March 12, 13
Search
                          query                             “dinosaur”

                        listing_ids                119469855, 90583707, ...

                                               “http://www.etsy.com/search/handmade/patterns?
                           loc        q=dinosaur&order=most_relevant&view_type=gallery&ship_to=ZZ”


                            ...                                   ...




Tuesday, March 12, 13
Listing
                        listing_id                         119469855

                                              “http://www.etsy.com/search/handmade/patterns?
                           ref       q=dinosaur&order=most_relevant&view_type=gallery&ship_to=ZZ”


                        shop_id                              7415158

                            ...                                  ...




Tuesday, March 12, 13
Cart
                        added_listing_id       119469855

                        cart_listing_ids      119469855, ...

                           cart_type              guest

                               ...                  ...




Tuesday, March 12, 13
Query


                 •      Listing referred by search

                 •      Added that listing to cart




Tuesday, March 12, 13
Search
                          query                             “dinosaur”

                        listing_ids                119469855, 90583707, ...

                                               “http://www.etsy.com/search/handmade/patterns?
                           loc        q=dinosaur&order=most_relevant&view_type=gallery&ship_to=ZZ”


                            ...                                   ...




Tuesday, March 12, 13
Listing
                        listing_id                         119469855

                                              “http://www.etsy.com/search/handmade/patterns?
                           ref       q=dinosaur&order=most_relevant&view_type=gallery&ship_to=ZZ”


                        shop_id                              7415158

                            ...                                  ...




Tuesday, March 12, 13
Listing
                        listing_id                         119469855

                                              “http://www.etsy.com/search/handmade/patterns?
                           ref       q=dinosaur&order=most_relevant&view_type=gallery&ship_to=ZZ”


                        shop_id                              7415158

                            ...                                  ...


                                       listing.ref == search.loc

Tuesday, March 12, 13
Cart
                        added_listing_id       119469855

                        cart_listing_ids      119469855, ...

                           cart_type              guest

                               ...                  ...




Tuesday, March 12, 13
Cart
                        added_listing_id                      119469855

                        cart_listing_ids                     119469855, ...

                           cart_type                              guest

                               ...                                 ...


                                     cart.added_listing_id == listing.listing_id

Tuesday, March 12, 13
Query


                 •      Search

                 •      Listing & Referred

                 •      Cart & AddedListing




Tuesday, March 12, 13
Pattern Matching


                 •      Apply query to event sequence

                 •      Select out tuples of matching events




Tuesday, March 12, 13
What About Incomplete Funnels?



Tuesday, March 12, 13
Tuesday, March 12, 13
null




Tuesday, March 12, 13
null   null




Tuesday, March 12, 13
Funnel Analysis


                 •      Replace events with 1

                 •      Replace nulls with 0

                 •      Sum




Tuesday, March 12, 13
null




                        null   null




Tuesday, March 12, 13
1    1      1




                        1    1     null




                        1   null   null




Tuesday, March 12, 13
1   1   1




                        1   1   0




                        1   0   0




Tuesday, March 12, 13
3   2   1




Tuesday, March 12, 13
min(3, 1)   min(2, 1)   min(1, 1)




Tuesday, March 12, 13
1   1   1




Tuesday, March 12, 13
What Do We Keep?



Tuesday, March 12, 13
Tuesday, March 12, 13
Search                                                        Listing                                                   Cart



          query                            “dinosaur”                    listing_id                       119469855                    added_listing_id           119469855


                                                                                      “http://www.etsy.com/search/handmade/patterns?
        listing_ids                119469855, 90583707, ...                 ref       q=dinosaur&order=most_relevant&view_type=gal     cart_listing_ids          119469855, ...
                                                                                                     lery&ship_to=ZZ”

                        “http://www.etsy.com/search/handmade/patterns?
           loc          q=dinosaur&order=most_relevant&view_type=gal     shop_id                           7415158                        cart_type                  guest
                                       lery&ship_to=ZZ”


            ...                                ...                           ...                             ...                              ...                      ...




Tuesday, March 12, 13
Tuesday, March 12, 13
Segmenting Funnels



Tuesday, March 12, 13
Tuesday, March 12, 13
Search                                                        Listing                                                   Cart



          query                            “dinosaur”                    listing_id                       119469855                    added_listing_id           119469855


                                                                                      “http://www.etsy.com/search/handmade/patterns?
        listing_ids                119469855, 90583707, ...                 ref       q=dinosaur&order=most_relevant&view_type=gal     cart_listing_ids          119469855, ...
                                                                                                     lery&ship_to=ZZ”

                        “http://www.etsy.com/search/handmade/patterns?
           loc          q=dinosaur&order=most_relevant&view_type=gal     shop_id                           7415158                        cart_type                  guest
                                       lery&ship_to=ZZ”


            ...                                ...                           ...                             ...                              ...                      ...




Tuesday, March 12, 13
Listing                                                   Cart



                                listing_id                       119469855                    added_listing_id           119469855


                                             “http://www.etsy.com/search/handmade/patterns?
                                   ref       q=dinosaur&order=most_relevant&view_type=gal     cart_listing_ids          119469855, ...
                                                            lery&ship_to=ZZ”
                        query
                                shop_id                           7415158                        cart_type                  guest



                                    ...                             ...                              ...                      ...




Tuesday, March 12, 13
Cart



                                             added_listing_id           119469855



                                             cart_listing_ids          119469855, ...


                        query   listing_id
                                                cart_type                  guest



                                                    ...                      ...




Tuesday, March 12, 13
query   listing_id   cart_type




Tuesday, March 12, 13
Segmented Funnel Analysis


                 •      Extract segmenting properties

                 •      Compute indicators as before

                 •      Group on segmenting properties and sum




Tuesday, March 12, 13
MapReduce


                 •      Work is done map-side

                 •      Common first step in our jobs

                 •      Expensive computation limited to first round mappers




Tuesday, March 12, 13
Event Sequence Pattern Matching



Tuesday, March 12, 13
Components


                 •      Predicate: matches/rejects events

                 •      Query: tuple of predicates

                 •      Match: tuple of events




Tuesday, March 12, 13
Match Predicates

                 •      Select an event based on:

                        •   Full event sequence

                        •   Prior matched events

                        •   Current candidate



Tuesday, March 12, 13
Match Predicate DSL


                 •      Combine predicates with logical operators

                 •      val Query = Seq(Search, Listing & Referred, Cart & AddedListing)




Tuesday, March 12, 13
Semantics


                 •      Fixed number of events in match

                 •      Arbitrary number of matches per sequence

                 •      Collect and extend all partial matches




Tuesday, March 12, 13
Tuesday, March 12, 13
Search    Listing   Shop




                        Listing   Cart      Home




                        Search    Listing   Search



Tuesday, March 12, 13
Search, Listing, Shop, Listing, Cart, Home, Search, Listing, Search




Tuesday, March 12, 13
Search, Listing, Shop, Listing, Cart, Home, Search, Listing, Search


                             Query                                      Root

                             Search

                        Listing & Referred

                   Cart & AddedListing




Tuesday, March 12, 13
Search, Listing, Shop, Listing, Cart, Home, Search, Listing, Search


                             Query                                      Root
                                                                          ?

                             Search

                        Listing & Referred

                   Cart & AddedListing




Tuesday, March 12, 13
Listing, Shop, Listing, Cart, Home, Search, Listing, Search


                             Query                                     Root

                             Search                   Search

                        Listing & Referred

                   Cart & AddedListing




Tuesday, March 12, 13
Listing, Shop, Listing, Cart, Home, Search, Listing, Search


                             Query                                     Root
                                                                         ?

                             Search                   Search
                                                         ?

                        Listing & Referred

                   Cart & AddedListing




Tuesday, March 12, 13
Shop, Listing, Cart, Home, Search, Listing, Search


                             Query                                    Root

                             Search                   Search

                        Listing & Referred            Listing

                   Cart & AddedListing




Tuesday, March 12, 13
Shop, Listing, Cart, Home, Search, Listing, Search


                             Query                                    Root
                                                                        ?

                             Search                   Search
                                                         ?

                        Listing & Referred            Listing
                                                         ?

                   Cart & AddedListing




Tuesday, March 12, 13
Listing, Cart, Home, Search, Listing, Search


                             Query                                     Root

                             Search                    Search

                        Listing & Referred             Listing

                   Cart & AddedListing




Tuesday, March 12, 13
Listing, Cart, Home, Search, Listing, Search


                             Query                                     Root
                                                                         ?

                             Search                    Search
                                                          ?

                        Listing & Referred             Listing
                                                          ?

                   Cart & AddedListing




Tuesday, March 12, 13
Cart, Home, Search, Listing, Search


                             Query                                   Root

                             Search                  Search

                        Listing & Referred            Listing

                   Cart & AddedListing




Tuesday, March 12, 13
Cart, Home, Search, Listing, Search


                             Query                                   Root
                                                                       ?

                             Search                  Search
                                                         ?

                        Listing & Referred            Listing
                                                         ?

                   Cart & AddedListing




Tuesday, March 12, 13
Home, Search, Listing, Search


                             Query                                    Root

                             Search                   Search

                        Listing & Referred             Listing

                   Cart & AddedListing                 Cart




Tuesday, March 12, 13
Home, Search, Listing, Search


                             Query                                    Root
                                                                        ?

                             Search                   Search
                                                          ?

                        Listing & Referred             Listing
                                                          ?

                   Cart & AddedListing                 Cart




Tuesday, March 12, 13
Search, Listing, Search


                             Query                                 Root

                             Search                Search

                        Listing & Referred         Listing

                   Cart & AddedListing              Cart




Tuesday, March 12, 13
Search, Listing, Search


                             Query                                 Root
                                                                       ?

                             Search                Search
                                                      ?

                        Listing & Referred         Listing
                                                      ?

                   Cart & AddedListing              Cart




Tuesday, March 12, 13
Listing, Search


                             Query                             Root

                             Search            Search          Search

                        Listing & Referred     Listing

                   Cart & AddedListing          Cart




Tuesday, March 12, 13
Listing, Search


                             Query                             Root
                                                                 ?

                             Search            Search          Search
                                                  ?              ?

                        Listing & Referred     Listing
                                                  ?

                   Cart & AddedListing          Cart




Tuesday, March 12, 13
Search


                             Query                     Root

                             Search          Search    Search

                        Listing & Referred   Listing   Listing

                   Cart & AddedListing       Cart




Tuesday, March 12, 13
Search


                             Query                     Root
                                                          ?

                             Search          Search    Search
                                                ?         ?

                        Listing & Referred   Listing   Listing
                                                ?         ?

                   Cart & AddedListing       Cart




Tuesday, March 12, 13
Query                     Root

                             Search          Search    Search    Search

                        Listing & Referred   Listing   Listing

                   Cart & AddedListing       Cart




Tuesday, March 12, 13
null




                        null   null




Tuesday, March 12, 13
Tuesday, March 12, 13
Tuesday, March 12, 13
Match Tree


                 •      Purely functional data structure

                 •      Holds matched events and indices

                 •      Match prefixes shared




Tuesday, March 12, 13
Match Tree Algorithm


                 •      Fold over sequence accumulating tree

                 •      May extend any non-terminal node

                 •      Each level in tree corresponds to predicate




Tuesday, March 12, 13
Practicality

                 •      Explodes, but

                 •      Queries are constant length

                 •      Sequences are bounded (visits)

                 •      Predicates constrain growth



Tuesday, March 12, 13
Summary


                 •      Why funnels are interesting

                 •      What we’ve built with them at Etsy

                 •      Our approach to funnel analysis




Tuesday, March 12, 13
Questions?


                 •      Steve Mardenfeld

                 •      Wil Stuckey @quiiver

                 •      Matt Walker @data_daddy




Tuesday, March 12, 13
1 of 134

Recommended

Case Study - Top digital marketing services provider hadoop by
Case Study - Top digital marketing services provider hadoopCase Study - Top digital marketing services provider hadoop
Case Study - Top digital marketing services provider hadoopSaxon Global inc
509 views1 slide
ChatGPT and the Future of Work - Clark Boyd by
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
26.2K views69 slides
Getting into the tech field. what next by
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
6.3K views22 slides
Google's Just Not That Into You: Understanding Core Updates & Search Intent by
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
6.7K views99 slides
How to have difficult conversations by
How to have difficult conversations How to have difficult conversations
How to have difficult conversations Rajiv Jayarajah, MAppComm, ACC
5.4K views19 slides
Introduction to Data Science by
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data ScienceChristy Abraham Joy
82.5K views51 slides

More Related Content

Recently uploaded

Igniting Next Level Productivity with AI-Infused Data Integration Workflows by
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Safe Software
373 views86 slides
NTGapps NTG LowCode Platform by
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform Mustafa Kuğu
287 views30 slides
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue by
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueShapeBlue
68 views13 slides
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue by
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueVNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueShapeBlue
134 views54 slides
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online by
KVM Security Groups Under the Hood - Wido den Hollander - Your.OnlineKVM Security Groups Under the Hood - Wido den Hollander - Your.Online
KVM Security Groups Under the Hood - Wido den Hollander - Your.OnlineShapeBlue
154 views19 slides
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue by
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlueShapeBlue
75 views23 slides

Recently uploaded(20)

Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software373 views
NTGapps NTG LowCode Platform by Mustafa Kuğu
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform
Mustafa Kuğu287 views
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue by ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
ShapeBlue68 views
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue by ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueVNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
ShapeBlue134 views
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online by ShapeBlue
KVM Security Groups Under the Hood - Wido den Hollander - Your.OnlineKVM Security Groups Under the Hood - Wido den Hollander - Your.Online
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online
ShapeBlue154 views
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue by ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
ShapeBlue75 views
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... by ShapeBlue
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
ShapeBlue97 views
The Power of Heat Decarbonisation Plans in the Built Environment by IES VE
The Power of Heat Decarbonisation Plans in the Built EnvironmentThe Power of Heat Decarbonisation Plans in the Built Environment
The Power of Heat Decarbonisation Plans in the Built Environment
IES VE67 views
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P... by ShapeBlue
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
ShapeBlue120 views
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit... by ShapeBlue
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
ShapeBlue86 views
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue by ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
ShapeBlue63 views
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue by ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlueMigrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
ShapeBlue147 views
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ... by ShapeBlue
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
ShapeBlue48 views
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc130 views
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool by ShapeBlue
Extending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPoolExtending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPool
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool
ShapeBlue56 views
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue by ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
ShapeBlue191 views
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T by ShapeBlue
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TCloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
ShapeBlue81 views
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R... by ShapeBlue
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
ShapeBlue105 views

Featured

Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright... by
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
12.7K views21 slides
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present... by
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
55.5K views138 slides
12 Ways to Increase Your Influence at Work by
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
401.7K views64 slides
ChatGPT webinar slides by
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slidesAlireza Esmikhani
30.4K views36 slides
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G... by
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
3.6K views12 slides

Featured(20)

Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright... by RachelPearson36
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RachelPearson3612.7K views
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present... by Applitools
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Applitools55.5K views
12 Ways to Increase Your Influence at Work by GetSmarter
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
GetSmarter401.7K views
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G... by DevGAMM Conference
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
DevGAMM Conference3.6K views
Barbie - Brand Strategy Presentation by Erica Santiago
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
Erica Santiago25.1K views
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well by Saba Software
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Saba Software25.3K views
Introduction to C Programming Language by Simplilearn
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming Language
Simplilearn8.4K views
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr... by Palo Alto Software
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...
Palo Alto Software88.4K views
9 Tips for a Work-free Vacation by Weekdone.com
9 Tips for a Work-free Vacation9 Tips for a Work-free Vacation
9 Tips for a Work-free Vacation
Weekdone.com7.2K views
How to Map Your Future by SlideShop.com
How to Map Your FutureHow to Map Your Future
How to Map Your Future
SlideShop.com275.1K views
Beyond Pride: Making Digital Marketing & SEO Authentically LGBTQ+ Inclusive -... by AccuraCast
Beyond Pride: Making Digital Marketing & SEO Authentically LGBTQ+ Inclusive -...Beyond Pride: Making Digital Marketing & SEO Authentically LGBTQ+ Inclusive -...
Beyond Pride: Making Digital Marketing & SEO Authentically LGBTQ+ Inclusive -...
AccuraCast3.4K views
Exploring ChatGPT for Effective Teaching and Learning.pptx by Stan Skrabut, Ed.D.
Exploring ChatGPT for Effective Teaching and Learning.pptxExploring ChatGPT for Effective Teaching and Learning.pptx
Exploring ChatGPT for Effective Teaching and Learning.pptx
Stan Skrabut, Ed.D.57.7K views
How to train your robot (with Deep Reinforcement Learning) by Lucas García, PhD
How to train your robot (with Deep Reinforcement Learning)How to train your robot (with Deep Reinforcement Learning)
How to train your robot (with Deep Reinforcement Learning)
Lucas García, PhD42.5K views
4 Strategies to Renew Your Career Passion by Daniel Goleman
4 Strategies to Renew Your Career Passion4 Strategies to Renew Your Career Passion
4 Strategies to Renew Your Career Passion
Daniel Goleman122K views
The Student's Guide to LinkedIn by LinkedIn
The Student's Guide to LinkedInThe Student's Guide to LinkedIn
The Student's Guide to LinkedIn
LinkedIn88.1K views
Different Roles in Machine Learning Career by Intellipaat
Different Roles in Machine Learning CareerDifferent Roles in Machine Learning Career
Different Roles in Machine Learning Career
Intellipaat12.4K views

Funnel Analysis in Hadoop at Etsy

  • 1. Funnel Analysis in Hadoop at Etsy Steve Mardenfeld, Wil Stuckey, Matt Walker Tuesday, March 12, 13
  • 5. Data Driven Development • Use data to make informed decisions • Use data to evaluate the efficacy of our products Tuesday, March 12, 13
  • 8. Registration Funnel 50,000 10,000 100% 20% Tuesday, March 12, 13
  • 9. Registration Funnel 50,000 45,000 15,000 10,000 100% 90% 33% 60% 100% 90% 29% 20% Tuesday, March 12, 13
  • 10. Funnels ++ • Funnels are more than just an optimization tool • Use them to understand different pathways throughout our site • Partition and compare these pathways by attributes • A/B tests, categories, queries, cohorts • Attribution model Tuesday, March 12, 13
  • 11. Attribution Models • Tie conversions and successes to specific products and actions • Use to gain understanding of our users’ interaction with Etsy • Help us to measure gains in A/B testing • Easily compare different varieties of the same product • Attribution techniques for internal and external attribution Tuesday, March 12, 13
  • 13. Attributions Illustrated • last product interaction - browse Tuesday, March 12, 13
  • 14. Attributions Illustrated • last product interaction - browse • co-occurrence - search and browse Tuesday, March 12, 13
  • 15. Attributions Illustrated • last product interaction - browse • co-occurrence - search and browse • direct funnel attribution - search Tuesday, March 12, 13
  • 17. Indirect Attribution Illustrated • direct funnel attribution - shop home Tuesday, March 12, 13
  • 18. Indirect Attribution Illustrated • direct funnel attribution - shop home • indirect funnel attribution - search Tuesday, March 12, 13
  • 19. Aggregate Results Direct Search Clicked Listing Purchased Events 50,000 25,000 5,000 Tuesday, March 12, 13
  • 20. Aggregate Results Direct Search Clicked Listing Purchased Events 50,000 25,000 5,000 Indirect Search Clicked Listing Shop Clicked Listing Purchased Events 50,000 25,000 10,000 5,000 3,000 Tuesday, March 12, 13
  • 21. Aggregate Results Direct Search Clicked Listing Purchased Events 50,000 25,000 5,000 Indirect Search Clicked Listing Shop Clicked Listing Purchased Events 50,000 25,000 10,000 5,000 3,000 Combined Search Clicked Listing Purchased Events 50,000 25,000 8,000 Tuesday, March 12, 13
  • 22. Segmenting Within Funnels Old Algorithm Search Clicked Listing Purchased Counts 50,000 20,000 15,000 New Hotness Search Clicked Listing Purchased Counts 100,000 60,000 15,000 Tuesday, March 12, 13
  • 23. Segmenting Within Funnels Old Algorithm Search Clicked Listing Purchased Step 100% 50% 40% To t a l 100% 50% 20% New Hotness Search Clicked Listing Purchased Step 100% 60% 25% To t a l 100% 60% 15% Tuesday, March 12, 13
  • 24. Segmenting Across Funnels * Clicked Listing Purchased Search 100% 50% 40% Browse 100% 40% 30% Home 100% 60% 36% Activity Feed 100% 62% 28% Ta s t e Te s t 100% 47% 31% Search Ads 100% 45% 38% Tuesday, March 12, 13
  • 25. Democratized Funnels How do we make this awesomeness available for everyone? Tuesday, March 12, 13
  • 27. Awesome infrastructure but... • Must be an engineer to write your own queries • Engineering resources become the bottleneck • Hard to scale as the company grows Tuesday, March 12, 13
  • 28. So we want to: • Allow the data engineers to focus on higher priority things. • Allow people to answer their own questions. Tuesday, March 12, 13
  • 29. How do we do this? Tuesday, March 12, 13
  • 30. The Path of Funnel Tools google spreadsheets internal tools • Funnel Cake • Feature Funnel Tuesday, March 12, 13
  • 34. Lets do it in PHP! Tuesday, March 12, 13
  • 36. It’s the “Etsy Way” • Already have existing infrastructure • Operationally stable • The same tools everyone else is using means a better adoption rate across Engineering Tuesday, March 12, 13
  • 37. Event Stream • Code runs on every page view • Simple matching system • (ab)Used memcached as a temporary storage • Rolled up to DB every min (near real time) Tuesday, March 12, 13
  • 39. Broader adoption! Over 75 Funnels were created Tuesday, March 12, 13
  • 41. Funnels had to be setup ahead of time (no backfills) • Reconciliation is hard • Limited to events in our web clickstream (ios/android would be excluded) • Scaling and Operational issues • Difficult to maintain multiple stacks Tuesday, March 12, 13
  • 42. Turns out that we don’t make Product decisions in real time http://mcfunley.com/whom-the-gods-would-destroy-they-first-give-real-time-analytics Tuesday, March 12, 13
  • 45. Getting back on the elephant • Able to carry over the User Interface from v1 • Standardized event sessionization • Operationally supported infrastructure • Nightly batch process Tuesday, March 12, 13
  • 48. Built in metrics • Click through rate • Listing impressions • Purchase rate - • Purchase from shop rate • Favorite from shop rate • More... Tuesday, March 12, 13
  • 49. Built in metrics • Click through rate - Direct Attribution • Listing impressions - Direct Attribution • Purchase rate - Direct Attribution • Purchase from shop rate - Indirect Attribution • Favorite from shop rate - Indirect Attribution • More... - Tuesday, March 12, 13
  • 50. Segmentation • Primarily used for A/B test analysis • Arbitrary segmentation Tuesday, March 12, 13
  • 51. How do we get it? Tuesday, March 12, 13
  • 52. How do we get it? select (clicks/visits * 100.0) as "CTR"  from feature_funnel   where event_type = 'search'   and ab_test = 'sitewide'   and epoch_s = 1361318400   and group_name = 'ALL_GROUPINGS'; Tuesday, March 12, 13
  • 54. Features • Eliminate the need for an engineer to write the queries • Robust segmentation • Not be limited to visit sessions • Run Ad Hoc queries Tuesday, March 12, 13
  • 55. Build your own Funnels show the builder ui here Tuesday, March 12, 13
  • 56. Mechanics of Funnel Analysis Tuesday, March 12, 13
  • 57. Input • Event sequences • Typically visits to website • Sessionization scheme left to developer Tuesday, March 12, 13
  • 59. Funnel • Search • Listing • Cart Tuesday, March 12, 13
  • 65. Query • Only discussed event types • Funnel steps require additional constraints: • Listing referred by search • Added that listing to cart Tuesday, March 12, 13
  • 66. Search query “dinosaur” listing_ids 119469855, 90583707, ... “http://www.etsy.com/search/handmade/patterns? loc q=dinosaur&order=most_relevant&view_type=gallery&ship_to=ZZ” ... ... Tuesday, March 12, 13
  • 67. Listing listing_id 119469855 “http://www.etsy.com/search/handmade/patterns? ref q=dinosaur&order=most_relevant&view_type=gallery&ship_to=ZZ” shop_id 7415158 ... ... Tuesday, March 12, 13
  • 68. Cart added_listing_id 119469855 cart_listing_ids 119469855, ... cart_type guest ... ... Tuesday, March 12, 13
  • 69. Query • Listing referred by search • Added that listing to cart Tuesday, March 12, 13
  • 70. Search query “dinosaur” listing_ids 119469855, 90583707, ... “http://www.etsy.com/search/handmade/patterns? loc q=dinosaur&order=most_relevant&view_type=gallery&ship_to=ZZ” ... ... Tuesday, March 12, 13
  • 71. Listing listing_id 119469855 “http://www.etsy.com/search/handmade/patterns? ref q=dinosaur&order=most_relevant&view_type=gallery&ship_to=ZZ” shop_id 7415158 ... ... Tuesday, March 12, 13
  • 72. Listing listing_id 119469855 “http://www.etsy.com/search/handmade/patterns? ref q=dinosaur&order=most_relevant&view_type=gallery&ship_to=ZZ” shop_id 7415158 ... ... listing.ref == search.loc Tuesday, March 12, 13
  • 73. Cart added_listing_id 119469855 cart_listing_ids 119469855, ... cart_type guest ... ... Tuesday, March 12, 13
  • 74. Cart added_listing_id 119469855 cart_listing_ids 119469855, ... cart_type guest ... ... cart.added_listing_id == listing.listing_id Tuesday, March 12, 13
  • 75. Query • Search • Listing & Referred • Cart & AddedListing Tuesday, March 12, 13
  • 76. Pattern Matching • Apply query to event sequence • Select out tuples of matching events Tuesday, March 12, 13
  • 77. What About Incomplete Funnels? Tuesday, March 12, 13
  • 80. null null Tuesday, March 12, 13
  • 81. Funnel Analysis • Replace events with 1 • Replace nulls with 0 • Sum Tuesday, March 12, 13
  • 82. null null null Tuesday, March 12, 13
  • 83. 1 1 1 1 1 null 1 null null Tuesday, March 12, 13
  • 84. 1 1 1 1 1 0 1 0 0 Tuesday, March 12, 13
  • 85. 3 2 1 Tuesday, March 12, 13
  • 86. min(3, 1) min(2, 1) min(1, 1) Tuesday, March 12, 13
  • 87. 1 1 1 Tuesday, March 12, 13
  • 88. What Do We Keep? Tuesday, March 12, 13
  • 90. Search Listing Cart query “dinosaur” listing_id 119469855 added_listing_id 119469855 “http://www.etsy.com/search/handmade/patterns? listing_ids 119469855, 90583707, ... ref q=dinosaur&order=most_relevant&view_type=gal cart_listing_ids 119469855, ... lery&ship_to=ZZ” “http://www.etsy.com/search/handmade/patterns? loc q=dinosaur&order=most_relevant&view_type=gal shop_id 7415158 cart_type guest lery&ship_to=ZZ” ... ... ... ... ... ... Tuesday, March 12, 13
  • 94. Search Listing Cart query “dinosaur” listing_id 119469855 added_listing_id 119469855 “http://www.etsy.com/search/handmade/patterns? listing_ids 119469855, 90583707, ... ref q=dinosaur&order=most_relevant&view_type=gal cart_listing_ids 119469855, ... lery&ship_to=ZZ” “http://www.etsy.com/search/handmade/patterns? loc q=dinosaur&order=most_relevant&view_type=gal shop_id 7415158 cart_type guest lery&ship_to=ZZ” ... ... ... ... ... ... Tuesday, March 12, 13
  • 95. Listing Cart listing_id 119469855 added_listing_id 119469855 “http://www.etsy.com/search/handmade/patterns? ref q=dinosaur&order=most_relevant&view_type=gal cart_listing_ids 119469855, ... lery&ship_to=ZZ” query shop_id 7415158 cart_type guest ... ... ... ... Tuesday, March 12, 13
  • 96. Cart added_listing_id 119469855 cart_listing_ids 119469855, ... query listing_id cart_type guest ... ... Tuesday, March 12, 13
  • 97. query listing_id cart_type Tuesday, March 12, 13
  • 98. Segmented Funnel Analysis • Extract segmenting properties • Compute indicators as before • Group on segmenting properties and sum Tuesday, March 12, 13
  • 99. MapReduce • Work is done map-side • Common first step in our jobs • Expensive computation limited to first round mappers Tuesday, March 12, 13
  • 100. Event Sequence Pattern Matching Tuesday, March 12, 13
  • 101. Components • Predicate: matches/rejects events • Query: tuple of predicates • Match: tuple of events Tuesday, March 12, 13
  • 102. Match Predicates • Select an event based on: • Full event sequence • Prior matched events • Current candidate Tuesday, March 12, 13
  • 103. Match Predicate DSL • Combine predicates with logical operators • val Query = Seq(Search, Listing & Referred, Cart & AddedListing) Tuesday, March 12, 13
  • 104. Semantics • Fixed number of events in match • Arbitrary number of matches per sequence • Collect and extend all partial matches Tuesday, March 12, 13
  • 106. Search Listing Shop Listing Cart Home Search Listing Search Tuesday, March 12, 13
  • 107. Search, Listing, Shop, Listing, Cart, Home, Search, Listing, Search Tuesday, March 12, 13
  • 108. Search, Listing, Shop, Listing, Cart, Home, Search, Listing, Search Query Root Search Listing & Referred Cart & AddedListing Tuesday, March 12, 13
  • 109. Search, Listing, Shop, Listing, Cart, Home, Search, Listing, Search Query Root ? Search Listing & Referred Cart & AddedListing Tuesday, March 12, 13
  • 110. Listing, Shop, Listing, Cart, Home, Search, Listing, Search Query Root Search Search Listing & Referred Cart & AddedListing Tuesday, March 12, 13
  • 111. Listing, Shop, Listing, Cart, Home, Search, Listing, Search Query Root ? Search Search ? Listing & Referred Cart & AddedListing Tuesday, March 12, 13
  • 112. Shop, Listing, Cart, Home, Search, Listing, Search Query Root Search Search Listing & Referred Listing Cart & AddedListing Tuesday, March 12, 13
  • 113. Shop, Listing, Cart, Home, Search, Listing, Search Query Root ? Search Search ? Listing & Referred Listing ? Cart & AddedListing Tuesday, March 12, 13
  • 114. Listing, Cart, Home, Search, Listing, Search Query Root Search Search Listing & Referred Listing Cart & AddedListing Tuesday, March 12, 13
  • 115. Listing, Cart, Home, Search, Listing, Search Query Root ? Search Search ? Listing & Referred Listing ? Cart & AddedListing Tuesday, March 12, 13
  • 116. Cart, Home, Search, Listing, Search Query Root Search Search Listing & Referred Listing Cart & AddedListing Tuesday, March 12, 13
  • 117. Cart, Home, Search, Listing, Search Query Root ? Search Search ? Listing & Referred Listing ? Cart & AddedListing Tuesday, March 12, 13
  • 118. Home, Search, Listing, Search Query Root Search Search Listing & Referred Listing Cart & AddedListing Cart Tuesday, March 12, 13
  • 119. Home, Search, Listing, Search Query Root ? Search Search ? Listing & Referred Listing ? Cart & AddedListing Cart Tuesday, March 12, 13
  • 120. Search, Listing, Search Query Root Search Search Listing & Referred Listing Cart & AddedListing Cart Tuesday, March 12, 13
  • 121. Search, Listing, Search Query Root ? Search Search ? Listing & Referred Listing ? Cart & AddedListing Cart Tuesday, March 12, 13
  • 122. Listing, Search Query Root Search Search Search Listing & Referred Listing Cart & AddedListing Cart Tuesday, March 12, 13
  • 123. Listing, Search Query Root ? Search Search Search ? ? Listing & Referred Listing ? Cart & AddedListing Cart Tuesday, March 12, 13
  • 124. Search Query Root Search Search Search Listing & Referred Listing Listing Cart & AddedListing Cart Tuesday, March 12, 13
  • 125. Search Query Root ? Search Search Search ? ? Listing & Referred Listing Listing ? ? Cart & AddedListing Cart Tuesday, March 12, 13
  • 126. Query Root Search Search Search Search Listing & Referred Listing Listing Cart & AddedListing Cart Tuesday, March 12, 13
  • 127. null null null Tuesday, March 12, 13
  • 130. Match Tree • Purely functional data structure • Holds matched events and indices • Match prefixes shared Tuesday, March 12, 13
  • 131. Match Tree Algorithm • Fold over sequence accumulating tree • May extend any non-terminal node • Each level in tree corresponds to predicate Tuesday, March 12, 13
  • 132. Practicality • Explodes, but • Queries are constant length • Sequences are bounded (visits) • Predicates constrain growth Tuesday, March 12, 13
  • 133. Summary • Why funnels are interesting • What we’ve built with them at Etsy • Our approach to funnel analysis Tuesday, March 12, 13
  • 134. Questions? • Steve Mardenfeld • Wil Stuckey @quiiver • Matt Walker @data_daddy Tuesday, March 12, 13