Real Time Crowd Management API goes out of beta

We have the pleasure to announce that the Real Time Crowd Management (RTCM) API is now out of beta and has become a full commercial offering.

Contents

  1. What is Real Time Crowd Management API (RTCM API)
  2. Making sense of the RTCM data
    1. Turning zones into bins
    2. Mapping bins to the cellular network
    3. Bin overlapping cells
  3. RTCM data streams
    1. HTTP destination
    2. EnCo CloudEngine destination
  4. How to get started?

What is Real Time Crowd Management API (RTCM API)

The RTCM API allows users to access Proximus’ mobile network data and retrieve the number of national and international mobiles detected in a user-defined zone in real-time (or near real-time). Each mobile connected to our network generates data, based on its communication activities (calls, SMS & data). Before being exposed through the API, all this activity data is further aggregated and fully anonymized to prevent individual people tracking (f.i.: no data is returned if less than 30 mobile endpoints are detected in a cell). Mind that as we know our mobile market share, any data we measure is extrapolated to the total possible population. So what you get are not just detected Proximus mobile phones.

RTCM doesn’t require you to deploy any onsite infrastructure, because it relies on the nationwide mobile network coverage of Proximus. Unlike audience measurement solutions that rely on WiFi or Bluetooth sniffing, smart cameras or radar technologies. This doesn’t mean these other technologies are not valid. They may be of greater value when finer-grained audience data is needed. Just think about measuring the audience within a room of a specific building. Reading this article further should help you understand when RTCM can be applicable to your use cases.

Equally important to understand is that being API-based, RTCM is not a complete end-to-end solution including data storage and pre-canned reports. Users in search for such a solution can look at Proximus Crowd Management on the Proximus My Analytics portal.

The API allows developers to:

  1. Define a geographic zone (using the API or the RTCM microsite on proximusapi.enco.io)
  2. Establish schedules for generating the data stream on the zone (stream duration and data interval frequency)
  3. Determine the target for these data streams (typically an HTTP endpoint)

Making sense of the RTCM data

Turning zones into bins

To use RTCM, you start by creating zones that will be divided into “bins”, as described in the RTCM API documentation. The mobile device count that you receive in your RTCM data streams is related to each of these bins. The size of individual bins can range from 100m x 100m to 7,5km x 7,5km, depending on the total area of the defined zone.

It is important to understand that bins in a zone will be related to some cells of the mobile network. This has a direct influence on the precision of the data you are expecting to receive.

Let’s dig in!

Mapping bins to the cellular network

Let us take an example where you would need to count the number of people in the “Cinquantenaire Park” in Brussels, as shown in the picture below:

We can see that the bins of the defined zone are matching quite well with 2 of the network cells. Therefore the reported data will be quite accurate.

Now let’s assume you want to measure audience at a golfing event. You create a zone made of 5 bins, as shown in the picture below. In the RTCM microsite, you can see the border of the network cell (“Show shapefile” option on the RTCM map) which covers these bins. The mobile data we are using is not based on GPS info from the mobile devices. This means we know how many mobiles are detected in a network cell, but not how they are spread within. Therefore, each bin within that cell will return an average value proportional to the cell size. For example, if my cell can hold 300 bins, then each of the bins will report 1/300th of the total cell count.

Back to our golfing event. RTCM will not allow you to know the number of people on the golf green in these bins: the selected bins are a too small area compared to the hosting network cell.

As we can understand from this example, RTCM will return more adequate counts when the selected zone is close to the size of the cells in that area or covering multiple cells.

Bin overlapping cells

As in any data project, it is key to understand the source data you will be using. As we understand from this article, the reported mobile count by bin in an RTCM data stream will depend on the relation between the bins and the hosting mobile cells. The following principles should therefore always be taken into account when working with RTCM:

  1. A bin in a macro cell will report data that is in proportion of the bin’s size compared to the macro cell’s size
  2. A bin overlapping 2 macro cells will follow the same principle as #1 above. Except this applies to the 2 macro cells (ie. will report proportional mobile counts from both macro cells).

RTCM data streams

Once you defined your zone, you can start planning your first data stream. A stream can be programmed to start immediately after creation or at a scheduled moment in the future. Streams are always bound in time. Actually, they can only be defined for periods between 1 hour minimum and 12 hours maximum, with new data being pushed every 1 or 5 minutes.

You will be presented with 2 options for streaming your data:

  1. HTTP endpoint destination (your web service)
  2. Proximus CloudEngine : our integration event hub

HTTP destination

The first possible destination for your stream is your own HTTP endpoint (web service), which must support both HTTP POST and HTTP OPTION methods. As soon as your data stream kicks in, your endpoint will start receiving a json structure as below at each interval:

EnCo CloudEngine destination

The second way to deal with your stream is to send it to the EnCo CloudEngine, which allows you to do things such as:

  • Duplicating the incoming RTCM data stream towards multiple destinations at one
  • Summing up the count of national/international mobiles, and only send these sums at every interval
  • Send the stream data to a MQTT broker, to Microsoft Azure IoT Hub, and other type of destinations and protocols.

To leverage CloudEngine you only need to specify a unique tag identifier in your stream definition. Then use the same tag(s) in the RTCM inbound endpoint in CloudEngine:

How to get started

First of all, create an account on enco.io. Anyone can create an account on the platform, regardless if you are a Proximus customer or partner already. Once done, simply register to the RTCM Free Plan in our marketplace. The free plan allows you to trigger up to 3 data streams on a predefined zone defined around the Proximus Towers in Brussels. To create your own zones and have full flexibility on data stream definitions, you need to subscribe to the RTCM Premium plan which will be billed on a per usage basis.

On our GitHub, you will find a sample Java application ingesting data from RTCM and displaying it live on a Google Map. You can also find a sample CloudEngine script which ingests an RTCM data stream. It sums up the national and international mobile counts of all bins, and then sends this results over HTTP in a new json structure.

Don’t hesitate to contact our team of experts on enco@proximus.com if you need more information or some help on using the API.