Author: Idle fish technology – fat boy

background

As is known to all, want to DAU rose steadily, external drainage is a necessary means of common drainage ways are: advertising, share reflux and flow rate swaps, etc., and they also have a common technical problems, is called to end, this paper share calls the related knowledge and idle fish in calls to some of the backend system solutions.

Call the overview

What is the call terminal? In a nutshell, call is a way to open the target APP and load the content you want to display to the user in some scenarios. Here are some common examples:

When you browse Taobao in bed, you see a second-hand mobile phone that is very cheap. When you want to click on the details of the product, the mobile phone automatically opens Xianyu APP and loads the product details page. You can complete the following browsing and purchasing activities in Xianyu APP, which is called terminal.

Ding! Your mobile phone received a message, reminding you that the golden pillow durian costs only 9.9 to take home, you hold the mentality of trying to open the link in the message, at this time the mobile phone automatically opened an e-commerce APP and loaded with golden and attractive durian product information, this is the call end.

Call the most direct meaning is to get more user traffic. But clearly, get the user traffic on the road full of obstacles, such as some applications in order to lock the user would ban opened the other App, this time will need to guide the user through other ways to take the initiative to open the App, or the user is not installed App, you will need to guide the user through the download and the user download after the show users want to see the content, Therefore, call end is not only call end, it also includes download and restore two major content, the entire call end layout is shown as follows:

Call side solution

The most common call-end schemes are URL scheme and Universal Links.

Url Scheme

What is a URL scheme

Url is a unified resource locator, colloquially said that is the address, sometimes also called link, address. Scheme refers to the access method of resources, such as HTTP, FTP and HTTPS. In the mobile system, the specific scheme of app can be used to realize the jump of app. For example, if you need to open the SMS application and send a message to 10086, you can use the following link. The preceding SMS is the identity of the SMS application, and the following 10086 indicates that the sending object is 10086. If you access this address in the browser, the system will open the SMS application and send a short message to 10086, which is a relatively simple URL scheme.A slightly more complex URL scheme may look like this. This is the URL scheme for jumping to the details page of idle fish products. It is mainly composed of four parts, the front fleamarket is the symbol of idle fish, and the back item is a specific action. The key and value values of a series of parameters are followed by the scheme part which will be recognized by the system and completed the app opening behavior. The following parameters will be resolved and processed by the APP itself.

How do I trigger the call

Url scheme is a static protocol, so how to invoke it to trigger the call? There are several common ways:

1. Jump links directly through window.location.href, which is mostly used in IOS

1. Skip links through iframe, which is mostly used in Android

1. Open the APP through a specific JS bridge, taking Alipay as an example

How to judge call end successfully

In most cases, we want to direct the user to download if the call fails, so how do we know if the call is successful? For two company internal APP, can often through the bridge of some clients to provide precise calls end success, even can preliminary judgment is installed APP, but for some three scenarios, such as system browser, WeChat client, etc., can’t accurate know whether calls end successful, by this time there are two solutions:

1. No matter whether the user has installed the APP or not, displaying the download popup while trying to call the terminal may misidentify some end users, but the link integrity can be ensured. 2. Out-of-focus time listening to the page, in a specific period of time as long as the user left page, argues that calls the success, failure think conversely calls end, this method has some error of judgment, because most of the APP in the jump other APP will there be a second confirmation box, we can’t be the act of confirmation box, may call end user point to cancel but would be considered successful, It is also possible for the user to stay too long and even if the call succeeds, it will be deemed to have failed

Universal Links

IOS9 introduced universal Links above. Compared with Scheme call, Universal Links is a direct link. When users open Universal Links, iOS will check whether the target domain has registered any installed devices. If so, the corresponding App will start immediately and will not reload the web page. If not, the corresponding Web page will continue to be loaded in the browser, which ensures a good user experience. Universal Links requires clients to register domain names in the system, so the premise of this solution is that the current version of the client has completed domain name registration. Js code is shown as follows:

Download the program

When the direct call fails, we often need to guide users to download to make more traffic diversion. For different mobile phone systems, it is necessary to jump to different App markets. IOS is relatively uniform and you can directly jump to App Store, and most apps will not block App Store jump. Different mobile phone application markets have different addresses. For some non-mainstream models, download APP directly by downloading APK package, and the flow diagram is as follows:

