Application Lifecycle Events Specification

Detailed technical description of the various application lifecycle events tracked by the RudderStack SDKs.

RudderStack lets you track various application lifecycle events across the mobile SDKs and get insights into app-related metrics like installs, opens, etc. This guide provides the details and semantic definitions of these events and the associated properties.

To track the application lifecycle events on the Android platform using the Unity SDK, you need to perform some additional steps. For more information on these steps, refer to the Tracking application lifecycle events on the Android platform section.

Supported lifecycle events

RudderStack automatically tracks the following application lifecycle events:

To disable the auto-tracking of these events, set the withTrackLifecycleEvents parameter to false while initializing the Android / iOS SDK.

Application Installed

This event is fired when a user opens an application for the first time after installation.

RudderStack does not collect this event if the user does not open the app after installation.

A sample payload is shown below:

{
  "type": "track",
  "event": "Application Installed",
  "properties": {
    "version": "11.1.7"
  }
}

RudderStack tracks the following properties for this event:

Application Opened

This event is fired when a user launches an application after the first launch and subsequently every time the app is reopened after it is closed or backgrounded.

A sample payload is shown below:

{
  "userId": "1hKOmRA4el9Z",
  "type": "track",
  "event": "Application Opened",
  "properties": {
    "from_background": false,
    "referring_application": "Whatsapp",
    "url": "https://www.estore.com/best-seller/1",
    "version": "11.1.7"
  }
}

userId will be present only if the user is logged into the application, i.e. an identify call is made previously.

RudderStack tracks the following properties for this event:

There are some differences in the way the RudderStack SDKs handle the above event properties:

Android SDK

  • The properties marked with an asterisk (url, referring_application, version) are tracked and sent only if they are available on the first launch of the application.

  • RudderStack also sends all the query parameters received as a part of the deep linking URL as key-value pairs in the Application Opened event properties.

iOS SDK

  • The properties marked with an asterisk (url, referring_application, version) are tracked and sent only if they are available on every application launch.

Unity SDK

  • The properties marked with an asterisk (url, referring_application, version) are not tracked either for Android or iOS.

React Native SDK

Flutter SDK

Cordova SDK

Application Updated

This event is fired when a user updates their application.

A sample payload is shown below:

{
  "userId": "1hKOmRA4el9Z",
  "type": "track",
  "event": "Application Updated",
  "properties": {
    "previous_version": "11.1.7",
    "version": "12.0.1"
  }
}

RudderStack tracks the following properties for this event:

For the Unity SDK, you need to perform the required steps for the Android and iOS platforms to trigger the Application Updated lifecycle event. For more information on these steps, refer to the Triggering Application Updated lifecycle event section.

Application Backgrounded

This event is fired when the user backgrounds the application.

A sample payload is shown below:

{
  "userId": "1hKOmRA4el9Z",
  "type": "track",
  "event": "Application Backgrounded",
  "properties": {}
}

RudderStack does not track any properties for this event.

FAQ

Do the application lifecycle events follow the standard timestamping format?

Yes, the lifecycle events follow the timestamp format in accordance with the RudderStack API Spec.

Do the lifecycle events include the user traits or context objects?

The application lifecycle events include the context objects. Note that userId would be present only if the user is logged into the application, i.e. an identify call is made previously.

Contact us

For more information on any of the sections covered in this guide, you can contact us or start a conversation in our Slack community.

Last updated