App and tracker information
Information about the application and the tracker instance that is sending the events to Snowplow can be useful for data analysis and troubleshooting issues.
You can track this in two ways: setting atomic event properties, or configuring the application entity.
Application atomic event properties
These properties can be assigned across all our trackers, regardless of the platform.
| Atomic table field | Type | Description | Example values |
|---|---|---|---|
name_tracker | text | The tracker namespace | tracker_1 |
app_id | text | Unique identifier for website / application | snow-game-android |
platform | text | The platform the app runs on | web, mob, app |
v_tracker | text | Identifier for Snowplow tracker. The format follows the convention of TRACKER_NAME-TRACKER_VERSION | js-2.16.2 |
You can specify the tracker namespace and app ID when creating a new tracker instance.
The tracker platform is set automatically but can be overriden in most of our trackers. The tracker version is also set automatically.
Application entity
You can configure your web or mobile trackers to automatically include an application entity with all tracked events.
The included data is slightly different depending on the platform, as different schemas are used:
- Web:
versiononly - Mobile:
versionandbuild
This table shows the support for the application entity across the main client-side Snowplow tracker SDKs. The server-side trackers don't include this entity.
| Tracker | Supported | Since version | Auto-tracking | Notes |
|---|---|---|---|---|
| Web | ✅ | 4.1.0 | ✅ | |
| iOS | ✅ | 1.0.0 | ✅ | |
| Android | ✅ | 1.0.0 | ✅ | |
| React Native | ✅ | 4.0.0 | ✅ | Uses web or mobile schema depending on configuration |
| Flutter | ✅ | 0.3.0 | ✅ | Available for mobile only |
| Roku | ✅ | 0.1.0 | ✅ | |
| Google Tag Manager | ❌ |
The native mobile trackers are able to extract the application version and build number automatically from the app metadata. For web, you need to provide the application version manually in the tracker configuration.
Entity definitions
Web applications:
application
EntityExample
{
"version": "1.1.0"
}
Properties and schema
- Table
- JSON schema
| Property | Description |
|---|---|
versionstring | Required. Version of the application. Can be a semver-like structure (e.g 1.1.0) or a Git commit SHA hash. |
{
"description": "Schema for an application context which tracks the app version.",
"properties": {
"version": {
"type": "string",
"description": "Version of the application. Can be a semver-like structure (e.g 1.1.0) or a Git commit SHA hash.",
"maxLength": 255
}
},
"additionalProperties": false,
"type": "object",
"required": [
"version"
],
"self": {
"vendor": "com.snowplowanalytics.snowplow",
"name": "application",
"format": "jsonschema",
"version": "1-0-0"
},
"$schema": "http://iglucentral.com/schemas/com.snowplowanalytics.self-desc/schema/jsonschema/1-0-0#"
}
Mobile applications:
application
EntityExample
{
"version": "1.1.0",
"build": "s9f2k2d"
}
Properties and schema
- Table
- JSON schema
| Property | Description |
|---|---|
versionstring | Required. Version number of the application e.g 1.1.0 |
buildstring | Required. Build name of the application e.g s9f2k2d or 1.1.0 beta |
{
"$schema": "http://iglucentral.com/schemas/com.snowplowanalytics.self-desc/schema/jsonschema/1-0-0#",
"description": "Schema for an application context which automatically tracks version number and build name when using our mobile SDK's.",
"self": {
"vendor": "com.snowplowanalytics.mobile",
"name": "application",
"format": "jsonschema",
"version": "1-0-0"
},
"type": "object",
"properties": {
"version": {
"type": "string",
"description": "Version number of the application e.g 1.1.0",
"maxLength": 255
},
"build": {
"type": "string",
"description": "Build name of the application e.g s9f2k2d or 1.1.0 beta",
"maxLength": 255
}
},
"required": [
"version",
"build"
],
"additionalProperties": false
}