ePrivacy and GPDR Cookie Consent by Cookie Consent Skip to main content

Events for Mobile: list of events

Mobile events are a crucial aspect of mobile app analytics, allowing developers and marketers to understand how users interact with their apps. In this article, we will look at the Meiro events tracked in mobile apps.

For mobile events, Meiro is using Snowplow Mobile SDK for Android and iOS, which means the events are determined by the data sent by this tracker.

Snowplow is a powerful mobile analytics platform that allows developers to track events, provides direct access to raw data, and can handle up to thousands of events per second. Its mobile SDK is available for Android and iOS and provides an easy way to integrate tracking into your mobile app.

Remember: this article was written in February 2023 and the most up-to-date list of events is determined by the data sent by the Snowplow tracker. For the latest information, refer to the original documentation in Snowplow.

Types of events tracked automatically

The events listed below can be tracked when the Mobile SDK is initialized on mobile, provided that auto-tracking is enabled in the tracker configuration.

Platform and Application Context Tracking

Captures contextual information about the device and the app.


Example of events tracking application data:

{
"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
}


Example of events tracking platform data:

{
  "type": "object",
	"properties": {
		"osType": {
			"type": "string"
		},
		"osVersion": {
			"type": "string"
		},
		"deviceManufacturer": {
			"type": "string"
		},
		"deviceModel": {
			"type": "string"
		},
		"carrier": {
			"type": ["string", "null"]
		},
		"networkType": {
			"type": ["string", "null"],
			"enum": ["mobile", "wifi", "offline", null]
		},
		"networkTechnology": {
			"type": ["string", "null"]
		},
		"openIdfa": {
			"type": ["string", "null"]
		},
		"appleIdfa": {
			"type": ["string", "null"]
		},
		"appleIdfv": {
			"type": ["string", "null"]
		},
		"androidIdfa": {
			"type": ["string", "null"]
		},
		"physicalMemory": {
			"type": ["integer", "null"],
			"minimum": 0,
			"maximum": 9223372036854775807,
			"description": "Total physical system memory in bytes"
		},
		"systemAvailableMemory": {
			"type": ["integer", "null"],
			"minimum": 0,
			"maximum": 9223372036854775807,
			"description": "Available memory on the system in bytes (Android only)"
		},
		"appAvailableMemory": {
			"type": ["integer", "null"],
			"minimum": 0,
			"maximum": 9223372036854775807,
			"description": "Amount of memory in bytes available to the current app (iOS only)"
		},
		"batteryLevel": {
			"type": ["integer", "null"],
			"minimum": 0,
			"maximum": 100,
			"description": "Remaining battery level as an integer percentage of total battery capacity"
		},
		"batteryState": {
			"type": ["string", "null"],
			"enum": ["unplugged", "charging", "full", null],
			"maxLength": 255,
			"description": "Battery state for the device"
		},
		"lowPowerMode": {
			"type": ["boolean", "null"],
			"description": "A Boolean indicating whether Low Power Mode is enabled (iOS only)"
		},
		"availableStorage": {
			"type": ["integer", "null"],
			"minimum": 0,
			"maximum": 9223372036854775807,
			"description": "Bytes of storage remaining"
		},
		"totalStorage": {
			"type": ["integer", "null"],
			"minimum": 0,
			"maximum": 9223372036854775807,
			"description": "Total size of storage in bytes"
		}
	},
	"required": ["osType", "osVersion", "deviceManufacturer", "deviceModel"],
	"additionalProperties": false
}
Session Tracking

Captures the session which helps to keep track of the user activity in the app. A session expires when no tracking events have occurred for the amount of time defined in a timeout (by default 30 minutes). 


Example of event:

