SlideShare a Scribd company logo
1 of 134
Download to read offline
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

More Related Content

Recently uploaded

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 

Featured

Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
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
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
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
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
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...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
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...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
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...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 
Good 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 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 wellSaba Software
 

Featured (20)

Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
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 Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
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...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
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...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
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...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 
Good 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 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
 

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