Reduction plan,

What you see is what you Get is a very important technology. If users are not guided to open the App properly, there will be a fault in user experience, and it is easy to cause user loss. For example, if users are attracted by 9.9 package mail products outside the terminal, they should automatically display the corresponding product details to ensure the integrity of the link. In the scenario of direct call, the client can directly identify the parameters in the call protocol and open the corresponding continuation page. However, in the scenario of no call, scene restoration becomes relatively difficult. The recovery scheme of idle fish can be divided into two categories

1. Server assisted restore

Before the off-end user jumps to download, the front-end actively reports data. After the user opens the App after downloading, the client actively reads relevant services and makes matching. If there is matching data, the corresponding target page will be opened

2. Locally assisted restore

Before the off-end user jumps to download, the front-end actively stores the data locally. After the user opens the App after downloading, the client actively reads the local data and makes matching. If there is matching data, the corresponding target page will be opened

Call end data tracking

Data protocol

No Data, No BB! Calls we are most concerned about the level of data is called the success rate, the indicators can be a good measure of drainage of the value of a business, you want to call success rate, accurate calculation must need statistics page calls at terminals and the terminals, in order to more accurate identification of each to the source of the end users, we design called server-side data protocol is as follows:

xianyu_growth_channel.spmstr-source-materialId-type.extend
Copy the code

• Xianyu_growth_ : fixed value used to identify call data for idle user growth domain • Channel: Call channel information, for example, the call terminal in Taobao can be identified as TB • SPMSTR: SPM information, the unique identifier of a page within the group • Source: user-defined source, for example, douyin_card•materialId: Material ID, such as click buy button call can be buy_button, click to see more call can be more_click•type: call type, used to indicate whether the call is direct or download restore indirect call •extend: Expand the field to fill in the data that the business wants to count, such as product ID, share source, etc

Data to the SDK

If all the data are made by various business parties in the form of parameters passed in, laborious and prone to errors, obviously it is easy to agreement did not understand the development of random parameter values and cause data loss or abnormal, so you need to have a SDK to convergence data content as much as possible, here are a few can automatically judge populate fields:

1. Channel: Most channels can obtain channel identification through UA, such as Taobao, Tmall, Taote, etc. 2. SPMSTR: SPM value can be automatically obtained through a unified method, without any business input 3. The type value can be dynamically modified when the calling side SDK performs the calling side or download behavior. For example, the value of the direct calling side is 0, the value restored by reporting is 1, and the value restored by clipboard is 2, without the caller’s perception

The data reported

With data protocol, the next step is data reporting and storage. This link requires the cooperation of front-end, client, back-end and BI. The front-end is responsible for splicing data protocol behind the link. BI needs to parse the content stored in the database and visualize the call funnel of each business channel. The overall link is shown as follows:

Call end success rate statistical caliber

Call end denominator: end click PV, because the end of the probability is not logged in, so the statistical SIGNIFICANCE of UV is not big call end success (thick caliber) : end directly monitored call end callback, error is large call end failure (thick caliber) : end directly monitored call end callback, error is large to end molecules (precise caliber) : Pv of data directly reported by the end with small error formula of call end success rate: Call end rate of each channel and business of call end PV: The corresponding success rate can be calculated through channel and SPM screening

Application of call terminal in business

In order to make calls end more simple and efficient, we through the form of links to hijack call end non-inductive let do business development, the development of a single point of business how to jump, you jump, don’t need to care about what is currently in the channel, the scene, also do not need to deal with restore guide to download and scene, all the details on the tip of the call to a unified call module processing. When the business confirms that the current page needs to be used for outbound, it only needs to introduce the following call module and make a simple configuration to be compatible with all the functions of the outbound call. This module will perform some calculations when hijacking to the link jump to confirm whether to intercept the call.

End direct call end effect demonstration

Unprovoked download restore effect display

Summary & Prospect

Above is idle fish on the call end, download, reduction, the content of the data, we are committed to build an extreme non-inductive convergence, simple acme, development, business non-inductive, data automation system call end, it will become core against the direction of the next six months, the next will be combined with the end in sharing data to do the whole link tracking, I hope we can have a more ambitious huanduan layout next year, so that huanduan can give full play to its maximum business value.