📜 ⬆️ ⬇️

Who are all these people? Let's ask K50


Hi, Habr. We will not pour water until kata, immediately get down to business. The bid optimizer in contextual advertising K50 platform offers its customers the tools to increase the effectiveness of advertising. Most of them are related to the online environment, which is quite logical, because we are talking about network technologies. For companies whose phone calls accounted for 30% (and in some subjects up to 70-80%) of the total number of incoming calls, there was not enough data to analyze advertising. It was for such K50 customers that they decided to develop a service in order to receive detailed information on each call, including its duration, recording, keyword and chain of events-visits, which led the client. It sounds difficult, but it was implemented quite quickly thanks to the ready-made Voximplant components (well, praise yourself a little, sorry).

Dynamic constructor for dynamic call tracking


As you might have guessed, we are talking about static and dynamic call tracking. Recall how they differ from each other. Static call tracking helps to find out which channel is the most effective: Facebook, contextual advertising or outdoor advertising. And dynamic call tracking is not only the channels, but also the effectiveness of different keywords in evaluating the actions of individual clients.

From the point of view of telephony, in the first case a virtual number is allocated for each advertising channel, and in the second - for each session visitor.

The K50 guys thought through all the logic and even raised their own telephony. Everything would be fine, but its telephony was very capricious and required almost a specially designated person to support it. The candy and bouquet period ended with K50 learning about Voximplant - and painlessly switched to a new platform. It took a few lines of code, a little time and, of course, a good mood (without it, nothing at all, yes).
')

Voximplant Field Testing


K50 rents a pool of virtual numbers from us. If their clients have connected static call tracking, then virtual numbers need a little: one is enough for each channel. In dynamic call tracking, the number “mask” is “replaced” for each user, so the number of numbers is calculated depending on the number of users and the duration of the session. K50 offers its customers numbers for 60 cities of Russia and 30 countries (as many as we offer to all Voximplant developers).

The site visitor dials the number, and the call arrives at the Voximplant platform, which connects it with the company's manager (client K50) - in accordance with the prescribed scenario. For example, a call can be directed either to one number or to several - so that different managers can pick up an incoming call (parallel or serial dialing).

{...}
var callerid = '75555555555'; // ,
var options = {
method: 'POST',
postData: data.number, //
headers: 'X-some-key: 123' //
};
Net.httpRequest(url, // url
(e) => {
var res = JSON.parse(e.text);
if (res.managers.length === 1) {
calls.manager = VoxEngine.callPSTN(res.managers[0].number, callerid);
VoxEngine.easyProcess(calls.client, calls.manager); //
} else if (...) {
//
}
}, options);
{...}
view raw gistfile1.txt hosted with ❤ by GitHub

After the call, Voximplant sends all data to K50: time, duration and recording of the conversation, number of substitution, number of call forwarding and so on. Collected data K50 analyzes and ranks for each of the users separately, in accordance with the data that has already been collected: a chain of visits, a source and a keyword.

Now everything that has been said, only in the form of a picture, is more obvious.


{...}
calls.client.addEventListener(CallEvents.Disconnected, (e) => {
var callData = {
duration: e.duration
{...} // -
};
var options = {
method: 'POST',
postData: JSON.stringify(callData),
headers: 'X-some-key: 123' //
};
Net.httpRequest(url, callback, options);
});
{...}
view raw gistfile1.txt hosted with ❤ by GitHub

We also recommend to see our article on Habré , with examples of the implementation of call tracking.

And back


K50 also offers its customers a widget for callbacks - in which a site visitor can leave their number to be called back.

When a callback request appears on the K50 client site, the K50 dynamically collects the “user profile”. His name, interests, page of the site get into it. And then Voximplant, having phoned to the manager, pronounces the formed message to him. For example, "Aladdin, is interested in the magic lamp." And while the manager is listening to this message and is mentally preparing to tell about the models of magic lamps with jinn, Voximplant dials up to Aladdin and connects him with the manager. All are satisfied in this case (except, perhaps, jinn).

Another picture:

{...}
var message = ' , ' + data.name + ' ' + data.sectionName; //
var lang = Language.RU_RUSSIAN_FEMALE; //
{...}
calls.manager.addEventListener(CallEvents.Connected, () => {
calls.manager.say(message, lang); //
calls.client = callPSTN(data.number, callerid); //
calls.manager.addEventListener(CallEvents.PlaybackFinished, () => {
easyProcess(calls.manager, calls.client); //
});
});
{...}
view raw gistfile1.txt hosted with ❤ by GitHub

And what is the result?


In order to start tracking calls, the K50 client must install a counter code on his website. Nothing complicated.

The tracker is synchronized with K50 analytics, Google Analytics and client CRM, and therefore customers can trace the entire sales funnel - and find out exactly which call led to the purchase. On the basis of the data from the Tracker (browsing pages, if you called for a consultation), you can customize advertising campaigns and show new messages in real time - there are specialized K50 services for this.

K50 have been working for us since November 2015. Well, in order for you to assess the scale of cooperation between our platforms, let us indicate the volume of processed calls - 180 thousand monthly, with the definition of the source of each call and obtaining detailed information about the subscriber. It seems not bad, how do you think? If you need more technical information, we will be happy to provide it, ask.

Picture before kata taken from The Irish Time website.

Source: https://habr.com/ru/post/336522/


All Articles