Retentioneering: πώς γράψαμε εργαλεία ανάλυσης προϊόντων ανοιχτού κώδικα σε Python και Pandas

Γεια σου Χαμπρ. Αυτό το άρθρο είναι αφιερωμένο στα αποτελέσματα μιας τετραετούς ανάπτυξης ενός συνόλου μεθόδων και εργαλείων για την επεξεργασία των τροχιών κίνησης των χρηστών σε μια εφαρμογή ή σε έναν ιστότοπο. Συγγραφέας της ανάπτυξης - Μαξίμ Γκοτζί, ο οποίος βρίσκεται επικεφαλής της ομάδας των δημιουργών προϊόντων, είναι και ο συγγραφέας του άρθρου. Το ίδιο το προϊόν ονομαζόταν Retentioneering, τώρα έχει μετατραπεί σε βιβλιοθήκη ανοιχτού κώδικα και φιλοξενείται στο Github ώστε να μπορεί να το χρησιμοποιήσει ο καθένας. Όλα αυτά μπορεί να ενδιαφέρουν όσους ασχολούνται με την ανάλυση προϊόντων και μάρκετινγκ, την προώθηση και την ανάπτυξη προϊόντων. Παρεμπιπτόντως, στο Habré έχει ήδη δημοσιευτεί ένα άρθρο για μια από τις περιπτώσεις συνεργασίας με το Retentioneering. Το νέο υλικό εξηγεί τι είναι ικανό το προϊόν και πώς μπορεί να χρησιμοποιηθεί.

Αφού διαβάσετε το άρθρο, θα μπορείτε να γράψετε το δικό σας Retentioneering, μπορεί να είναι οποιαδήποτε τυποποιημένη μέθοδος για την επεξεργασία των τροχιών των χρηστών στην εφαρμογή και όχι μόνο, επιτρέποντάς σας να δείτε λεπτομερώς τα χαρακτηριστικά της συμπεριφοράς και να εξαγάγετε πληροφορίες από αυτό για την ανάπτυξη επιχειρηματικές μετρήσεις.

Τι είναι το Retentioneering και γιατί χρειάζεται;

Αρχικά, στόχος μας ήταν να μεταφέρουμε το Growth Hacking από τον κόσμο της «ψηφιακής μαγείας» στον κόσμο των αριθμών, των αναλυτικών στοιχείων και των προβλέψεων. Ως αποτέλεσμα, τα αναλυτικά στοιχεία προϊόντων περιορίζονται σε καθαρά μαθηματικά και προγραμματισμό για όσους προτιμούν αριθμούς αντί για φανταστικές ιστορίες και φόρμουλες από έξυπνες λέξεις όπως "rebranding", "repositioning" κ.λπ., που ακούγονται όμορφα, αλλά στην πράξη δεν το κάνουν. βοηθήσει πολύ.

Για να λύσουμε αυτά τα προβλήματα, χρειαζόμασταν ένα πλαίσιο για αναλυτικά στοιχεία μέσω γραφημάτων και τροχιών, και ταυτόχρονα μια βιβλιοθήκη που απλοποιεί τις τυπικές ρουτίνες αναλυτών, ως έναν τρόπο να περιγράψουμε τακτικές εργασίες ανάλυσης προϊόντων που θα ήταν κατανοητές τόσο από ανθρώπους όσο και από ρομπότ. Η βιβλιοθήκη παρέχει τη δυνατότητα να περιγράψει τη συμπεριφορά των χρηστών και να τη συνδέσει με τις επιχειρηματικές μετρήσεις προϊόντων σε μια τέτοια επίσημη και ξεκάθαρη γλώσσα, ώστε να απλοποιηθούν και να αυτοματοποιηθούν οι συνήθεις εργασίες των προγραμματιστών και των αναλυτών και να διευκολυνθεί η επικοινωνία τους με την επιχείρηση.

Το Retentioneering είναι μια μέθοδος και αναλυτικά εργαλεία λογισμικού που μπορούν να προσαρμοστούν και να ενσωματωθούν σε οποιοδήποτε ψηφιακό (και όχι μόνο) προϊόν.

Ξεκινήσαμε να εργαζόμαστε για το προϊόν το 2015. Τώρα είναι ένα έτοιμο, αν και όχι ακόμη ιδανικό σύνολο εργαλείων για εργασία με δεδομένα σε Python και Panda, μοντέλα μηχανικής εκμάθησης με api τύπου sklearn, εργαλεία για την ερμηνεία των αποτελεσμάτων των μοντέλων μηχανικής εκμάθησης eli5 και shap.

