Native Mobile Spec

One of the core components of the Segment Spec is the track method. It records any arbitrary event that the user has triggered. For Mobile tracking, in addition to screen calls, you’ll want to send specific event names that we recognize semantically. That way, we can transform them correctly before sending them off to downstream integrations.

By standardizing the events that comprise the core mobile application lifecycle and associated mobile campaign and referral events, Segment and our partners can, wherever possible, automatically collect and forward these events on your behalf and build downstream integrations which take full advantage of the semantic meaning associated with these events and their properties.

Note: If you’re already collecting similar events, we recommend migrating to these event names so that you can take advantage of available features in our integrations which depend on the spec as they become available.

These events pair nicely with our ecommerce spec for mobile marketplaces to take full advantage of features like dynamic ads in Facebook and the ability to take full advantage of server-side integrations with Mobile Attribution Platforms like Tune and Kochava.

Overview of Events

The Segment Native Mobile Spec includes the following semantic events:

Note: the bolded events are currently collected automatically by the latest version of our Android and iOS SDKS.

We recommend using the above event names if you’re going to be integrating the events yourself in the meantime. We’ll be working to expand our automatic collection to include the rest of these events across our SDKs in conjunction with our integration partners over the coming weeks!

Additionally, though they’re not formally part of the Native Mobile Spec, we also collect Order Completed from our ecommerce spec automatically upon in-app purchases on iOS and can collect screen views automatically in iOS and Android as well.

Lifecycle Events

Mobile applications live within a fairly bounded lifecycle. In order to understand and communicate effectively with your users, it’s crucial to instrument the core flows associated with installing and opening your app. The following events, many of which we can capture automatically in the latest versions of our SDKs, allow you to get a picture of top-line metrics like DAUs, MAUs, Screen Views per session, etc. Automatic tracking of lifecycle events comletely optional - you can learn how to enable and disable them in our iOS and Android library docs.

Application Installed

This event fires when a user first installs your mobile application. This event does not wait for attribution or campaign information to be received, and is collected automatically by our SDKs. Advertising providers like Facebook and Google require discrete install events to correctly attribute installs to ads served through their platform.

PropertyTypeDescription
versionStringThe version installed.
buildNumberThe build number of the installed app.

Application Opened

This event fires when a user launches or foregrounds your mobile application after the first open. It will fire after the Application Installed event and again after the app is re-opened after being closed. This event does not wait for attribution information to be received but may include information about referring applications or deep link URLs if available to the application upon open.

PropertyTypeDescription
from_backgroundBooleanIf application transitioned from “Background” to “Inactive” state prior to foregrounding (as opposed to from “Not Running” state)
urlStringThe value of UIApplicationLaunchOptionsURLKey from launchOptions
source_applicationStringThe value of UIApplicationLaunchOptionsSourceApplicationKey from launchOptions

Application Backgrounded

This event fires when a user backgrounds the application upon applicationWillResignActive

Application Updated

This event fires when a user updates the application. Our SDK will automatically collect this event in lieu of an “Application Opened” event when we determine that the Open is first since an update.

PropertyTypeDescription
previous_versionStringThe previously recorded version.
previous_buildNumberThe previously recorded build.
versionStringThe new version.
buildNumberThe new build.

Application Uninstalled

Fire this event when a user uninstalls the application. Several integration partners will detect this for you using Silent Push Notifications and send this event to Segment on your behalf.

Application Crashed

This event fires when the application crashes, but is not meant to supplant traditional crash reporting tools. By tracking crashes as an analytics event with device and user information, you can analyze the which types of users are impacted by crashes and how those crashes, in turn, affect their engagement. You may also want to target those customers with tailored communications in other channels if they’ve encountered several crashes.

As the walls between apps become increasingly lowered, capturing information about the content and campaigns that drive users to engage with your app is critical to building more targeted, relevant, personalized experiences for your users.

Install Attributed

When Segment or an integrated partner can discern the source of an install, we’ll collect an Install Attributed event. This event may be sent to Segment via server-to-server connection from your attribution provider, or directly on the device via packaged integrations. In either case, this will happen after install, and does not apply to all installs, which is why it is a discrete event.

PropertyTypeDescription
providerStringThe attribution provider.
campaign[source]StringCampaign source — attributed ad network
campaign[name]StringThe name of the attributed campaign.
campaign[content]StringThe content of the campaign.
campaign[ad_creative]StringThe ad creative name.
campaign[ad_group]StringThe ad group name.

Push Notification Received

This event fires when a push notification is received by your mobile app.

PropertyTypeDescription
campaign[name]StringCampaign Name.
campaign[medium]StringMedium.
campaign[content]StringPush notification content content
campaign[source]StringDesignates the push provider. (Optional)

Push Notification Tapped

This event fires when a user taps on a push notification associated with your app.

PropertyTypeDescription
actionStringIf this notification is “actionable“, the custom action tapped. Default: “Open”
campaign[name]StringCampaign Name.
campaign[medium]StringMedium.
campaign[content]StringPush notification content content
campaign[source]StringDesignates the push provider. (Optional)

Push Notification Bounced

This event fires when a push notification from a provider bounces. If your push notification provider forwards push lifecycle events to Segment, they should include this event in their suite.

PropertyTypeDescription
actionStringIf this notification is “actionable“, the custom action tapped. Default: “Open”
campaign[name]StringCampaign Name.
campaign[medium]StringMedium.
campaign[content]StringPush notification content content
campaign[source]StringDesignates the push provider. (Optional)

This event may be provided by deep link providers or an internal redirect service if you use one in order to provide a waypoint funnel step between your content or advertisement and the resulting app open.

PropertyTypeDescription
providerStringThe deep link provider.
urlStringThe deep link URL clicked.

When your application is opened via a referring link, Segment or your packaged deep link partner will fire this event on your behalf. If the deep link has additional data associated with it, either passed through the third party service or as annotations in launchOption, you may want to include those values as properties here as well. This event is fired in addition to the associated App Opened event.

PropertyTypeDescription
providerStringThe deep link provider.
urlStringThe App URL opened.

If you have any questions or see anywhere we can improve our documentation, please let us know or kick off a conversation in the Segment Community!