One thing I am very good at doing is pushing myself to do more. What I am not so good at is knowing when to stop. For many of us, it is close to impossible to end the day feeling like we have done…
All of us know what to do, right? Front end knows how to write java script, data engineering knows everything about big data ecosystem, we know what executives would like to know, but it still feels that something is missing.
So far the biggest obstacle I noticed while working at analytics positions in big companies is the scope of work and number of people involved when it comes to answering seemingly easy questions asked by executives. It is not rare for teams dedicated to analytics, data engineering and front-end to work separately in scrum framework, and thus consequently it can take even weeks until the job is done.
The second problem about such questions is that they are often too general, sometimes as data analyst I have impression that “somebody up there” doesn’t really know what he wants. Hence, delivering proper information is even more challenging because I have to invent metrics and event schema on my own.
That is why I am writing these guidelines for you: first of all, to help you find yourself being a “bridge” between IT engineers and executives, and secondly to give you ideas for advanced insights in how people use your product. The first two chapters are about general data-engineering related topics. You will find there fundamental events or basics about big data storage optimization, and more detailed explanation about cooperation and workflow.
I will use navigation as an example of interaction type, and to explain basic information which should be present in events table. It is important to distinguish interaction types like navigation, search or ads, based on what reports are needed by executives. If we partition data in table by such event type it will have huge impact for report queries performance.
That is, in my opinion, the best way to store information so query and storage optimization, ability to change and simplicity can meet, and we shouldn’t have not enough or too much data. At every next interaction type I will skip columns like ids, properties and partitions so it will look much cleaner.
The best situation is when we have event we need, but as it often is when it comes to analyzing things we do not gave enough data, so the whole process starts to be quite complicated. The most important step is the ticket description at the beginning — bad one leads to confusion on every next step and increases time and effort needed from other people to do the job.
That is a place where data analyst should be confident about his needs, as he is the most informed person in this chain. He should bear in mind and respect a fact that front end and data engineering teams always have something to do and by helping them, their time needed “for us” can be minimized as much as possible. That is why table schema should fit any new event and manual testing should be done by us.
For each interaction type you will find questions that may be asked by executives, proposed metrics to describe it and event schema so the metrics can be calculated.
The user experience: I activate search bar and top searches appears. While typing, recommendations appear accordingly to the things I type. I can still ignore those things and search my typed query, and then click on the result.
It can be an article, wiki page or tutorial. Users can mark fragment with the type as the most interesting, funny or surprising, depending on the kind of content. It will become highlighted, just like in this article — and it will help build and broaden user experience, as the user sees others engaging in it like him. Also, the point event should be sent every few seconds to be able to calculate scrolling speed until some time will pass, to exclude not active cards.
That varies a lot between apps, I will assume that there could be few rails (columns/blocks) for content at home page, and each content has main image and a visible title.
You can define product as anything you would like to sell, that could be a real thing or service. I assume that there is a short description, long one, comments, main picture, other pictures, and some specification. If your app does not have all of them ignore them and use what you have.
Ads are pretty simple, there are slots for ads and bids from real time bidding service. Things starts to be complicated when you thing about extensions blocking java script code which is not possible to track.
Those questions usually require querying by all events and do not require more tracking. These are just some thoughts which comes to my mind when I think what I would like to know about my app users.
Just imagine Facebook and its comment logic. You can also combine videos with other kind of content, so there could be questions like “Which part of video/article made people leave a comment (so that they engage more)?”
I guess there are many things I haven’t included — you are welcome to write about them in comments - I will also come back to this article after few months to update it with what I have learned.
I recently started working with Ruby (almost 2 months now) and Ruby on Rails (a little over 3 weeks). Working with Rails’ Active Record framework is one of my favorite things about Ruby on Rails. In…
Vanuit een holistisch beeld heeft de mens 4 lichamen: een fysiek, een emotioneel, een mentaal en een spiritueel lichaam. Maar heel vaak zijn wij slechts met de fysieke en mentale kant van dingen…
I just shared one of the most intimate experiences in my life, and quite frankly the vulnerability feels great! I have always tried to shy away from exposing the parts of my life that are not…