{
"type": "object",
	"properties": {
		"userId": {
			"type": "string",
			"pattern": "^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$|^[0-9a-f]{16}$",
			"maxLength": 36,
			"description": "An identifier for the user of the session"
		},
		"sessionId": {
			"type": "string",
			"format": "uuid",
			"description": "An identifier for the session"
		},
		"sessionIndex": {
			"type": "integer",
			"minimum": 0,
			"maximum": 2147483647,
			"description": "The index of the current session for this user"
		},
		"eventIndex": {
			"type": [
				"null",
				"integer"
			],
			"minimum": 0,
			"maximum": 2147483647,
			"description": "Optional index of the current event in the session"
		},
		"previousSessionId": {
			"type": [
				"null",
				"string"
			],
			"format": "uuid",
			"description": "The previous session identifier for this user"
		},
		"storageMechanism": {
			"type": "string",
			"enum": [
				"SQLITE",
				"COOKIE_1",
				"COOKIE_3",
				"LOCAL_STORAGE",
"FLASH_LSO"
			],
			"description": "The mechanism that the session information has been stored on the device"
		},
		"firstEventId": {
			"type": [
				"null",
				"string"
			],
			"format": "uuid",
			"description": "The optional identifier of the first event for this session"
		},
		"firstEventTimestamp": {
			"description": "Optional date-time timestamp of when the first event in the session was tracked",
			"type": [
				"null",
				"string"
			],
			"format": "date-time"
		}
	},
	"required": [
		"userId",
		"sessionId",
		"sessionIndex",
		"previousSessionId",
		"storageMechanism"
	],
	"additionalProperties": false
}
Screen View Tracking

Captures each time a new “screen” is loaded.


Example of event:

{
     "type": {
      "type": "string",
      "description": "The type of screen that was viewed e.g feed / carousel."
    },
    "id": {
      "type": "string",
      "format": "uuid",
      "maxLength": 36,
      "description": "An ID from the associated screenview event."
    },
    "viewController": {
      "type": "string",
      "description": "iOS specific: class name of the view controller."
    },
    "topViewController": {
      "type": "string",
      "description": "iOS specific: class name of the top level view controller."
    },
    "activity": {
      "type": "string",
      "description": "Android specific: name of activity."
    },
    "fragment": {
      "type": "string",
      "description": "Android specific: name of fragment."
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "name",
    "id"
  ],
  "minProperties": 2,
  "self": {
    "vendor": "com.snowplowanalytics.mobile",
    "name": "screen",
    "format": "jsonschema",
App Lifecycle Tracking
LifecycleEntity 

Captures application lifecycle state changes from foreground to background and vice-versa.

Exception Tracking

Captures any unhandled exceptions within the application. Exceptions can crash the app so it's likely that the event will be sent after the restart of the app.

Installation Tracking

Captures an install event that occurs the first time an application is opened. The tracker will record when it's first been installed, so deleting and reinstalling an app will trigger another install event.


If installation auto-tracking is not enabled, the tracker will still keep track of when the app was first installed, so that when enabled, the tracker will send the recorded install event with a timestamp reflecting when it was first installed.

Learn more: about events tracked automatically

Event enrichment

All the events may be enriched by additional data:

IAB

Use the IAB/ABC International Spiders and Bots List to determine whether an event was produced by a user or a robot/spider based on its' IP address and user agent.

User Agent utils

Deprecated - please consider switching to YAUAA.

UA parser

Parse the useragent and attach detailed useragent information to each event.

Currency conversion

Convert the values of all transactions to a specified base currency using Open Exchange Rates. To use it, you need an Open Exchange Rates account.

Referer parser

Extracts attribution data from referer URLs.

Campaign attribution

Choose which querystring parameters will be used to generate the marketing campaign fields. If you do not enable the campaign_attribution enrichment, those fields will not be populated.

Event fingerprint

Generate a fingerprint for the event using a hash of client-set fields. Helpful for deduplicating events.

Cookie extractor

Specify cookies that you want to extract if found.

HTTP Header extractor

Specify headers that you want to extract via a regex pattern, if found each extracted header will be attached to your event.

Weather Enrichment

Unavailable since Enrich 1.4.x.

YAUAA

Parse and analyze the user agent string of an event and extract as many relevant attributes as possible using YAUAA API.

IP lookups

Lookup useful data based on a user's IP address using the MaxMind database.

JavaScript

Write a JavaScript function that is executed for each event.

SQL Query

Perform dimension widening on a Snowplow event via your own internal relational database.

API Request

Perform dimension widening on a Snowplow event via your own or third-party proprietary http(s) API.

IP anonymization

Anonymize the IP addresses found in the user_ipaddress field by replacing a certain number of octets with "x"s.

PII Pseudonymization

Better protect the privacy rights of data subjects by psuedoanonymizing collected data.

Learn more: about available enrichments for the events tracked