Είναι όλα τυλιγμένα σε μια βολική βιβλιοθήκη ανοιχτού κώδικα στο ανοιχτό αποθετήριο Github - Retentioneering-Tools. Η χρήση της βιβλιοθήκης δεν είναι δύσκολη, σχεδόν όποιος αγαπά τα αναλυτικά στοιχεία προϊόντων, αλλά δεν έχει γράψει κώδικα πριν, μπορεί να εφαρμόσει τις μεθόδους ανάλυσης στα δεδομένα του μόνος του και χωρίς να ξοδέψει πολύ χρόνο.

Λοιπόν, ένας προγραμματιστής, ένας δημιουργός εφαρμογών ή ένα μέλος μιας ομάδας ανάπτυξης ή δοκιμής που δεν έχει κάνει ποτέ αναλυτικά στοιχεία στο παρελθόν μπορεί να αρχίσει να παίζει με αυτόν τον κώδικα και να δει μοτίβα στη χρήση της εφαρμογής του χωρίς εξωτερική βοήθεια.

Η τροχιά χρήστη ως βασικό στοιχείο ανάλυσης και μέθοδοι επεξεργασίας της

Η τροχιά χρήστη είναι μια ακολουθία καταστάσεων χρήστη σε συγκεκριμένα χρονικά σημεία. Επιπλέον, τα συμβάντα μπορεί να προέρχονται από διαφορετικές πηγές δεδομένων, τόσο στο διαδίκτυο όσο και εκτός σύνδεσης. Τα γεγονότα που συνέβησαν στον χρήστη αποτελούν μέρος της τροχιάς του. Παραδείγματα:
• πάτησε το κουμπί
• είδε μια εικόνα
• πατήστε την οθόνη
• έλαβε ένα email
• συνέστησε το προϊόν σε έναν φίλο
• συμπλήρωσε τη φόρμα
• πάτησε την οθόνη
• κύλιση
• πλησίασε το ταμείο
• παρήγγειλε μπουρίτο
• έφαγε μπουρίτο
• δηλητηριάστηκε από ένα μπουρίτο που έφαγε
• μπήκε στο καφενείο από την πίσω είσοδο
• εισήλθε από την κύρια είσοδο
• ελαχιστοποίησε την εφαρμογή
• έλαβε μια ειδοποίηση push
• ηλίθιος στην οθόνη για μεγαλύτερο χρονικό διάστημα Х
• πλήρωσε για την παραγγελία
• εξαργύρωσε την παραγγελία
• αρνήθηκε δάνειο

Εάν λάβετε τα δεδομένα τροχιάς μιας ομάδας χρηστών και μελετήσετε πώς λειτουργούν οι μεταβάσεις, μπορείτε να δείτε ακριβώς πώς είναι χτισμένη η συμπεριφορά τους στην εφαρμογή. Είναι βολικό να γίνει αυτό μέσω ενός γραφήματος στο οποίο οι καταστάσεις είναι κόμβοι και οι μεταβάσεις μεταξύ των καταστάσεων είναι ακμές:

Retentioneering: πώς γράψαμε εργαλεία ανάλυσης προϊόντων ανοιχτού κώδικα σε Python και Pandas

Το "Trajectory" είναι μια πολύ βολική έννοια - περιέχει λεπτομερείς πληροφορίες για όλες τις ενέργειες του χρήστη, με τη δυνατότητα προσθήκης τυχόν πρόσθετων δεδομένων στην περιγραφή αυτών των ενεργειών. Αυτό το καθιστά ένα γενικό αντικείμενο. Εάν έχετε όμορφα και βολικά εργαλεία που σας επιτρέπουν να εργάζεστε με τροχιές, τότε μπορείτε να βρείτε ομοιότητες και να τις τμηματοποιήσετε.

Η κατάτμηση της τροχιάς μπορεί να φαίνεται πολύ περίπλοκη στην αρχή. Σε μια κανονική κατάσταση, αυτό ισχύει - πρέπει να χρησιμοποιήσετε μια σύγκριση πινάκων συνδεσιμότητας ή ευθυγράμμιση ακολουθιών. Καταφέραμε να βρούμε έναν ευκολότερο τρόπο - να μελετήσουμε μεγάλο αριθμό τροχιών και να τις τμηματοποιήσουμε μέσω της ομαδοποίησης.

