Skip to content

Overview

With Pointr, the foundation of our analytics package is around events, so let’s define an event:

An event is anything that a user actively does; it is how your customers are interacting with our platform. This could be searching, wayfinding, or even just browsing the map.

Before we dive into the events, here is a reminder: if you have not already seen the base data we capture for every event, please refer to the analytics overview section.

On to the exciting part, our events and the data captured are as follows:

Persistent Data Points

Configuration

Configuration values are sent with every event and consist of the following data points:

Field Description Example
platform Whether the user is on Web, Mobile or Express Mobile
appid What app the user is coming from com.pointrlabs.sample
clientid The id of the client 29e8e3b7-303-4C45-89FD-EE57606BD5D7
useragent More detailed version the user is coming from MobileSDK/8.9.0
osVersion OS version of the user IOS 17.0.1
phoneMake Make of the phone apple
phoneModel Model of the phone iPhone 13
baseURL The url the user is coming from http://massport-v8-qa-api.pointr.cloud/
country The users country USA
language The language of the users device en

What does it look like?

{
 "configuration" : { 
     "platform": "mobile", 
     "appId": "com.pointrlabs.sample", 
     "clientId": "29e8e3b7-30a3-4c45-89fd-ee57607bd5d7", 
     "userAgent": "MobileSDK/8.9.0", 
     "osVersion": "IOS 17.0.1", 
     "phoneMake": "Apple", 
     "phoneModel": "iPhone 13", 
     "baseURL": "https://client_pointr_cloud_api_url/", 
     "country": "USA", 
     "language": "en" 
 }

Current Location

Location is captured whenever available for all events, the only exception is if a user is off-site we never record the location as we at Pointr respect our users privacy.

Field Description Example
onsite Whether the user is on site or not True (boolean)
locationType What kind of technology was used for location “Ble” (string)
sid Site internal ID 1 (numeric)
bid Building internal ID 1 (numeric)
lvl Level index 1 (numeric)
lat Latitude of the user 0.5443 (decimal)
lon Longitude of the user 0.544354 (decimal)

What does it look like?

{
 "currentLocation": {
        "onsite": true,
        "locationType": "ble",
        "sid": 2,
        "bid": 4,
        "lvl": 0,
        "lat": 0.54443,
        "lon": 0.5443543
}

Events Overview

Usage Analytics

Start SDK

Event Additional Parameters When
start-sdk - Anytime the Mobile or the Web SDK is started, start-sdk action is sent. Note that for web, after start-sdk, a map is always displayed whereas for mobile, the client app that is implementing the mobile sdk does not have to initialize mapwidget to show the map. This event is only to keep track of Pointr SDKs being initialized to be utilized in client apps.

Note: Start SDK means the SDK has been started. As the app developer controls the UI of the app, this might or might not mean the end user has started using the SDK.

Example JSON:

{
    "deviceId": "05d9e18a-595d-4f9f-83d6-80527823a17f",
    "sessionId": null,
    "timestamp": 1697784992,
    "analyticsVersion": 8.11
    "configuration" : {
    // See configuration section
    },
    "currentLocation": {
    //  See current location section 
    },
    "action": "start-sdk"
}

Use SDK

Event Additional Parameters When
use-sdk action-status
- “session-start”
- “session-end”
- “activation”
‘mobileSessionTimeoutInSec’
The first time a device interacts with the Pointr SDK an “activation “event is sent, after that a “start-session” is sent once per unique ‘sessionid’
“session-end” is being deprecated
‘mobileSessionTimeoutInSec’ refers to the inactive time from when a session times out and a new one begins

Example JSON:

{
    "deviceId": "05d9e18a-595d-4f9f-83d6-80527823a17f",
    "sessionId": "16b4cacb-20aa-41fb-a841-0c0483c117fd",
    "timestamp": 1697784992,
    "analyticsVersion": 8.11
    "configuration" : {
       // See configuration section
    },
    "currentLocation": {
   //  See current location section 
    },
    "action": "use-sdk",
    "actionStatus": "session-start",
    "params": {
        "mobileSessionTimeoutInSec": 1800
    },
}

Quick Accesss

Event Additional Parameters When
quick-access * action-status
- “selected”
- “expanded”
resultCount (Numeric)
category (String)
Any time quick access is interacted with
- “selected” triggers when the menu is brought into focus
- “expanded” triggers when a user drills into a category

Example JSON:

{
    "deviceId": "05d9e18a-595d-4f9f-83d6-80527823a17f",
    "sessionId": "16b4cacb-20aa-41fb-a841-0c0483c117fd",
    "timestamp": 1697784992,
    "analyticsVersion": 8.11
    "configuration" : {
       // See configuration section
    },
    "currentLocation": {
   //  See current location section 
    },
    "action": "quick-access",
    "actionStatus": "selected",
    "resultCount": 12,
    "category": "dining",
}

Geofence

Event Additional Parameters When
geofence * action-status
- “entered”
- “exited”

geofence consists of:
name (string)
type (string)
fid (guid)
eid (guid)
centerLat (decimal)
centerLon (decimal)
coordinates (collection of locations)
Any time a geofence is entered / exited

Example JSON:

{
    "deviceId": "05d9e18a-595d-4f9f-83d6-80527823a17f",
    "sessionId": "16b4cacb-20aa-41fb-a841-0c0483c117fd",
    "timestamp": 1697784992,
    "analyticsVersion": 8.11
    "configuration" : {
       // See configuration section
    },
    "currentLocation": {
   //  See current location section 
    },
    "action": "geofence",
    "actionStatus": "entered",
    "params": {
        "geofence": {
            "geometry": {
                "type": "Polygon",
                "coordinates": [
                    [
                        [
                            29.036130959724893,
                            41.088997465407964
                        ],
                        [
                            29.036013781253416,
                            41.08899312665177
                        ],
                        [
                            29.03589773132073,
                            41.088980152169526
                        ]
                    ]
                ]
            },
            "name": "LevelGeofence1",
            "type": "level",
            "fid": "8cb7ef64-fa87-4fbc-b8a4-f21caf61dbe9",
            "eid": "MyLevelGeofence1",
            "centerLat": 22.302084532295925,
            "centerLon": 114.16707177123519
        }
    },
}

Change Language

Event Additional Parameters When
change-language lan (string) Whenever the language is changed
lan refers to the new selected language

Example JSON:

{
    "deviceId": "05d9e18a-595d-4f9f-83d6-80527823a17f",
    "sessionId": "16b4cacb-20aa-41fb-a841-0c0483c117fd",
    "timestamp": 1697784992,
    "analyticsVersion": 8.11
    "configuration" : {
    // See configuration section
    },
    "currentLocation": {
    //  See current location section 
    },
    "action": "change-language",
    "params": {
        "lan": "gr"
    },
}

Rate Experience

Event Additional Parameters When
rate-experience rating:
- ”good”
- ”bad”
Feedback (string)
Anytime rate my experience is responded to by an end user across all of our SDKs we record the response.
Note for positive feedback we record “good”, for negative feedback we record “bad” and the feedback itself

Example JSON:

"action": "rate-experience",
  "params": 
{
    "rating":good" || "bad",
    "feedback": " "
   },

Map-Interaction Analytics

Display Map

Event Additional Parameters When
display-map - Whenever the display map is called in the API regardless of if it is shown or not

Example JSON:

{
    "deviceId": "05d9e18a-595d-4f9f-83d6-80527823a17f",
    "sessionId": "16b4cacb-20aa-41fb-a841-0c0483c117fd",
    "timestamp": 1697784992,
    "analyticsVersion": 8.11
     "configuration" : {
    // See configuration section
    },
    "currentLocation": {
    //  See current location section 
    },
}

Map Interaction

Event Additional Parameters When
map-interaction duration (numeric)
mobileMapSessionTimeoutInSec (numeric)
Whenever the map is interacted with (pinch, zoom, pan etc)
mobileMapSessionTimeoutInSec refers to the configured inactivity timeout before an interaction event ends.

Example JSON:

{
    "deviceId": "05d9e18a-595d-4f9f-83d6-80527823a17f",
    "sessionId": "16b4cacb-20aa-41fb-a841-0c0483c117fd",
    "timestamp": 1697784992,
    "analyticsVersion": 8.11
    "configuration" : {
       // See configuration section
    },
    "currentLocation": {
   //  See current location section 
    },
    "action": "map-interaction",
    "params": {
        "duration": 382,
        "mobileMapSessionTimeoutInSec": 30
    },
}

Wayfinding Analytics

Get Directions

Event Additional Parameters When
get-directions * action-status
- “successful”
- “unsuccessful”

startPoi[1] or startLocation[2]
destinationPoi[1] or destinationLocation[2]
A POI is defined as:
fid (guid)
name (string)
typeCode (string)
centerLon (decimal)
centerLat (decimal)

A Location is defined as:
sid (numeric)
bid (numeric)
lvl (index)
lon (decimal)
lat (decimal)

features (Collection of locations)
error (string)
Whenever a user initiates static wayfinding this is triggered
“Unsucessful” refers to a case where a path cannot be calculated

Example JSON:

{
    "deviceId": "05d9e18a-595d-4f9f-83d6-80527823a17f",
    "sessionId": "16b4cacb-20aa-41fb-a841-0c0483c117fd",
    "timestamp": 1697784992,
    "analyticsVersion": 8.11
    "configuration" : {
    // See configuration section
    },
    "currentLocation": {
    //  See current location section 
    },
    "action": "get-directions",
    "actionStatus": "unsuccessful",
     "params": {
        "error": "Cannot find a path to destination Poi",
        "destinationPoi": {
            "fid": "9f4c5dc1-dcab-e8c5-e509-000000927805",
            "name": "Men’s Restroom",
            "typeCode": "facility-services",
            "centerLat": -0.16249744,
            "centerLon": 51.4993839
        },
        "destinationLocation": null,
        "startPoi": null,
        "startLocation": {
            "sid": 2,
            "bid": 4,
            "lvl": 0,
            "lat": 0.54443,
            "lon": 0.5443543
        }
    },
}

Wayfind

Event Additional Parameters When
wayfind * action-status
- “started”
- “completed”
- “failedToInitialize”
- “failedToComplete”
- “canceled”

startPoi[1] or startLocation[2]
destinationPoi[1] or destinationLocation[2]

A Poi is defined as:
‘fid’ (guid)
‘name’ (string)
‘typeCode’ (string)
‘centerLon’ (decimal)
‘centerLat’ (decimal)

A Location is defined as:
‘sid’ (numeric)
‘bid’ (numeric)
‘lvl’ (index)
‘lon’ (decimal)
‘lat’ (decimal)

‘features’ (Collection of locations)
‘duration’ (numeric)
‘error’ (string)
Whenever a user initiates dynamic wayfinding this is triggered
- failedToInitialize is when a path is unable to be calculated
- failedToComplete is anytime wayfinding was not completed or canceled, this can happen if the user abruptly closes the app with no background permissions

Example JSON:

{
  "deviceId": "05d9e18a-595d-4f9f-83d6-80527823a17f",
  "sessionId": "16b4cacb-20aa-41fb-a841-0c0483c117fd",
  "timestamp": 1697784992,
  "analyticsVersion": 8.11
  "configuration" : {
       // See configuration section
    },
    "currentLocation": {
   //  See current location section 
    },
  "action": "wayfind",
  "actionStatus": "started",
    "params": {
    "duration": 246,
    "destinationPoi": {
      "fid": "9f4c5dc1-dcab-e8c5-e509-000000927805",
      "name": "Men’s Restroom",
      "typeCode": "facility-services",
      "centerLat": -0.16249744,
      "centerLon": 51.4993839
    },
    "destinationLocation": null,
    "startPoi": null,
    "startLocation": {
      "sid": 2,
      "bid": 4,
      "lvl": 0,
      "lat": 0.54443,
      "lon": 0.5443543
    },
    "directions": {
        "type": "FeatureCollection",
        "features": [
          {
            "type": "Feature",
            "id": "628f365a-c6e7-4e2a-a83f-c96b235e3936",
            "geometry": {
              "type": "Point",
              "coordinates": [
                -71.0195821,
                42.3692433
              ]
            },
            "properties": {
              "fid": "b22c9b0a-64cc-418c-bb5b-eb6bfd719db4",
              "eid": "",
              "typeCode": "direction",
              "lvl": 1,
              "bid": 9,
              "sid": 2,
              "distanceInMiles": 0.00676053948700428,
              "orientation": 1.1229331493377686,
              "durationInSeconds": 10.880037307739258,
              "distanceInMeters": 10.880037307739258,
              "nodeTypeCode": "",
              "message": "Turn Right",
              "distanceInFeet": 35.69566345214844
            }
          },
          {
            "type": "Feature",
            "id": "884797fa-87ff-4bbf-b4e1-485871b286a1",
            "geometry": {
              "type": "Point",
              "coordinates": [
                -71.0195554,
                42.3692781
              ]
            }
}

Search Analytics

Event Additional Parameters When
search * searchTerm (string)
resultCount (numeric)
Any time a search is performed through the SDK

Example JSON:

{
    "deviceId": "05d9e18a-595d-4f9f-83d6-80527823a17f",
    "sessionId": "16b4cacb-20aa-41fb-a841-0c0483c117fd",
    "timestamp": 1697784992,
    "analyticsVersion": 8.11
    "configuration" : {
    // See configuration section
    },
    "currentLocation": {
    //  See current location section 
    },
    "action": "search",
    "searchTerm": "burger",
    "resultCount": 2,
}

POI Analytics

POI Interaction

Event Additional Parameters When
poi-interaction * action-status
- “selected”
- “details”
originates (string)
fid (guid)
name (string)
typeCode (string)
centerLon (decimal)
centerLat (decimal)

Example JSON:

{
    "deviceId": "05d9e18a-595d-4f9f-83d6-80527823a17f",
    "sessionId": "16b4cacb-20aa-41fb-a841-0c0483c117fd",
    "timestamp": 1697784992,
    "analyticsVersion": 8.11
    "configuration" : {
    // See configuration section
    },
    "currentLocation": {
    //  See current location section 
    },
    "action": "poi-interaction",
    "actionStatus": "selected",
    "originates": "map-click",
    "poiInteracted": {
        "fid": "9f4c5dc1-dcab-e8c5-e509-000000927805",
        "name": "Men’s Restroom",
        "typeCode": "facility-services",
        "centerLat": -0.16249744,
        "centerLon": 51.4993839
    }
}
Event Additional Parameters When
banner-interaction * action-status
- “clicked”
- “dismissed”
appName (string)
Any time in Pointr Express when the install banner pops up and is interacted with, this includes:
- Clicking on the banner to install the full experience.
- Dismissing the banner.
{
    "deviceId": "05d9e18a-595d-4f9f-83d6-80527823a17f",
    "sessionId": "16b4cacb-20aa-41fb-a841-0c0483c117fd",
    "timestamp": 1697784992,
    "analyticsVersion": 8.11
    "configuration" : {
    // See configuration section
    },
    "currentLocation": {
    //  See current location section 
    },
    "action": "banner-interaction",
    "actionStatus": "clicked",
    "params": {
        "appName": "Client-IOS-v8.23"
    },
}

*Available soon


Last update: September 27, 2024
Back to top