Insight Events are events that fire corresponding with customer behavior in your mobile app. These events help you better understand your customer's journey and enrich marketing attribution models.
Below you can review the list of events tracked and their associated metadata.
Event Object & Metadata
All event objects are posted with a standard set of identifiers and metadata which provide a high level overview on the context of the event and associate the event to a given app, user, and device identifier. The metadata available on every event includes:
{
"event_type":"AppOpened",
"metadata":{
"schema_id":"Event_AppOpened_5_0_0"
},
"event_id":"UNIQUE EVENT ID",
"session_id":"UNIQUE SESSION ID",
"device_id":"UNIQUE DEVICE ID",
"app_id":"UNIQUE MERCHANT ID",
"timestamp":1663008666001,
"timestamp_iso":"2023-08-15T11:51:06.000-07:00"
}
event_type
String : The title of the event
schema_id
String: The associated schema identifier for the event being sent
event_id
String : The unique identifier of the event
session_id
String : The unique identifier of the session associated with the event. There can be multiple events per single session
device_id
String : The unique device identifier of the user's device
app_id
String : The unique identifier of the merchant's app
timestamp
Timestamp : The timestamp of the event
timestamp_iso
String : The timestamp of the event in international standard format
Properties
Every event has a set of various properties that help us make sense of the context of the behavior and characteristics of a particular user. On every event payload that you receive from the Insights Data Streaming Webhook, the Event object will include the following properties:
- SessionProperties
- DeviceProperties
- AppProperties
- ShopifyProperties
- EventProperties
SessionProperties
Session Properties relate directly to the app user's session. This data will include more context on the source of a session, when a session started, and more!
"session_properties":{
"session_id":"UNIQUE SESSION ID",
"source":"direct",
"session_type":"Returning",
"session_start_time":1692140759000,
"notification_id":null,
"notification_type":null,
"utm_source":null,
"utm_medium":null,
"utm_campaign":null,
"utm_content":null,
"utm_term":null,
"notification_auth_type":null,
"external_notification_id":null,
"segment_id":null,
}
session_id
String: The unique identifier of every user session in the app
source
String: A value or parameter tracking where the session originated from. This value is stamped on all events of a session. The default is "direct"
session_type
String: The type of session that indicates if this is a returning or first time user. This will be "new" or "returning"
session_start_time
Integer: The recorded start time of a session
notification_id
String: The unique identifier of the notification that lead to the session (if applicable). If a source of the session is "notification" then this field will be
notification_type
String: The type of push notification associated with the message
utm_source
String : The attached utm source if the session source occurs from a deeplink
utm_medium
String : The identifying medium or type of link that was used
utm_campaign
String : The specific associated campaign in the deeplink
utm_content
String : The content the user clicked in order to enter the session
utm_term
String : Identifies any search terms used in the deeplink
notification_auth_type
String : Certain notifications are able to be sent via provisional authentication or standard authentication. This field indicates the authorization of the notification that was sent
external_notification_id
String : The unique identifier of a notification sent from a third party source or integration
segment_id
String : The unique identifier of an automated push campaign. These campaigns would distinguish between welcome campaigns, abandoned cart messages, and any other automations enabled
DeviceProperties
DeviceProperties, unlike SessionProperties, are all of the properties related to the user's device. This data gives you context into any of the devices that download and use your app. An example of the device properties can be seen below:
"device_properties":{
"ip":"USER’S IP",
"os":"iOS",
"model":"arm64",
"orientation":"portrait",
"carrier":"",
"radio":"Wifi",
"manufacturer":"Apple",
"lib_version":"4.1.5",
"country":"US",
"locale":"en",
"wifi":true,
"app_version":null,
"tapcart_build":null,
"external_build":null,
"os_version":"15.5",
"tapcart_commit_hash":null,
"consumer_type":"Returning",
"device_id":"UNIQUE DEVICE ID",
"prev_push_enabled":false,
"push_enabled":false
}
ip
String: The user's IP address
os
String: The user's operating system
model
String: The user's device model ID
orientation
String: The device's screen orientation
carrier
String: Wireless carrier of the device owner
radio
String: Current cellular network communication standard
manufacturer
String: The user's device manufacturer
lib_version
String: Version of the Mixpanel library used to send this data
country
String: The country of the event sender parsed from the IP property or the Latitude and Longitude properties
locale
String: The country locale
wifi
Boolean: Set to true if user's device has an active, available Wifi connection. The property will display false if not
app_version
String: Tapcart app version number
tapcart_build
String: Tapcart build name
external_build
String: Global app build number
os_version
String: Mobile operating system version of the device
tapcart_commit_hash
String: Commit Hash of codebase used to build the app
consumer_type
String: Signifies the business defined user state. This will be either new or returning
device_id
String: The user's unique device id
prev_push_enabled
Boolean: Will be based on the previous value of push_enabled that exists from the system. This will update on every SessionStarted
push_enabled
Boolean: Will be based on whether or not the device has notifications currently enabled for the app. This will be updated on every SessionStarted event by checking whether or not the user has the notifications enabled on the system
AppProperties
AppProperties relate to certain settings applied in the merchant's app unique to the context of the user and their interactions.
"app_properties":{
"app_id":"UNIQUE MERCHANT ID",
"currency_code":"USD",
"app_version":"1.0.0",
"tapcart_build":"10.4.0",
"external_build":"10.4.0",
"os_version":"15.5",
"tapcart_commit_hash":null,
"environment":"debug"
}
app_id
String: The unique merchant ID
currency_code
String: The merchant’s default currency code
app_version
String: Tapcart app version number
external_build
String: Global app build number
os_version
String: Mobile operating system version of the device
tapcart_commit_hash
String: Commit Hash of Codebase used to build the app
environment
String: The state of the mobile app and whether or not the event was coming from a debug version or a released version
ShopifyProperties:
ShopifyProperties are properties related to a logged in Shopify user. If a user creates an account and logs in, Tapcart is able to record information on that user.
"shopify_properties":{
"shopify_user_id":"UNIQUE SHOPIFY USER ID",
"logged_in":true
}
shopify_user_id
String: User ID given by Shopify when they login or create an account
logged_in
String: If the Shopify user is logged into the app