Όπως αποδείχθηκε, είναι δυνατό να μετατραπεί μια τροχιά σε σημείο χρησιμοποιώντας συνεχείς αναπαραστάσεις, για παράδειγμα, TF-IDF. Μετά τον μετασχηματισμό, η τροχιά γίνεται ένα σημείο στο χώρο, όπου η κανονικοποιημένη εμφάνιση στην τροχιά διαφόρων γεγονότων και μεταβάσεων μεταξύ τους σχεδιάζεται κατά μήκος των αξόνων. Αυτό το πράγμα από έναν τεράστιο χώρο χιλιάδων και περισσότερων διαστάσεων (dimS=sum(τύποι συμβάντων)+άθροισμα(ngrams_2 τύποι)), μπορεί να προβληθεί σε ένα επίπεδο χρησιμοποιώντας TSNE. TSNE - μετασχηματισμός, μειώνει τη διάσταση του χώρου σε 2 άξονες και, αν είναι δυνατόν, διατηρεί τις σχετικές αποστάσεις μεταξύ των σημείων. Κατά συνέπεια, καθίσταται δυνατό σε έναν επίπεδο χάρτη, έναν εικονιστικό χάρτη προβολής τροχιών, να μελετήσουμε πώς τα σημεία διαφορετικών τροχιών βρίσκονταν μεταξύ τους. Αναλύεται πόσο κοντά ή διαφορετικά ήταν μεταξύ τους, είτε σχημάτιζαν συστάδες είτε ήταν διάσπαρτα στον χάρτη κ.λπ.:

Retentioneering: πώς γράψαμε εργαλεία ανάλυσης προϊόντων ανοιχτού κώδικα σε Python και Pandas

Τα αναλυτικά εργαλεία διατήρησης της διατήρησης παρέχουν τη δυνατότητα μετατροπής πολύπλοκων δεδομένων και τροχιών σε αναπαράσταση που μπορούν να συγκριθούν μεταξύ τους και στη συνέχεια να διερευνήσουν και να ερμηνεύσουν το αποτέλεσμα του μετασχηματισμού.

Μιλώντας για τυπικές μεθόδους επεξεργασίας τροχιάς, εννοούμε τρία βασικά εργαλεία που έχουμε εφαρμόσει στο Retentioneering - γραφήματα, πίνακες βημάτων και χάρτες προβολής τροχιών.

Η εργασία με το Google Analytics, το Firebase και παρόμοια συστήματα ανάλυσης είναι αρκετά περίπλοκη και όχι 100% αποτελεσματική. Το πρόβλημα είναι ένας αριθμός περιορισμών για τον χρήστη, με αποτέλεσμα η δουλειά του αναλυτή σε τέτοια συστήματα να βασίζεται στα κλικ του ποντικιού και στην επιλογή slices. Το Retentioneering καθιστά δυνατή την εργασία με τροχιές χρηστών και όχι μόνο με διοχετεύσεις, όπως στο Google Analytics, όπου το επίπεδο λεπτομέρειας συχνά μειώνεται σε διοχέτευση, αν και έχει κατασκευαστεί για ένα συγκεκριμένο τμήμα.

Διατήρηση και μελέτες περιπτώσεων

Ως παράδειγμα χρήσης του αναπτυγμένου εργαλείου, μπορούμε να αναφέρουμε την περίπτωση μιας μεγάλης εξειδικευμένης υπηρεσίας στη Ρωσία. Αυτή η εταιρεία διαθέτει μια εφαρμογή για κινητά Android που είναι δημοφιλής στους πελάτες. Ο ετήσιος κύκλος εργασιών από την εφαρμογή για κινητά ήταν περίπου 7 εκατομμύρια ρούβλια, οι εποχιακές διακυμάνσεις ήταν μεταξύ 60-130 χιλ. Η ίδια εταιρεία έχει επίσης μια εφαρμογή για iOS και ο μέσος έλεγχος του χρήστη της εφαρμογής "μήλο" ήταν υψηλότερος από τον μέσο όρο έλεγχος του πελάτη χρησιμοποιώντας την εφαρμογή Android - 1080 rub. έναντι 1300 ρούβλια.

Η εταιρεία αποφάσισε να αυξήσει την αποτελεσματικότητα της εφαρμογής Android, για την οποία πραγματοποίησε ενδελεχή ανάλυση. Πολλές δεκάδες υποθέσεις σχηματίστηκαν για να αυξηθεί η αποτελεσματικότητα της εφαρμογής. Μετά τη χρήση του Retentionneering, αποδείχθηκε ότι το πρόβλημα ήταν στα μηνύματα που εμφανίζονταν στους νέους χρήστες. Έλαβαν πληροφορίες σχετικά με τη μάρκα, τα οφέλη της εταιρείας και τις τιμές. Όμως, όπως αποδείχθηκε, τα μηνύματα έπρεπε να βοηθήσουν τον χρήστη να μάθει πώς να εργάζεται στην εφαρμογή.

Retentioneering: πώς γράψαμε εργαλεία ανάλυσης προϊόντων ανοιχτού κώδικα σε Python και Pandas

