Giter Site home page Giter Site logo

aso-sherlock's Introduction

Sherlock - The ASO inspector

Sherlock is a program I wrote as a companion to my presentation at the ASO Conference in NYC in 2019.

It's based on top of a library I wrote called pm-prophet

It can produce curated reports about your app and it's traffic, including:

  • Updates impact (both visual and textual updates)
  • Seasonality
  • Uplift

Sample output: is demostrated in the file examples/report.html (which is a fit of sherlock on some fake data contained in examples/example.csv).

Installation

  1. Install python 3
  2. Install pipenv
  3. Open your terminal and run pipenv install from the folder in which you have cloned this repository

Et Voilà. You should be all set.

Preparing your data

Sherlock takes in input a csv file of different time-series. The naming convention is strict and it's case-sensitive.

Required columns:

  1. date the date of the events (expressed in dd/mm/yyyy format, e.g. 12/30/2019).
  2. search_downloads downloads data coming from iTunes connect filtered by App Store Search source
  3. search_impressions impressions data coming from iTunes connect filtered by App Store Search source

Optional columns (if you do Apple Search Ads):

  1. asa_impressions impressions coming from Apple Search Ads
  2. asa downloads coming from Apple Search Ads

Extra columns: Any other time series you like (e.g. Facebook, Google, Snapchat..) for which to compute uplift.

Usage

Usage is very simple, from the terminal run:

pipenv shell

to activate the virtual environment and:

python sherlock.py -i example.csv

To run the script. There are some options available:

Options:
  -h, --help            show this help message and exit
  -a APP_NAME, --app-name=APP_NAME
                        Specify the app name if you want a more personalized
                        report
  -i FILE, --input-file=FILE
                        Input CSV file
  -o FILE, --output-file=FILE
                        Output report file (in html format)
  -s SAMPLER, --sampler=SAMPLER
                        Sampler to use ("nuts" is slower but more precise and
                        suggested, otherwise "metropolis")
  -n, --no-asa          Do not use ASA as an additional regressor (better
                        seasonality fits)
  -w, --weekly          Run the analysis on a weekly resampling
  -r SIGMA, --remove-outliers-sigma=SIGMA
                        Remove outliers at more than X sigma from the mean
                        (suggested values range between 1.5-3.5). Default
                        value is: 0 that means that Sherlock will not remove
                        outliers
  -l ALPHA, --significance-level=ALPHA
                        The significance level for the analysis (default is
                        0.05)
  -k SEASONALITY_SCALE, --seasonality-scale=SEASONALITY_SCALE
                        The scale of the seasonality, if seasonality fits poorly
                        because you have great variance due to other factors, you can
                        increase this (default is 2.5, good values are between that and 10)

Output

Open the report.html file generated by Sherlock.

License

CC BY-SA 4.0

aso-sherlock's People

Contributors

luke14free avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.