What is a prism?

Xiaoju Prism is a tool focused on mobile terminal operation behavior, covering APP operation playback, operation detection, and data visualization capabilities. In this paper, we will introduce the prism as a whole from the product design concept and technical implementation ideas.

Functional structure diagram


Two, why do you want to do prism?

Mobile terminal as the current most business almost the only carrier, determines our daily iterative development, testing, operation analysis, the products will be made around it, so that the mobile terminal operations on behavior is especially important, use well can bring efficiency, create user value and commercial value, that how we can better use them? The Little Orange prism was born for this purpose.


Three, prism what are the highlights?

  • Zero invasion

Business code does not require any adaptation.

  • High availability

Each capacity has been running smoothly in the production environment for more than one year.

  • Self-developed operation behavior identification instructions

In addition to the existing function of the support prism, there may be a larger stage.

  • Rich and flexible operation behavior policy support

Dsl-based implementation of rich operational behavior policy support, can meet the common detection requirements.

  • Fully functional

Comprehensive capability coverage around mobile terminal operation behavior, providing more possibilities.


Four, what is the ability of prism?

It has been nearly two years since xiaoju Prism was first conceived. After continuous thinking and practice, it has evolved into three parts:

The first part is a mobile solution covering the whole process of buried point, including multi-dimensional PV/UV, thermal map, conversion funnel, page stay time and other functions of buried point data visualization category, as well as a fast registration and testing tool for buried point auxiliary category. The significance of this part lies in that it changes the way people view data in daily life, makes it easier for students who are good at using data to use data, and makes students who are not good at using data start to like using data.

The second part is the most innovative function of prism, which is also the basis of the whole prism platform. We realized the operation playback (video playback/text playback) on the APP terminal based on the operation behavior identification instructions developed by ourselves. Compared with the traditional static buried point data, it provides dynamic operation behavior, which can help us better locate problems, optimize products and create value for users.

The third part is real-time operation behavior detection on APP side, which is also based on self-developed operation behavior identification instructions and semantic operation behavior policy description scheme (DSL), supporting rich semantics and flexible policy configuration. It can help us realize the demand of end-to-end scenarioization, and we hope to use it in customer service scenarios in the future to improve user experience and create more user value.

Next, we introduce the functions of each part in detail:


Part.1 Buried point whole process solution

As introduced above, this part focuses on the visualization of buried data on mobile terminals. It is not unusual from a purely technical point of view, and there should be many similar practices in the industry, so we will discuss its application value more:

1.1 Reflection on the existing model

Take our group as an example. When we want to see some buried data on some pages, there are probably two ways:

The first way depends on the calculation and arrangement of the number warehouse of each BU

  1. After presenting their own data viewing demands to Students of Shucang, students of Shucang digested the demands and scheduled development.
  2. According to the business burying point description document, students in the data warehouse searched the target data from the bottom table of burying point and calculated the output into Excel.
  3. The demander gets Excel and checks corresponding data based on buried point ID.

The second way is to directly query the data platform

  1. Locate the buried point ID on the target page according to the service buried point description document.
  2. Retrieve the target burial site and view the data on the burial site Management page.
  3. If you have more requirements for data dimensions, you need to go to the extraction tool and write your own SQL calculations.

1.2 Changes brought by prism

With the Little Orange prism, the process is simplified to the point where you just need to:

  1. Open the PRISM APP to check the data.

Note: the data presented have been specially processed for introduction only.

While this is exciting to believe, what else have we done to optimize the process beyond the basic “embedding” of buried data on page elements? Or what is the best posture for data visualization?

1.2.1 Unified buried point specification and data calculation scheme

The data demander is almost never satisfied with just looking at general PV/UV data. In our communication, the most basic demands of everyone include: view by city, view by user type, view by location and ID of buried points being reused, etc., putting forward many requirements for multidimensional data sources.

Therefore, we worked out a set of unified buried point specification and data calculation scheme together with students from the car service data warehouse to control the whole process from buried point reporting, calculation, storage to request viewing, ensuring that users can easily switch data dimensions with simple operation on the APP end.

1.2.2 Natural interaction design

On the one hand, there are usually many buried points in a page. On the other hand, data visualization also covers several functions, such as multi-dimensional PV/UV, thermal map, conversion funnel, page stay time, etc. In this case, good interactive experience and UI design can ensure that users can skillfully navigate through complex pages and data. This also puts forward high request to prism.

In the whole iterative process we constantly collide with designers, myself as a development also often think about how to give the user a better experience, after many versions of the iteration, this version has been recently “recognition”, but it is one of the most satisfied, I can even feel the user in the process of using the delight of love.


Part.2 Operation Playback

2.1 Why replay?

At first, I encountered some user problems in the car-sharing business. After investigation and induction, I suddenly realized one problem: Although we every day in the mobile end products, but we don’t know what are our users how to use the products of our elaborate design, can the user’s perception of a page or a button and when we design the original intent of deviation even radically different, can we find a very reasonable location button for users is not easy to find, There should be a lot of problems like this, which creates a cognitive disconnect between us and our users.

So there was an impulse to make it easy to see, to give people the ability to understand their users from a God-like perspective, combined with flexible filtering to help them uncover hidden and pressing user problems.

[the Demo show]

2.2 How to play back?

I had the impulse, but the reality was that I had never had any practical experience like this in my head, so I just started with my imagination.

Less than ideal “puzzle ideas”

At first, I thought of the “puzzle idea” : if each step of the APP can be uniquely marked, and a dictionary can be maintained to store the corresponding relationship between the action mark and the page screenshot, then a set of actions can be converted into a set of screenshots, which can be continuously played into a playback video. I tried this idea in depth, but encountered some problems, such as not unique operation marks, difficult collection and maintenance of dictionaries (dictionaries can only be collected in the internal test phase due to user privacy issues), poor effect of assembling videos, which did not meet expectations, so the progress was stalled for a while.

Successful landing commands drive thinking

Also benefit from the continued till little orange prism, at the same time I still think buried points in the whole process of solution of the problem of how to realize the automatic submerged point, just at the time of the mobile end page elements unique identification have a new train of thought, suddenly found that this new way of thinking might drive the realization of the playback, so there will be a cool by command driven APP playback.

2.3 Description of the scheme

There are many things that can be discussed in detail in the overall scheme of playback, including but not limited to:

  1. Theoretical basis: the generation strategy of unique identifiers for mobile elements
  2. Instruction generation module implementation ideas
  3. The implementation of instruction parsing/translation module
  4. The implementation idea of instruction scheduling module
  5. Real reduction ability to achieve ideas

Due to the lack of space, this article will not be discussed, please visit our Xiaoorange Prism open source project, where there are detailed code and documentation.


Part.3 Operation test

3.1 Why do we need to do operation inspection

I don’t think you even need to answer this question, because almost everyone reading this article has examples of things you can do with operational detection. At first, I wanted to do this part because of the special action of healthy CPO of car sharing. I expected to perceive the problems that users might encounter based on real-time behavior, and provide some exclusive guidance on the interface to help users solve the problems in real time, so as to achieve the purpose of healthy CPO and improve user experience. Later, the scene marketing demand of Xiaoju owning a car still requires the ability of operation and detection.

[the Demo show]

3.2 How to do operation inspection

Operational detection of some simple policies is easy to implement, but if you want to add some requirements:

  1. Supports real-time adaptation of new policies and dynamic policy delivery.
  2. APP full point support (across business lines, across pages)

At this point the implementation complexity increases exponentially, and after attempting to break down the problem we tease out the basic capabilities necessary to build such a mechanism:

  1. General behavior identification ability, that is, the operating behavior identification instructions developed by prism.
  2. General strategy description ability, namely the existing semantic behavior description scheme of Prism.
  3. Universal end – side operation behavior detection engine.

Fortunately, we have been deeply engaged in the end-to-end operation behavior, and some existing practices have made us have partial foundation. With the continuous improvement of basic capabilities, we finally achieved the perfect implementation of flexible and configurable operation and detection capabilities.


Support platform and access

Currently, Xiaoju Prism supports iOS, Android and some H5 platforms on mobile terminals, and has been integrated into Didi Apps such as passenger end, owner end, Xiaoju Car end, Xiaoju car store end and so on, and the business development of my-bike service has been achieved.

At the same time, the brother team Puhui Travel’s freight business, proxy driving business and orange heart preferred business are also being connected. With the continuous improvement of Prism’s capability, we also look forward to helping more businesses and exploring greater possibilities.


Six, series of articles and open source introduction

As the opening introduction of prism, the purpose is to give you an intuitive impression from the whole, as mentioned above, specific to the details of thinking need a lot of space to discuss, so welcome to our little Orange prism open source project, to help you understand the rich and interesting prism world.


Write at the end

Working with prism for so long, we still feel that every capability we have is not perfect enough, let alone those unknown areas. So let’s end with a sentence you like: Throw yourself into it and wait for it to blossom. Let’s encourage each other.

Attached: GitHub open source address

Github.com/didi/DiDiPr…

Open source team

The team members are all from didi car service technology team

read

Content editing | contact us | Teeo [email protected]

Wechat search “Didi technology”, follow the public account, learn more about core technology dry goods oh