Αυτό έγινε, με αποτέλεσμα η εφαρμογή να αρχίσει να διαγράφεται λιγότερο και η αύξηση της μετατροπής σε παραγγελία ήταν 23%. Αρχικά, το 20 τοις εκατό της εισερχόμενης κίνησης δόθηκε στη δοκιμή, αλλά λίγες μέρες αργότερα, αφού ανέλυσαν τα πρώτα αποτελέσματα και αξιολόγησαν την τάση, αντιστράφηκαν οι αναλογίες και, αντίθετα, άφησαν το 20 τοις εκατό για την ομάδα ελέγχου και τοποθέτησαν ογδόντα τοις εκατό στη δοκιμή. Μια εβδομάδα αργότερα, αποφασίστηκε να προστεθεί διαδοχικά η δοκιμή δύο ακόμη υποθέσεων. Σε μόλις επτά εβδομάδες, ο τζίρος από την εφαρμογή Android αυξήθηκε κατά μιάμιση φορά σε σύγκριση με το προηγούμενο επίπεδο.

Πώς να εργαστείτε με το Retentioneering;

Τα πρώτα βήματα είναι αρκετά απλά - φορτώνουμε τη βιβλιοθήκη με την εντολή διατήρησης εγκατάστασης pip. Το ίδιο το αποθετήριο περιέχει έτοιμα παραδείγματα και περιπτώσεις επεξεργασίας δεδομένων για ορισμένες εργασίες ανάλυσης προϊόντων. Το σετ ανανεώνεται συνεχώς μέχρι να είναι αρκετό για την πρώτη γνωριμία. Ο καθένας μπορεί να πάρει έτοιμες ενότητες και να εφαρμόσει αμέσως τις εργασίες του - αυτό σας επιτρέπει να ρυθμίσετε αμέσως τη διαδικασία λεπτομερέστερης ανάλυσης και βελτιστοποίησης των τροχιών των χρηστών όσο το δυνατόν πιο γρήγορα και αποτελεσματικά. Όλα αυτά καθιστούν δυνατή την εύρεση μοτίβων χρήσης εφαρμογών μέσω κατανοητού κώδικα και την κοινή χρήση αυτής της εμπειρίας με συναδέλφους.

Το Retentioneering είναι ένα εργαλείο που αξίζει να χρησιμοποιείται καθ 'όλη τη διάρκεια ζωής μιας εφαρμογής και να γιατί:

  • Το Retentioneering είναι αποτελεσματικό για την παρακολούθηση και τη συνεχή βελτιστοποίηση των τροχιών των χρηστών και τη βελτίωση της επιχειρηματικής απόδοσης. Έτσι, συχνά προστίθενται νέες δυνατότητες σε εφαρμογές ηλεκτρονικού εμπορίου, η επίδραση των οποίων στο προϊόν δεν μπορεί πάντα να προβλεφθεί σωστά. Σε ορισμένες περιπτώσεις, υπάρχουν προβλήματα συμβατότητας μεταξύ νέων και παλαιών λειτουργιών - για παράδειγμα, τα νέα «κανιβαλίζουν» τα υπάρχοντα. Και σε αυτή την κατάσταση, χρειάζεται μια συνεχής ανάλυση των τροχιών.
  • Η κατάσταση είναι παρόμοια στην εργασία με διαφημιστικά κανάλια: νέες πηγές επισκεψιμότητας και διαφημιστικά δημιουργικά δοκιμάζονται συνεχώς, είναι απαραίτητο να παρακολουθείται η εποχικότητα, οι τάσεις και ο αντίκτυπος άλλων γεγονότων, γεγονός που οδηγεί στην εμφάνιση νέων κατηγοριών προβλημάτων. Απαιτεί επίσης συνεχή παρακολούθηση και ερμηνεία της μηχανικής των χρηστών.
  • Υπάρχει μια σειρά από παράγοντες που επηρεάζουν συνεχώς τη λειτουργία της εφαρμογής. Για παράδειγμα, νέες εκδόσεις από προγραμματιστές: κλείνοντας ένα πραγματικό πρόβλημα, επιστρέφουν άθελά τους το παλιό ή δημιουργούν ένα εντελώς νέο. Με την πάροδο του χρόνου, ο αριθμός των νέων εκδόσεων αυξάνεται και η διαδικασία παρακολούθησης σφαλμάτων πρέπει να αυτοματοποιηθεί, μεταξύ άλλων μέσω της ανάλυσης των τροχιών των χρηστών.

Συνολικά, το Retaineering είναι ένα αποτελεσματικό εργαλείο. Αλλά δεν υπάρχει όριο στην τελειότητα - μπορεί και πρέπει να βελτιωθεί, να αναπτυχθεί και να κατασκευαστούν νέα δροσερά προϊόντα στη βάση του. Όσο πιο ενεργή είναι η κοινότητα του έργου, τόσο περισσότερα πιρούνια θα υπάρχουν, θα εμφανιστούν νέες ενδιαφέρουσες επιλογές για τη χρήση του.

Περισσότερες πληροφορίες σχετικά με τα εργαλεία διατήρησης:

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο