Real-Time Data Streaming API
Airship’s Real-Time Data Streaming (RTDS) service exposes an event stream for each user. Events may be behavior-driven, system-driven, or custom. Use the RTDS REST API to consume and integrate Airship user event data.
Libraries
Airship maintains open source server libraries to support your integrations with our APIs in multiple languages. Click below for library documentation.
Introduction
Airship’s Real-Time Data Streaming API exposes a stream of events describing a user’s experience within a mobile app or browser. Events reflect user action, automated device responses to their environment (e.g., encountering a beacon), and experience-changing actions initiated by app/site publishers, such as sending a push notification.
To consume the event stream, you must issue an authenticated request including a starting point for the stream and optional filter and subset specifications.
The event data is delivered as newline-delimited JSON , with each event on its own line. The accept header should be set to application/vnd.urbanairship+x-ndjson; version=3;. Each event contains an offset that denotes its location on the stream. If a client disconnects for any reason, it should reconnect with instructions to start at the last offset it successfully processed, to avoid missing any data. For each app key authorized to use Real-Time Data Streaming, Airship stores 7 days or 100 GB worth of data, whichever comes first.
Base URL
Select the domain associated with your Airship project.
https://connect.urbanairship.com- The North American base URL for Airship's Real-Time Data Streaming APIhttps://connect.asnapieu.com- The European base URL for Airship's Real-Time Data Streaming API
Authentication
For additional information, including steps for creating bearer tokens and OAuth client credentials, see Airship API Security. See also the Airship API Authorization Reference.
- Basic Auth (Master) HTTP (basic)Authorization header containing the word
Basicfollowed by a space and a Base64-encoded string generated from your App Key and Master Secret inappKey:masterSecretformat. For example,Basic YXBwX2tleTptYXN0ZXJfc2VjcmV0. This security type is only accepted by the Compliance endpoint. - Bearer Token HTTP (bearer)Authorization header containing the word
Bearerfollowed by a space and a bearer token, which can be obtained from Airship when configuring a direct integration. Tokens can be revoked at will.
Event Stream
Opens an event stream to your filter specifications.
Open an event stream
POST /api/events
Example event stream request
POST /api/events HTTP/1.1
Authorization: Bearer <authorization token>
X-UA-Appkey: <appkey>
Accept: application/vnd.urbanairship+x-ndjson; version=3;
Content-Type: application/json
{
"filters": [
{
"device_types": [
"android",
"amazon"
],
"devices": [
{
"channel": "5b389366-7caf-43e2-a19c-6159c7ea9936"
},
{
"channel": "c8044c8a-d5fa-4e58-91d4-54d0f70b7409"
},
{
"named_user_id": "George"
}
],
"latency": 20000000
},
{
"notifications": [
{
"group_id": "a30abf06-7878-4096-9535-b50ac0ad6e8e"
}
],
"types": [
"OPEN"
]
}
],
"resume_offset": "MTAwMDAwMDAyMjg1NA",
"subset": {
"proportion": 0.3,
"type": "SAMPLE"
}
}
Response
POST /api/events HTTP/1.1
Authorization: Bearer <authorization token>
X-UA-Appkey: <appkey>
Accept: application/vnd.urbanairship+x-ndjson; version=3;
Content-Type: application/json
{
"filters": [
{
"device_types": [
"android",
"amazon"
],
"devices": [
{
"channel": "5b389366-7caf-43e2-a19c-6159c7ea9936"
},
{
"channel": "c8044c8a-d5fa-4e58-91d4-54d0f70b7409"
},
{
"named_user_id": "George"
}
],
"latency": 20000000
},
{
"notifications": [
{
"group_id": "a30abf06-7878-4096-9535-b50ac0ad6e8e"
}
],
"types": [
"OPEN"
]
}
],
"resume_offset": "MTAwMDAwMDAyMjg1NA",
"subset": {
"proportion": 0.3,
"type": "SAMPLE"
}
}
HTTP/1.1 200 OK
Content-encoding: gzip
Content-Type: application/vnd.urbanairship+json; version=3;
{"id" : "ff76bb85-74bc-4511-a3bf-11b6117784db", "type": "UNINSTALL", "offset": "MTIzNQ", "occurred": "2015-05-03T02:32:12.088Z", "processed": "2015-05-03T12:12:43.180Z", "device": {"channel":"a61448e1-be63-43ee-84eb-19446ba743f0", "device_type":"ANDROID", "android_channel": "a61448e1-be63-43ee-84eb-19446ba743f0"}}
{"id" : "8e50350e-dd9f-41af-b98e-b0e5d4b27dea","type": "SEND","offset": "NTIxMDM1","occurred": "2015-05-02T02:31:22.088Z","processed": "2015-05-02T02:32:43.181Z","device": {"channel":"5117f2a7-ba58-4981-9456-169959511d1a", "device_type":"IOS", "ios_channel": "5117f2a7-ba58-4981-9456-169959511d1a" },"body": {"push_id": "0c173744-dd35-4b5e-9f7f-2b7e0ce0e36e", "alerting": true}}
{"id" : "ff76bb85-74bc-4511-a3bf-11b6117784db", "type": "UNINSTALL", "offset": "MTIzNQ", "occurred": "2015-05-03T02:32:12.088Z", "processed": "2015-05-03T12:12:43.180Z", "device": {"channel":"a61448e1-be63-43ee-84eb-19446ba743f0", "device_type":"ANDROID", "android_channel": "a61448e1-be63-43ee-84eb-19446ba743f0"}}
{"device":{"channel":"820e4493-e4c9-4577-99bc-a98180599f73","delivery_address":"new.user@urbanairship.com","device_type":"EMAIL"},"id":"00000169-4a14-67b2-1ddd-d9e733622c3a","occurred":"2019-03-04T19:00:45.106Z","offset":"1000001260057","processed":"2019-03-04T19:00:47.094Z","type":"FIRST_OPT_IN"}
Response object
POST /api/events HTTP/1.1
Authorization: Bearer <authorization token>
X-UA-Appkey: <appkey>
Accept: application/vnd.urbanairship+x-ndjson; version=3;
Content-Type: application/json
{
"filters": [
{
"device_types": [
"android",
"amazon"
],
"devices": [
{
"channel": "5b389366-7caf-43e2-a19c-6159c7ea9936"
},
{
"channel": "c8044c8a-d5fa-4e58-91d4-54d0f70b7409"
},
{
"named_user_id": "George"
}
],
"latency": 20000000
},
{
"notifications": [
{
"group_id": "a30abf06-7878-4096-9535-b50ac0ad6e8e"
}
],
"types": [
"OPEN"
]
}
],
"resume_offset": "MTAwMDAwMDAyMjg1NA",
"subset": {
"proportion": 0.3,
"type": "SAMPLE"
}
}
HTTP/1.1 200 OK
Content-encoding: gzip
Content-Type: application/vnd.urbanairship+json; version=3;
{"id" : "ff76bb85-74bc-4511-a3bf-11b6117784db", "type": "UNINSTALL", "offset": "MTIzNQ", "occurred": "2015-05-03T02:32:12.088Z", "processed": "2015-05-03T12:12:43.180Z", "device": {"channel":"a61448e1-be63-43ee-84eb-19446ba743f0", "device_type":"ANDROID", "android_channel": "a61448e1-be63-43ee-84eb-19446ba743f0"}}
{"id" : "8e50350e-dd9f-41af-b98e-b0e5d4b27dea","type": "SEND","offset": "NTIxMDM1","occurred": "2015-05-02T02:31:22.088Z","processed": "2015-05-02T02:32:43.181Z","device": {"channel":"5117f2a7-ba58-4981-9456-169959511d1a", "device_type":"IOS", "ios_channel": "5117f2a7-ba58-4981-9456-169959511d1a" },"body": {"push_id": "0c173744-dd35-4b5e-9f7f-2b7e0ce0e36e", "alerting": true}}
{"id" : "ff76bb85-74bc-4511-a3bf-11b6117784db", "type": "UNINSTALL", "offset": "MTIzNQ", "occurred": "2015-05-03T02:32:12.088Z", "processed": "2015-05-03T12:12:43.180Z", "device": {"channel":"a61448e1-be63-43ee-84eb-19446ba743f0", "device_type":"ANDROID", "android_channel": "a61448e1-be63-43ee-84eb-19446ba743f0"}}
{"device":{"channel":"820e4493-e4c9-4577-99bc-a98180599f73","delivery_address":"new.user@urbanairship.com","device_type":"EMAIL"},"id":"00000169-4a14-67b2-1ddd-d9e733622c3a","occurred":"2019-03-04T19:00:45.106Z","offset":"1000001260057","processed":"2019-03-04T19:00:47.094Z","type":"FIRST_OPT_IN"}
{
"id": "8e50350e-dd9f-41af-b98e-b0e5d4b27dea",
"type": "SEND",
"offset": "NTIxMDM1",
"occurred": "2015-05-02T02:31:22.088Z",
"processed": "2015-05-02T02:32:43.181Z",
"device": {
"channel": "5117f2a7-ba58-4981-9456-169959511d1a",
"device_type": "IOS"
},
"body": {
"push_id": "0c173744-dd35-4b5e-9f7f-2b7e0ce0e36e",
"alerting": true
}
}
{
"device": {
"channel": "820e4493-e4c9-4577-99bc-a98180599f73",
"delivery_address": "new.user@urbanairship.com",
"device_type": "EMAIL"
},
"id": "00000169-4a14-67b2-1ddd-d9e733622c3a",
"occurred": "2019-03-04T19:00:45.106Z",
"offset": "1000001260057",
"processed": "2019-03-04T19:00:47.094Z",
"type": "FIRST_OPT_IN"
}
Opens a new event stream according to your request filters. Unlike our other APIs, a request to /api/events/ returns a stream of data, where each line is a JSON object. The response body contains all the events in that stream. Since streams by definition go on forever, Real-Time Data Streaming will never end the response without some external reason.
In the request specification, JSON collection types have semantic meaning.
array: Arrays indicate a boolean "OR". Wherever an array appears in the specification, the resulting stream will contain the events passing any of the conditions defined by the array. An empty array results in a 400 response.
object: Object attributes indicate a boolean "AND". All conditions in the object must be satisfied in order for an event to be written to the response. If you would like all events to pass the condition the attribute defines, omit the attribute. If an unexpected attribute appears on an event, a status code 400 response will be returned.
Security:
Request headers:
- X-UA-Appkey stringREQUIREDThe App Key for the project you want to return events for.
Request body:
Content-Type:
application/jsonThe request body defines the events you want to return in the event stream. You can define position, subset and filter specifications in each request submitted to the stream. Filters are positive statements about what events the client should return. The subset specification returns a representative portion of the stream.
Responses
200
The response to a successful request is an unending stream of newline-delimited JSON . Each non-empty line in the response represents a single event.
This response body is of arbitrarily large size. As long as the connection is open, Airship will continue to write to the data stream. If no events have been dispatched down a connection for some time, the API will write to the connection to prevent it from being closed for inactivity. By default, only a blank line (a single newline character) will be written. If the
enable_offset_updatesfield in the request istrue, then instead of a blank line, an event will be written with typeOFFSET_UPDATE. These events have nobodyordevicefield, and always haveoccurredandprocessedtimes indicating when they were sent. Theoffsetfield will contain the offset of the last event considered for inclusion in the stream whether or not it was actually sent. This may be useful to track position in the stream when using a filter which removes much of it.These events should not be stored, and will be different for every connection even if requests are identical.
OFFSET_UPDATEevents are not subject to filters, and if requested will be delivered regardless of those specified. You should always check the type field before handling any delivered event.If you receive no data or new line characters for ninety seconds, close the connection and reconnect.
Response body:
- Content-Type:One of
application/vnd.urbanairship+x-ndjson; version=3;Attribute operation events indicate a change in the device’s attributes. Because attribute operations are related to a device, they will have a
devicefield.If you set an attribute on a Named User, Airship records events for each device associated with the Named User.
Occurs when a user closes the app. Close events are often latent, as they aren’t sent back to Airship until the user activates the app again.
Occurs when a contact is uninstalled, associated with a channel or Named User, or dissociated from a channel or Named User.
Occurs when a device is excluded from a push because it was arbitrarily selected as a member of a control group for a Message A/B test, Sequence A/B test, or Holdout Experiment.
Represents Custom Events that are either emitted from the Airship SDK or submitted through the Custom Events API. You can configure Custom Events yourself. There are also several CUSTOM-type events for email and SMS that are defined by Airship.
In general, you can expect device information if the event source is
SDKor if the event is one of the defined email or SMS events (as defined byevent_type).This event occurs when a user opens an Airship-integrated app for the first time.
This event appears in the stream when a channel is first opted in. This event is specific to email (commercial), SMS, and open channels.
Occurs when a button is tapped within a Scene.
Occurs when an In-App Automation or Scene is displayed to a user. Because the event pertains to a specific device, the device information object will be populated.
Occurs when a new In-App Automation or Scene message has taken the place of another message, a message has passed its expiration, or because displaying the message in-app would be redundant. This event type may be latent. It is not emitted until the app becomes active.
Occurs when an In-App Automation or Scene is cleared from the display, either by user action or timeout. Because this event pertains to an individual device, the device information object will be present.
Occurs when a user swipes to the next or previous page (screen) in a pager (specific to Scenes).
Occurs when a page (screen) is displayed within a pager (specific to Scenes).
Occurs when the last page (screen) of a pager is viewed for the first time (specific to Scenes).
Describes the full path a user took within a pager (specific to Scenes), including the order of pages (screens) visited and time spent per page.
Occurs when you update a Scene screen name.
An event declaring the device to be at a particular latitude and longitude.
Represents a message action that originated from a user — like an inbound SMS or email.
Occurs when a user opens your app.
Occurs when you initiate a push, automation, or sequence.
Airship fulfills delivery over a time interval with a number of child pushes, each with a unique Push ID and a common Group ID. There is no guarantee that push body events (defined in Push Body Event) for the child pushes fulfilling a group will appear in the stream.
Note: When you start, pause, or publish a sequence, Airship emits a
push_bodyevent for the sequence itself, and each message contained within the sequence (i.e., messages +1). After you start a sequence, Airship does not issue subsequentpush_bodyevents for the sequence unless you pause or publish changes to the sequence.Region events are emitted when a device enters or exits a geofence or the range of any of a set of bluetooth beacons. Region events require a Gimbal integration. Events for Gimbal customers include the Gimbal application instance identifier as
com.urbanairship.gimbal.aiiwithin theidentifiersobject.Occurs when a Message Center message is not delivered to a user because they are in a control group for a Sequence A/B test or Holdout Experiment.
Occurs when a user deletes a Message Center message from their inbox.
Occurs when a Message Center message is delivered to a user’s inbox.
Even though rich push deliveries may or may not cause an alert on the user’s lock screen, they are always associated with a push identifier in the Airship system.
Occurs when a user reads a Message Center message in their inbox.
Occurs when a user has finished viewing a screen. It is up to you to instrument your application with names for each screen. Doing so will allow you to determine the user’s path by filtering on the fields in the table below.
Occurs whenever a push notification is sent to a device identified in the audience selector of a message.
Occurs when a push is dropped from our system before delivery is attempted. This can happen:
- When using External Data Feeds to personalize a message and an error was encountered or the feed returned a non-successful response
- When a Message Limit is met
- When a Ban List webhook issues a
dropresponse for a user
Device information for the device that did not receive the push is included with
SEND_ABORTEDevents.Occurs when a push fails during communication with a third party, like APNs or GCM. This typically indicates that the user has uninstalled the app or otherwise invalidated the last-registered credentials stored in Airship. The event contains the rejected push and the group, variant, or campaigns the push belonged to.
Device information for the device that did not receive the push is included with
SEND_REJECTEDevents.Occurs when a user taps or “clicks” an Airship-shortened link in an SMS or MMS message.
SUBSCRIPTIONevents reflect changes to users’ subscription preferences — reflected in opt_in and opt_out values. These events help you track a user’s subscription status in the system and the total number of subscribers.Occurs when subscription list enrollment changes for a device or user.
Occurs when tags change for a device.
Occurs when a user uninstalls an Airship-integrated app in response to a push.
Occurs when a user interacts with a web notification, e.g., clicked or tapped it. Web Click events have a device attribute on the event indicating the channel that was the target of the notification. The body of a Web Click Event is an associated push object.
Occurs when an opted in user begins interacting with a website. Web Session events have a device attribute, indicating the channel associated with the user.
402
Like other Airship applications, Real-Time Data Streaming supports a limited number of simultaneous connections. If you exceed this number, you may receive this response.
404
We do not have data for the specified App key. This is likely because we have yet to ingress or generate any data for your app.
Compliance Event Stream
The compliance event stream provides real-time access to COMPLIANCE type events. This endpoint is open to all Airship users.
Open a compliance event stream
POST /api/events/general
Example compliance event stream request
POST /api/events/general HTTP/1.1
Authorization: Basic <master authorization string>
X-UA-Appkey: <appkey>
Accept: application/vnd.urbanairship+x-ndjson; version=3;
Content-Type: application/json
{
"start":"LATEST",
"enable_offset_updates": true
}
Response
POST /api/events/general HTTP/1.1
Authorization: Basic <master authorization string>
X-UA-Appkey: <appkey>
Accept: application/vnd.urbanairship+x-ndjson; version=3;
Content-Type: application/json
{
"start":"LATEST",
"enable_offset_updates": true
}
HTTP/1.1 200 OK
Content-encoding: gzip
Content-Type: application/vnd.urbanairship+json; version=3;
{
"id": "9781ff2e-fa4a-4fa8-bd9d-41f318c48963",
"offset": "1000001778910",
"occurred": "2018-11-28T00:02:41.794Z",
"processed": "2018-11-28T00:02:45.270Z",
"device": {
"channel": "5a39b6d8-0a5a-4c2b-a4a0-3d4a71e5254b",
"device_type": "EMAIL",
"delivery_address": "bogus@example.com"
},
"body": {
"event_type": "bounce",
"properties": {
"bounce_event_type": "bounce",
"sender": "msprvs1=17870ayYKWpBI=bounces-179492-4@example.com",
"subject": "You there?",
"email": "bogus@example.com",
"bounce_class": "10"
}
},
"type": "COMPLIANCE"
}
Opens a stream delivering events proving data-safety regulation compliance for email and SMS channel-related events (registration, unsubscription, etc.).
Unlike a standard event stream, a compliance event stream uses basic authorization, like API calls to https://go.urbanairship.com/api.
Security:
Request headers:
- X-UA-Appkey stringREQUIREDThe App Key for the project you want to return compliance events for.
Request body:
Content-Type:
application/jsonA request for compliance events is much like a request to
/api/events, but has a limited scope.
Responses
200
The response to a successful request is an unending stream of newline-delimited JSON . Each non-empty line in the response represents a single compliance event. Unlike events in a normal event stream, this endpoint returns events of the
compliancetype, and is open to SMS and email customers. As long as the connection is open, Airship will continue to write to the event stream.If a stream records no events for a period of time, the API will write a blank line (a single newline character) to the connection to prevent it from being closed for inactivity. If the
enable_offset_updatesfield in the request istrue, then the blank line is replaced with anOFFSET_UPDATEevent. These events have nobodyordevicefield, and always haveoccurredandprocessedtimes indicating when they were sent. Theoffsetfield will contain the offset of the last event considered for inclusion in the stream whether or not it was actually sent. This may be useful to track position in the stream when using a filter which removes much of it.You should not store these events; they will be different for every connection even if requests are identical.
OFFSET_UPDATEevents are not subject to filters, and are delivered even if not specified in the list of events you want to return. You should always check the type field before handling any delivered event.If you do not receive data or new line characters for ninety seconds, close the connection and reconnect.
Response body:
- Content-Type:
application/vnd.urbanairship+x-ndjson; version=3;Events relating to regulatory compliance for email and SMS channels.
All of- OBJECT PROPERTIES
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Compliance events are the only types of events returned by this event stream.
Possible values:
COMPLIANCE
- OBJECT PROPERTIES
Data Formats
SMS compliance events
Contains event body information specific to SMS compliance events.
SMS API initiated opt-in event
Example SMS API-initiated opt-in event
{
"id": "a11d6d6b-bdd1-4f3d-97d3-591993945425",
"offset": "1000005312986",
"occurred": "2019-07-10T17:11:48.923Z",
"processed": "2019-07-10T17:11:49.151Z",
"device": {
"channel": "35eb0446-0c75-44ec-ba9e-81d7250e0e06",
"device_type": "SMS"
},
"body": {
"event_type": "api_initiate_opt_in",
"identifiers": {
"sender": "18338647425",
"msisdn": "15035508427"
}
},
"type": "COMPLIANCE"
}
Occurs when an SMS user is registered via the SMS Channel Registration API without an opted_in value — indicating that the user has initiated, but not completed, the registration process. While this event contains a channel_id, you cannot send messages to this channel until the associated user completes the opt-in process (indicated by a mobile_opt_in event).
- body objectREQUIRED
Contains the event subtype, identifiers, and additional properties about the event.
OBJECT PROPERTIES- event_type stringREQUIRED
Indicates a registration was started via the Airship API without an opt-in date, and a message was sent to the end user with instructions on how to opt in.
Possible values:
api_initiate_opt_in - identifiers objectREQUIRED
Contains the sender and MSISDN for the event.
OBJECT PROPERTIES- msisdn stringREQUIRED
The phone number of the user involved in the compliance event.
- sender stringREQUIRED
The phone number or short code of the sender involved in the compliance event.
- device objectREQUIRED
Holds information about an SMS
OBJECT PROPERTIESdevice(an individual SMS channel).- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address string
The phone number for the channel.
- device_type stringREQUIRED
SMS compliance events use the
SMSdevice type.Possible values:
SMS - identifiers object
If present, the
OBJECT PROPERTIESidentifiersobject holds the value for thesenderproperty.- sender stringREQUIRED
The sender that the
delivery_addressreceived a message from.
SMS carrier deactivation event
Example SMS carrier_deactivation event
{
"id": "a7086338-0473-46fe-8d9b-cb61305c3c0d",
"offset": "1000000701505",
"occurred": "2018-12-03T19:31:10.000Z",
"processed": "2018-12-03T19:31:11.302Z",
"device": {
"channel": "a828de17-b315-4e80-9d2d-35a906afeacf",
"device_type": "SMS",
"delivery_address": "15558968663"
},
"body": {
"event_type": "carrier_deactivation",
"identifiers": {
"sender": "15558675309",
"msisdn": "15558968663"
}
},
"type": "COMPLIANCE"
}
Occurs when an MSISDN is deactivated by a carrier. This event type does not contain additional properties.
- body objectREQUIRED
Contains the event subtype, identifiers, and additional properties about the event.
OBJECT PROPERTIES- event_type stringREQUIRED
The carrier deactivated the address.
Possible values:
carrier_deactivation - identifiers objectREQUIRED
Contains the sender and MSISDN for the event.
OBJECT PROPERTIES- msisdn stringREQUIRED
The phone number of the user involved in the compliance event.
- sender stringREQUIRED
The phone number or short code of the sender involved in the compliance event.
SMS custom keyword response event
Example SMS custom keyword response event
{
"id": "34464823-b48c-4ed3-8849-03933f29d057",
"offset": "1000005313855",
"occurred": "2019-07-11T00:24:39.203Z",
"processed": "2019-07-11T00:24:40.128Z",
"device": {
"channel": "ec71312b-42e4-4bcd-b742-581a84941793",
"device_type": "SMS",
"delivery_address": "15035508427",
"identifiers": {
"sender": "18338647425"
}
},
"body": {
"event_type": "custom_keyword_response",
"identifiers": {
"sender": "18338647425",
"msisdn": "15035508427"
},
"properties": {
"inbound_message": "coupon",
"outbound_message": "Thanks! Here is your coupon! https:\/\/wallet-api.urbanairship.com\/v1\/pass\/adaptive\/M1kTVOcyXm"
}
},
"type": "COMPLIANCE"
}
Occurs when a mobile-originated keyword is matched, and elicits a custom response.
OBJECT PROPERTIES- body objectREQUIRED
Contains the event subtype, identifiers, and additional properties about the event.
OBJECT PROPERTIES- event_type stringREQUIRED
Occurs when a mobile-originated keyword generates a custom response.
Possible values:
custom_keyword_response - identifiers objectREQUIRED
Contains the sender and MSISDN for the event.
OBJECT PROPERTIES- msisdn stringREQUIRED
The phone number of the user involved in the compliance event.
- sender stringREQUIRED
The phone number or short code of the sender involved in the compliance event.
- properties objectREQUIRED
Contains properties specific to the
OBJECT PROPERTIESevent_type.- inbound_message string
The body of the inbound (to Airship) text message. This is the message a user sent to opt into or out of messages. This text corresponds to the
keywordif present. - outbound_message string
The message you sent to the user represented in the event.
- device objectREQUIRED
Holds information about an SMS
OBJECT PROPERTIESdevice(an individual SMS channel).- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address string
The phone number for the channel.
- device_type stringREQUIRED
SMS compliance events use the
SMSdevice type.Possible values:
SMS - identifiers object
If present, the
OBJECT PROPERTIESidentifiersobject holds the value for thesenderproperty.- sender stringREQUIRED
The sender that the
delivery_addressreceived a message from.
SMS mobile create channel event
Example SMS mobile_create_channel event
{
"id": "a7086338-0473-46fe-8d9b-cb61305c3c0d",
"offset": "1000000701505",
"occurred": "2018-12-03T19:31:10.000Z",
"processed": "2018-12-03T19:31:11.302Z",
"device": {
"channel": "a828de17-b315-4e80-9d2d-35a906afeacf",
"device_type": "SMS",
"delivery_address": "15558968663"
},
"body": {
"event_type": "mobile_create_channel",
"identifiers": {
"sender": "15558675309",
"msisdn": "15558968663"
},
"properties": {
"inbound_message": "JOIN",
"outbound_message": "Your order number is #123456789. Text 'JOIN' to learn about new offers from us.",
"keyword": "JOIN"
}
},
"type": "COMPLIANCE"
}
If a channel does not exist for the MSISDN/sender combination and your account is configured to create a channel if none exists in such instances, we will emit this event. The resulting channel will necessarily be opted out, awaiting an opt-in action by the user.
OBJECT PROPERTIES- body objectREQUIRED
Contains the event subtype, identifiers, and additional properties about the event.
OBJECT PROPERTIES- event_type stringREQUIRED
Indicates that a channel for the
smsevent type was created.Possible values:
mobile_create_channel - identifiers objectREQUIRED
Contains the sender and MSISDN for the event.
OBJECT PROPERTIES- msisdn stringREQUIRED
The phone number of the user involved in the compliance event.
- sender stringREQUIRED
The phone number or short code of the sender involved in the compliance event.
- properties objectREQUIRED
Contains properties specific to the
OBJECT PROPERTIESevent_type.- opted_in string
The date and time when the channel was registered.
- registration_type string
Indicates that the channel was registered with Airship.
Possible values:
create
- device objectREQUIRED
Holds information about an SMS
OBJECT PROPERTIESdevice(an individual SMS channel).- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address string
The phone number for the channel.
- device_type stringREQUIRED
SMS compliance events use the
SMSdevice type.Possible values:
SMS - identifiers object
If present, the
OBJECT PROPERTIESidentifiersobject holds the value for thesenderproperty.- sender stringREQUIRED
The sender that the
delivery_addressreceived a message from.
SMS mobile keyword matched event
Example SMS mobile_keyword_matched event
{
"id": "a7086338-0473-46fe-8d9b-cb61305c3c0d",
"offset": "1000000701505",
"occurred": "2018-12-03T19:31:10.000Z",
"processed": "2018-12-03T19:31:11.302Z",
"device": {
"channel": "a828de17-b315-4e80-9d2d-35a906afeacf",
"device_type": "SMS",
"delivery_address": "15558968663"
},
"body": {
"event_type": "mobile_keyword_matched",
"identifiers": {
"sender": "15558675309",
"msisdn": "15558968663"
},
"properties": {
"inbound_message": "join",
"outbound_message": "Wanna join the club?",
"keyword": "JOIN"
}
},
"type": "COMPLIANCE"
}
Occurs when a mobile-originated message contains a recognized keyword.
OBJECT PROPERTIES- body objectREQUIRED
Contains the event subtype, identifiers, and additional properties about the event.
OBJECT PROPERTIES- event_type stringREQUIRED
Occurs when a mobile-originated event contains a recognized keyword.
Possible values:
mobile_keyword_matched - identifiers objectREQUIRED
Contains the sender and MSISDN for the event.
OBJECT PROPERTIES- msisdn stringREQUIRED
The phone number of the user involved in the compliance event.
- sender stringREQUIRED
The phone number or short code of the sender involved in the compliance event.
- properties objectREQUIRED
Contains properties specific to the
OBJECT PROPERTIESevent_type.- inbound_message string
The body of the inbound (to Airship) text message. This is the message a user sent to opt into or out of messages. This text corresponds to the
keywordif present. - keyword string
Indicates that a mobile-originated message contained a recognized keyword.
- outbound_message string
The message you sent to the user represented in the event.
- device objectREQUIRED
Holds information about an SMS
OBJECT PROPERTIESdevice(an individual SMS channel).- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address string
The phone number for the channel.
- device_type stringREQUIRED
SMS compliance events use the
SMSdevice type.Possible values:
SMS - identifiers object
If present, the
OBJECT PROPERTIESidentifiersobject holds the value for thesenderproperty.- sender stringREQUIRED
The sender that the
delivery_addressreceived a message from.
SMS mobile keyword unmatched event
Example SMS mobile_keyword_unmatched event
{
"id": "a7086338-0473-46fe-8d9b-cb61305c3c0d",
"offset": "1000000701505",
"occurred": "2018-12-03T19:31:10.000Z",
"processed": "2018-12-03T19:31:11.302Z",
"device": {
"channel": "a828de17-b315-4e80-9d2d-35a906afeacf",
"device_type": "SMS",
"delivery_address": "15558968663"
},
"body": {
"event_type": "mobile_keyword_unmatched",
"identifiers": {
"sender": "15558675309",
"msisdn": "15558968663"
},
"properties": {
"inbound_message": "@%#!&@&#",
"outbound_message": "Wanna join the club?"
}
},
"type": "COMPLIANCE"
}
Occurs when a mobile-originated message does not contain a recognized keyword.
OBJECT PROPERTIES- body objectREQUIRED
Contains the event subtype, identifiers, and additional properties about the event.
OBJECT PROPERTIES- event_type stringREQUIRED
Occurs when a mobile-originated event does not contain a recognized keyword.
Possible values:
mobile_keyword_unmatched - identifiers objectREQUIRED
Contains the sender and MSISDN for the event.
OBJECT PROPERTIES- msisdn stringREQUIRED
The phone number of the user involved in the compliance event.
- sender stringREQUIRED
The phone number or short code of the sender involved in the compliance event.
- properties objectREQUIRED
Contains properties specific to the
OBJECT PROPERTIESevent_type.- inbound_message string
The body of the inbound (to Airship) text message. This is the message a user sent to opt into or out of messages. This text corresponds to the
keywordif present. - outbound_message string
The message you sent to the user represented in the event.
- device objectREQUIRED
Holds information about an SMS
OBJECT PROPERTIESdevice(an individual SMS channel).- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address string
The phone number for the channel.
- device_type stringREQUIRED
SMS compliance events use the
SMSdevice type.Possible values:
SMS - identifiers object
If present, the
OBJECT PROPERTIESidentifiersobject holds the value for thesenderproperty.- sender stringREQUIRED
The sender that the
delivery_addressreceived a message from.
SMS mobile opt in event
Example SMS mobile_opt_in event
{
"id": "a7086338-0473-46fe-8d9b-cb61305c3c0d",
"offset": "1000000701505",
"occurred": "2018-12-03T19:31:10.000Z",
"processed": "2018-12-03T19:31:11.302Z",
"device": {
"channel": "a828de17-b315-4e80-9d2d-35a906afeacf",
"device_type": "SMS",
"delivery_address": "15558968663"
},
"body": {
"event_type": "mobile_opt_in",
"identifiers": {
"sender": "15558675309",
"msisdn": "15558968663"
},
"properties": {
"inbound_message": "y",
"outbound_message": "Do you want to get text alerts from us?",
"keyword": "Y"
}
},
"type": "COMPLIANCE"
}
Occurs when a user opts in to text messages via a keyword.
OBJECT PROPERTIES- body objectREQUIRED
Contains the event subtype, identifiers, and additional properties about the event.
OBJECT PROPERTIES- event_type stringREQUIRED
Indicates that the event represents a newly registered address.
Possible values:
mobile_opt_in - identifiers objectREQUIRED
Contains the sender and MSISDN for the event.
OBJECT PROPERTIES- msisdn stringREQUIRED
The phone number of the user involved in the compliance event.
- sender stringREQUIRED
The phone number or short code of the sender involved in the compliance event.
- properties objectREQUIRED
Contains properties specific to the
OBJECT PROPERTIESevent_type.- inbound_message string
The body of the inbound (to Airship) text message. This is the message a user sent to opt into or out of messages. This text corresponds to the
keywordif present. - keyword string
The keyword the user sent to opt in.
- outbound_message string
The message you sent to the user represented in the event.
- device objectREQUIRED
Holds information about an SMS
OBJECT PROPERTIESdevice(an individual SMS channel).- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address string
The phone number for the channel.
- device_type stringREQUIRED
SMS compliance events use the
SMSdevice type.Possible values:
SMS - identifiers object
If present, the
OBJECT PROPERTIESidentifiersobject holds the value for thesenderproperty.- sender stringREQUIRED
The sender that the
delivery_addressreceived a message from.
SMS mobile opt out event
Example SMS mobile_opt_out event
{
"id": "a7086338-0473-46fe-8d9b-cb61305c3c0d",
"offset": "1000000701505",
"occurred": "2018-12-03T19:31:10.000Z",
"processed": "2018-12-03T19:31:11.302Z",
"device": {
"channel": "a828de17-b315-4e80-9d2d-35a906afeacf",
"device_type": "SMS",
"delivery_address": "15558968663"
},
"body": {
"event_type": "mobile_opt_out",
"identifiers": {
"sender": "15558675309",
"msisdn": "15558968663"
},
"properties": {
"inbound_message": "STOP",
"outbound_message": "Text STOP to opt out of text messages from us.",
"keyword": "STOP"
}
},
"type": "COMPLIANCE"
}
Occurs when a user sends a MO message that matches a keyword with an opt-out action. If present, this event would supplant a mobile_keyword_matched event.
- body objectREQUIRED
Contains the event subtype, identifiers, and additional properties about the event.
OBJECT PROPERTIES- event_type stringREQUIRED
The event represents a user who opted out of notifications.
Possible values:
mobile_opt_out - identifiers objectREQUIRED
Contains the sender and MSISDN for the event.
OBJECT PROPERTIES- msisdn stringREQUIRED
The phone number of the user involved in the compliance event.
- sender stringREQUIRED
The phone number or short code of the sender involved in the compliance event.
- properties objectREQUIRED
Contains properties specific to the
OBJECT PROPERTIESevent_type.- inbound_message string
The body of the inbound (to Airship) text message. This is the message a user sent to opt into or out of messages. This text corresponds to the
keywordif present. - keyword string
Indicates that the user responded to opt out of messages. The enumerated values represent default keywords, but any custom keywords that you configure to allow mobile opt-outs can also appear here.
Possible values:
STOP,STOPALL,UNSUBSCRIBE,CANCEL,END,QUIT,ARRET - outbound_message string
The message you sent to the user represented in the event.
- device objectREQUIRED
Holds information about an SMS
OBJECT PROPERTIESdevice(an individual SMS channel).- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address string
The phone number for the channel.
- device_type stringREQUIRED
SMS compliance events use the
SMSdevice type.Possible values:
SMS - identifiers object
If present, the
OBJECT PROPERTIESidentifiersobject holds the value for thesenderproperty.- sender stringREQUIRED
The sender that the
delivery_addressreceived a message from.
SMS mobile terminated message event
Example SMS mobile_terminated_message event
{
"id": "a7086338-0473-46fe-8d9b-cb61305c3c0d",
"offset": "1000000701505",
"occurred": "2018-12-03T19:31:10.000Z",
"processed": "2018-12-03T19:31:11.302Z",
"device": {
"channel": "a828de17-b315-4e80-9d2d-35a906afeacf",
"device_type": "SMS"
},
"body": {
"event_type": "mobile_terminated_message",
"identifiers": {
"sender": "15558675309",
"msisdn": "15558968663"
}
},
"type": "COMPLIANCE"
}
Occurs when Airship sends an SMS message to a user. The message represented by this event could be a response to an individual mobile-originated (MO) message, or a message initiated from the Airship UI/API.
OBJECT PROPERTIES- body objectREQUIRED
Contains the Compliance event subtype and properties specific to the event subtype.
OBJECT PROPERTIES- event_type stringREQUIRED
Airship has emitted a mobile-terminated message.
Possible values:
mobile_terminated_message - identifiers objectREQUIRED
Contains the sender and MSISDN for the event.
OBJECT PROPERTIES- msisdn stringREQUIRED
The phone number of the user involved in the compliance event.
- sender stringREQUIRED
The phone number or short code of the sender involved in the compliance event.
- device objectREQUIRED
Holds information about an SMS
OBJECT PROPERTIESdevice(an individual SMS channel).- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address string
The phone number for the channel.
- device_type stringREQUIRED
SMS compliance events use the
SMSdevice type.Possible values:
SMS - identifiers object
If present, the
OBJECT PROPERTIESidentifiersobject holds the value for thesenderproperty.- sender stringREQUIRED
The sender that the
delivery_addressreceived a message from.
SMS opted out event
Example SMS opted_out event
{
"id": "a7086338-0473-46fe-8d9b-cb61305c3c0d",
"offset": "1000000701505",
"occurred": "2018-12-03T19:31:10.000Z",
"processed": "2018-12-03T19:31:11.302Z",
"device": {
"channel": "a828de17-b315-4e80-9d2d-35a906afeacf",
"device_type": "SMS",
"delivery_address": "15558968663",
"identifiers": { "sender": "15558675309" }
},
"body": {
"event_type": "opted_out",
"identifiers": {
"sender": "15558675309",
"msisdn": "15558968663"
}
},
"type": "COMPLIANCE"
}
Occurs when a user is opted out of an SMS audience via the Airship API, i.e., not via an opt-out keyword. This event type does not contain additional properties.
- OBJECT PROPERTIES
- device object
Holds information about an SMS
OBJECT PROPERTIESdevice(an individual SMS channel).- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address string
The phone number for the channel.
- device_type stringREQUIRED
SMS compliance events use the
SMSdevice type.Possible values:
SMS - identifiers object
If present, the
OBJECT PROPERTIESidentifiersobject holds the value for thesenderproperty.- sender stringREQUIRED
The sender that the
delivery_addressreceived a message from.
- id string
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred string
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed string
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type string
Compliance events are the only types of events returned by this event stream.
Possible values:
COMPLIANCE
- OBJECT PROPERTIES
- body objectREQUIRED
Contains the event subtype, identifiers, and additional properties about the event.
OBJECT PROPERTIES- event_type stringREQUIRED
The address opted out of notifications.
Possible values:
opted_out - identifiers objectREQUIRED
Contains the sender and MSISDN for the event.
OBJECT PROPERTIES- msisdn stringREQUIRED
The phone number of the user involved in the compliance event.
- sender stringREQUIRED
The phone number or short code of the sender involved in the compliance event.
SMS Create and Send event
Example SMS Create and Send event
{
"id": "a7086338-0473-46fe-8d9b-cb61305c3c0d",
"offset": "1000000701505",
"occurred": "2018-12-03T19:31:10.000Z",
"processed": "2018-12-03T19:31:11.302Z",
"device": {
"channel": "a828de17-b315-4e80-9d2d-35a906afeacf",
"device_type": "SMS",
"delivery_address": "15558968663"
},
"body": {
"event_type": "create_and_send",
"identifiers": {
"sender": "15558675309",
"msisdn": "15558968663"
},
"properties": {
"opted_in": "2018-12-03T19:31:10.000Z",
"channel_registered": "true"
}
},
"type": "COMPLIANCE"
}
An event that occurs for SMS channels used as a part of a Create and Send.
OBJECT PROPERTIES- body objectREQUIRED
Contains the event subtype and additional properties about the event.
OBJECT PROPERTIES- event_type stringREQUIRED
Possible values:
create_and_send - identifiers objectREQUIRED
Contains the sender and MSISDN for the event.
OBJECT PROPERTIES- msisdn stringREQUIRED
The phone number of the user involved in the compliance event.
- sender stringREQUIRED
The phone number or short code of the sender involved in the compliance event.
- properties objectREQUIRED
Properties for an SMS Create and Send event.
OBJECT PROPERTIES- channel_registered booleanREQUIRED
If true, a new channel was created to represent the identifiers in the event. If false, the address was already registered to Airship.
- opted_in string
The date-and-time when the
msisdnopted into messages from thesender.
- device objectREQUIRED
Holds information about an SMS
OBJECT PROPERTIESdevice(an individual SMS channel).- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address string
The phone number for the channel.
- device_type stringREQUIRED
SMS compliance events use the
SMSdevice type.Possible values:
SMS - identifiers object
If present, the
OBJECT PROPERTIESidentifiersobject holds the value for thesenderproperty.- sender stringREQUIRED
The sender that the
delivery_addressreceived a message from.
SMS registration event
Example SMS registration event
{
"id": "a7086338-0473-46fe-8d9b-cb61305c3c0d",
"offset": "1000000701505",
"occurred": "2018-12-03T19:31:10.000Z",
"processed": "2018-12-03T19:31:11.302Z",
"device": {
"channel": "a828de17-b315-4e80-9d2d-35a906afeacf",
"device_type": "SMS"
},
"body": {
"event_type": "registration",
"identifiers": {
"sender": "15558675309",
"msisdn": "15558968663"
},
"properties": {
"opted_in": "2018-12-03T19:31:10.000Z",
"registration_type": "create"
}
},
"type": "COMPLIANCE"
}
Occurs when a user opts in to receive SMS messages from you, via a call to the SMS registration API.
OBJECT PROPERTIES- body objectREQUIRED
Contains the event subtype, identifiers, and additional properties about the event.
OBJECT PROPERTIES- event_type stringREQUIRED
Indicates that the event represents a newly registered address.
Possible values:
registration - identifiers objectREQUIRED
Contains the sender and MSISDN for the event.
OBJECT PROPERTIES- msisdn stringREQUIRED
The phone number of the user involved in the compliance event.
- sender stringREQUIRED
The phone number or short code of the sender involved in the compliance event.
- properties objectREQUIRED
Contains properties specific to the
OBJECT PROPERTIESevent_type.- opted_in stringREQUIRED
The ISO 8601 date-time (UTC) when the channel opted-in to notifications.
- registration_type stringREQUIRED
Indicates whether the channel was created or updated.
Possible values:
create,update
- device objectREQUIRED
Holds information about an SMS
OBJECT PROPERTIESdevice(an individual SMS channel).- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address string
The phone number for the channel.
- device_type stringREQUIRED
SMS compliance events use the
SMSdevice type.Possible values:
SMS - identifiers object
If present, the
OBJECT PROPERTIESidentifiersobject holds the value for thesenderproperty.- sender stringREQUIRED
The sender that the
delivery_addressreceived a message from.
SMS update event
Example SMS update event
{
"id": "a7086338-0473-46fe-8d9b-cb61305c3c0d",
"offset": "1000000701505",
"occurred": "2018-12-03T19:31:10.000Z",
"processed": "2018-12-03T19:31:11.302Z",
"device": {
"channel": "a828de17-b315-4e80-9d2d-35a906afeacf",
"device_type": "SMS",
"delivery_address": "15558968663",
"identifiers": {
"sender": "15558675309"
}
},
"body": {
"event_type": "registration",
"identifiers": {
"sender": "15558675309",
"msisdn": "15558968663"
},
"properties": {
"registration_type": "update"
}
},
"type": "COMPLIANCE"
}
When an SMS event update occurs.
OBJECT PROPERTIES- body objectREQUIRED
Contains the event subtype, identifiers, and additional properties about the event.
OBJECT PROPERTIES- event_type stringREQUIRED
Indicates that the event represents a newly registered address.
Possible values:
registration - identifiers objectREQUIRED
Contains the sender and MSISDN for the event.
OBJECT PROPERTIES- msisdn stringREQUIRED
The phone number of the user involved in the compliance event.
- sender stringREQUIRED
The phone number or short code of the sender involved in the compliance event.
- properties objectREQUIRED
Contains properties specific to the
OBJECT PROPERTIESevent_type.- opted_in stringREQUIRED
The ISO 8601 date-time (UTC) when the channel opted-in to notifications.
- registration_type stringREQUIRED
Indicates the channel was updated.
Possible values:
update
- device objectREQUIRED
Holds information about an SMS
OBJECT PROPERTIESdevice(an individual SMS channel).- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address string
The phone number for the channel.
- device_type stringREQUIRED
SMS compliance events use the
SMSdevice type.Possible values:
SMS - identifiers object
If present, the
OBJECT PROPERTIESidentifiersobject holds the value for thesenderproperty.- sender stringREQUIRED
The sender that the
delivery_addressreceived a message from.
SMS uninstalled event
Example SMS uninstalled event
{
"id": "a7086338-0473-46fe-8d9b-cb61305c3c0d",
"offset": "1000000701505",
"occurred": "2018-12-03T19:31:10.000Z",
"processed": "2018-12-03T19:31:11.302Z",
"device": {
"channel": "a828de17-b315-4e80-9d2d-35a906afeacf",
"device_type": "SMS",
"delivery_address": "15558968663",
"identifiers": {
"sender": "15558675309"
}
},
"body": {
"event_type": "uninstall",
"identifiers": {
"sender": "15558675309",
"msisdn": "15558968663"
}
},
"type": "COMPLIANCE"
}
Occurs when the SMS uninstall API is called.
OBJECT PROPERTIES- body objectREQUIRED
Contains the event subtype, identifiers, and additional properties about the event.
OBJECT PROPERTIES- event_type stringREQUIRED
The address was uninstalled.
Possible values:
uninstall - identifiers objectREQUIRED
Contains the sender and MSISDN for the event.
OBJECT PROPERTIES- msisdn stringREQUIRED
The phone number of the user involved in the compliance event.
- sender stringREQUIRED
The phone number or short code of the sender involved in the compliance event.
- device objectREQUIRED
Holds information about an SMS
OBJECT PROPERTIESdevice(an individual SMS channel).- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address string
The phone number for the channel.
- device_type stringREQUIRED
SMS compliance events use the
SMSdevice type.Possible values:
SMS - identifiers object
If present, the
OBJECT PROPERTIESidentifiersobject holds the value for thesenderproperty.- sender stringREQUIRED
The sender that the
delivery_addressreceived a message from.
Device information
Events are ascribed to devices. App, web, SMS, email, and open channel devices return different information.
App device information
Example device information object
{
"channel": "a6b392d6-3b0d-4c00-98ef-5cb91d51268a",
"device_type": "IOS",
"named_user_id": "Albert",
"identifiers": {
"com.urbanairship.idfa": "fb0d01e0-9e21-4466-9217-8eacfd2b81c7",
"com.urbanairship.gimbal.aii": "c5720f06-516a-4b91-b7bb-53523fc43a3d",
"com.urbanairship.limited_ad_tracking_enabled": "false"
},
"attributes": {
"app_package_name": "com.company_name.app_name",
"app_version": "1.0.0",
"ua_sdk_version": "7.0.2"
}
}
Information about app users generated by the SDK.
OBJECT PROPERTIES- amazon_channel string
The identifier for a Fire OS channel. In general, this is also the same value as the
channel. - android_channel string
The identifier for an Android channel. In general, this is also the same value as the
channel. - attributes object
Attributes specific to app devices.
OBJECT PROPERTIES- app_package_name string
A unique identifier for the app name.
- app_version string
The version of the app.
- background_push_enabled string
Indicates whether or not the device has background push notifications enabled.
Possible values:
true,false - carrier stringDEPRECATED
The wireless carrier used by the device. Deprecation notice: This property will not be collected as of SDK 20 for both iOS and Android and will be removed on October 8, 2025.
- connection_type stringDEPRECATED
The internet connection type used by the device. Deprecation notice: This property will not be collected as of SDK 20 for both iOS and Android and will be removed on October 8, 2025.
Possible values:
WIFI,CELL,WIMAX,NONE - device_model string
The device model.
- device_os string
The device operating system.
- iana_timezone string
The time zone of the device.
- locale_country_code string
The ISO 3166-1 country code as defined in device settings.
- locale_language_code string
The ISO 639-1 two-letter language code reflecting the language that the device is set to.
- locale_timezone string
The device’s time zone offset in seconds from UTC.
- locale_variant string
The language variant.
- location_enabled string
Indicates whether or not the device has location services enabled.
Possible values:
true,false - location_permission string
SYSTEM_LOCATION_DISABLEDLocation is disabled in system settingsNOT_ALLOWEDAndroid: missing manifest permissions, iOS: opted outALWAYS_ALLOWEDAndroid: has manifest permissions, iOS: opted in background and foregroundFOREGROUND_ALLOWEDiOS only: opted in foreground onlyUNPROMPTED: iOS only
Possible values:
SYSTEM_LOCATION_DISABLED,NOT_ALLOWED,ALWAYS_ALLOWED,FOREGROUND_ALLOWED,UNPROMPTED - push_opt_in string
Indicates whether or not the device is opted into push notifications.
- ua_sdk_version string
The version of the Airship SDK used in the app.
- channel stringREQUIRED
The unique, platform-agnostic channel identifier for a device.
- device_type stringREQUIRED
The platform that the channel is on.
Possible values:
IOS,ANDROID,AMAZON - identifiers object
Identifying information specific to app devices.
OBJECT PROPERTIES- com.urbanairship.aaid string
Android/Fire OS ad identifier
- com.urbanairship.gimbal.aii string
Gimbal application instance identifier
- com.urbanairship.idfa string
Apple ad identifier
- com.urbanairship.limited_ad_tracking_enabled string
If true, the user has enabled limited ad tracking.
Possible values:
true,false - com.urbanairship.vendor string
Apple vendor identifier
- ios_channel string
The identifier for an iOS channel. In general, this is also the same value as the
channel. - named_user_id string
The Named User identifier for the device.
Named User
User information for events which occur at the user level.
OBJECT PROPERTIES- named_user_id stringREQUIRED
The Named User identifier for the device.
Open channel device information
Information about open channel users.
OBJECT PROPERTIES- channel string
The unique, platform-agnostic channel identifier for a device.
- device_type string
The platform that the channel is on.
Possible values:
OPEN - named_user_id string
The Named User identifier for the device.
- open_platform_name string
If
device_typeis set toOPEN, this field shows the full name of the platform.
Device information for SMS and email
Information about the SMS or email device related to an event.
OBJECT PROPERTIES- channel stringREQUIRED
The channel identifier.
- delivery_address string
- If
device_typeisSMS, this field shows the MSISDN. - If
device_typeisEMAIL, this field shows the email address.
- If
- device_type stringREQUIRED
The platform that the channel is on.
Possible values:
EMAIL,SMS - named_user_id string
The Named User the channel is associated with.
Web device information
Information about web users generated by the SDK.
OBJECT PROPERTIES- attributes objectOBJECT PROPERTIES
- iana_timezone string
The time zone of the device.
- locale_country_code string
The ISO 3166-1 country code as defined in device settings.
- locale_language_code string
The ISO 639-1 two-letter language code reflecting the language that the device is set to.
- locale_timezone string
The device’s time zone offset in seconds from UTC.
- locale_variant string
The language variant.
- push_opt_in stringREQUIRED
Indicates whether or not the device is opted into push notifications.
- ua_sdk_version stringREQUIRED
The version of the Airship SDK used in the app.
- web_browser_name stringREQUIRED
The name of the browser running the SDK.
- web_browser_type stringREQUIRED
Indicates whether the browser was running on a desktop or mobile device.
- web_browser_version stringREQUIRED
The version of the browser.
- web_user_agent_string stringREQUIRED
The user agent reported by the browser.
- channel stringREQUIRED
The unique, platform-agnostic channel identifier for a device.
- device_type stringREQUIRED
The platform that the channel is on.
Possible values:
WEB - named_user_id string
The Named User identifier for the device.
JSON Predicates
Provides a flexible language for expressing custom filtering of your event stream.
Array matcher
Example find only push body objects with the campaign category "spring_sale"
{
"filters": {
"types": ["PUSH_BODY"],
"predicates": {
"key": "categories",
"scope": ["body", "campaigns"],
"value": {
"array_contains": { "value": {"equals": "spring_sale"} }
}
}
}
}
Determines if an array contains an object that matches another criteria.
One of- OBJECT PROPERTIES
- array_contains object
The JSON Predicate.
- OBJECT PROPERTIES
- array_contains object
The JSON Predicate.
- index number
The specified element in the array.
Equals matcher
Example find SMS delivery errors with equals matcher
{
"filters": [
{
"device_types": ["sms"],
"types": ["CUSTOM"],
"predicates": [
{
"and": [
{
"key": "interaction_type",
"scope": ["body"],
"value": {"equals": "delivery_report"}
},
{
"not": {
"key": "name",
"scope": ["body"],
"value": {"equals": "delivered"}
}
}
]
}
]
}
]
}
Determines if the value matches exactly.
OBJECT PROPERTIES- equals objectOne of
- string
- array<oneOf>
JSON Predicate
Example JSON Predicate to filter the stream to only Android Open events
{
"filters": {
"predicates": {
"and": [
{
"scope": ["device"],
"key": "device_type",
"value": {"equals": "ANDROID"}
},
{ "key": "type", "value": {"equals": "OPEN"} }
]
}
}
}
Standard request filters check specific, predefined fields in your events and remove any events that don’t match the criteria for that field. For example, the device_types filter always checks the device_type sub-field of the device object. In contrast, you can use JSON Predicates to examine any part of an event, providing more flexibility than the standard filters. You can also combine multiple JSON Predicate objects to create complex filtering logic for your event stream.
The simplest JSON Predicate examines a single key and provides a matcher object that can be applied to the value at that key. To filter a stream for only Open events, you could use the standard filter types: filters:{"types": ["OPEN"]}. However, to achieve this with a JSON Predicate, you would use filters:{"predicates":{"key":"type", "value": {"equals": "OPEN"}}}. This checks the value of the top-level key type to see if it’s exactly “OPEN”. It also serves as a foundational step for constructing more intricate filters.
To filter for only Android events, you could use the device_type filter, but a JSON Predicate allows for more complex combinations later. Since the device type key doesn’t appear at the top level of the event, you’ll need to provide a scope, like this filters:{"predicates":{"scope":["device"], "key":"device_type", "value": {"equals": "ANDROID"}}}. This configuration targets the device_type key within the device object, checking if its value is “ANDROID”.
You can combine the two filters to see only Opens from Android devices: filters:{"predicates":{"and":[ {"scope":["device"], "key":"device_type", "value": {"equals": "ANDROID"}}, {"key":"type", "value": {"equals": "OPEN"}} ]}}
We also have matchers other than equals. Numeric at_least and at_most can be combined to create ranges. version_matches uses Ivy syntax to match version numbers. is_present determines if there’s any value at a given key. array_contains can be combined with another predicate to determine if an array contains an object that matches another criteria.
- And objectOBJECT PROPERTIES
- and array
- Or objectOBJECT PROPERTIES
- or array
- Not objectOBJECT PROPERTIES
- not object
The JSON Predicate.
- Value objectOBJECT PROPERTIES
- key stringREQUIRED
The name of the value being matched.
- scope object
The path into a JSON object.
One of- string
- array<string>
- value objectREQUIRED
The value you are filtering for in the JSON Predicate.
One ofDetermines if an array contains an object that matches another criteria.
Determines if the value matches exactly.
Determines if a number matches or is within range of the criteria.
Determines if there is any value for a given key.
Determines if version numbers match.
Numeric matcher
Example find custom events with name "purchase" and a "value" of at least 100
{
"filters": [
{
"types": ["CUSTOM"],
"predicates": [
{
"and": [
{ "key": "value",
"scope": ["body"],
"value": {"at_least": 100}
},
{
"key": "name",
"scope": ["body"],
"value": {"equals": "purchase"}
}
]
}
]
}
]
}
Determines if a number matches or is within range of the criteria.
One of- OBJECT PROPERTIES
- at_least number
- OBJECT PROPERTIES
- at_most number
- OBJECT PROPERTIES
- at_least number
- at_most number
Presence matcher
Example find only direct open events
{
"filters": {
"types": ["OPEN"],
"predicates": {
"key": "triggering_push",
"scope": ["body"],
"value": {"is_present": true}
}
}
}
Determines if there is any value for a given key.
OBJECT PROPERTIES- is_present boolean
If
true, the value should be present. Iffalse, the value should not be present.
Version matcher
Example find custom events of type "purchase" performed by Android users on app versions between 18.4.1 and 19.2.3
{
"filters": [
{
"device_types": ["android"],
"types": ["CUSTOM"],
"predicates": [
{
"and": [
{
"key": "app_version",
"scope": ["device", "attributes"],
"value": {"version_matches": "[18.4.1,19.2.3]"}
},
{
"key": "name",
"scope": ["body"],
"value": {"equals": "purchase"}
}
]
}
]
}
]
}
Determines if version numbers match.
OBJECT PROPERTIES- version_matches string
The version number string to be matched. Format strings using Ivy syntax .
Events
Contains information about events organized by type. Some events contain additional subtypes or device information.
Attribute operation event
Example Attribute operation event
{
"id": "00000173-bb88-8804-b6ec-a40f4ae36648",
"offset": "1000059326194",
"occurred": "2020-08-04T22:12:33.924Z",
"processed": "2020-08-04T22:12:37.672Z",
"device": {
"android_channel": "b57f0e3c-da10-4a2b-99d2-5fe2cb30cad3",
"channel": "b57f0e3c-da10-4a2b-99d2-5fe2cb30cad3",
"device_type": "ANDROID",
"named_user_id": "cool_user",
"attributes": {
"locale_variant": "",
"app_version": "2020-02-10T222436-staging",
"device_model": "Pixel 2 XL",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "America/Los_Angeles",
"push_opt_in": "true",
"locale_country_code": "US",
"device_os": "10",
"locale_timezone": "-25200",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "12.2.0",
"location_permission": "NOT_ALLOWED"
}
},
"user": {
"contact_id": "6b5ca2a2-c1f1-4119-9617-2d5bff0db09d",
"named_user_id": "cool_user"
},
"body": {
"set": [
{
"key": "first_name",
"value": "Pierre"
}
]
},
"type": "ATTRIBUTE_OPERATION"
}
Attribute operation events indicate a change in the device’s attributes. Because attribute operations are related to a device, they will have a device field.
If you set an attribute on a Named User, Airship records events for each device associated with the Named User.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- remove array[object]
The attributes removed from the
devicein this event. - set array[object]
- device objectREQUIREDOne of
Information about app users generated by the SDK.
Information about web users generated by the SDK.
Information about the SMS or email device related to an event.
Information about open channel users.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
ATTRIBUTE_OPERATION - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
Close
Example close event
{
"id": "51dd7c1c-5621-11e9-9601-0242539d70ef",
"offset": "1000022467557",
"occurred": "2019-03-29T21:42:21.245Z",
"processed": "2019-04-03T15:10:23.828Z",
"device": {
"ios_channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
"channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
"device_type": "IOS",
"named_user_id": "cooluser",
"identifiers": {
"com.urbanairship.limited_ad_tracking_enabled": "true",
"session_id": "B147E0CE-272E-4047-A79C-30D02A2F213D",
"GA_CID": "a61448e1-be63-43ee-84eb-19446ba743f0",
"com.urbanairship.idfa": "A76E6F83-4F4A-47E2-BFDD-72BED91D2D1F",
"com.urbanairship.vendor": "ED496B1A-43F1-45A9-A7C1-80125DE8A5B1"
},
"attributes": {
"locale_variant": "",
"app_version": "542",
"device_model": "iPhone7,2",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "America/Los_Angeles",
"push_opt_in": "true",
"locale_country_code": "US",
"device_os": "11.4",
"locale_timezone": "-25200",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "10.2.0",
"location_permission": "ALWAYS_ALLOWED"
}
},
"user": {
"contact_id": "982B35f2-0375-6384-893e-a19b5cd5R771"
},
"body": {
"session_id": "61acb6c9-527b-4632-b789-a3e6085b094e"
},
"type": "CLOSE"
}
Occurs when a user closes the app. Close events are often latent, as they aren’t sent back to Airship until the user activates the app again.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
Information about app users generated by the SDK.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
CLOSE - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
Contact change
Example contact change event
{
"id": "fe882bd1-e0b9-11ea-bc35-0242f70dd9ff",
"offset": "1000076075647",
"occurred": "2024-09-25T19:03:13.903Z",
"processed": "2024-09-25T19:03:14.426Z",
"user": {
"contact_id": "6b5ca2a2-c1f1-4119-9617-2d5bff0db09d",
"named_user_id": "mini_me"
},
"device": {
"ios_channel": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
"channel": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
"device_type": "IOS"
},
"body": {
"change_type": "DISSOCIATION",
"contact_id": "6b5ca2a2-c1f1-4119-9617-2d5bff0db09d",
"named_user_id": "mini_me",
"channel_id": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
},
"type": "CONTACT_CHANGE"
}
Occurs when a contact is uninstalled, associated with a channel or Named User, or dissociated from a channel or Named User.
OBJECT PROPERTIES- body objectOBJECT PROPERTIES
- change_type string
Describes the reason the contact change event was emitted.
ASSOCIATION: The contact was associated to a channel or Named User.DISSOCIATION: The contact was dissociated from a channel or Named User.UNINSTALL: The contact was uninstalled.
Possible values:
ASSOCIATION,DISSOCIATION,UNINSTALL - channel_id string
The ID of the channel that was associated or dissociated from the contact, depending on the change event type.
- contact_id string
The ID of the contact related to the change event.
- named_user_id string
An optional string that represents the Named User ID related to the change event.
- device object<App device information>
Information about app users generated by the SDK.
- id string
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred string
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed string
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type string
Possible values:
CONTACT_CHANGE - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
Control
Example control event
{
"id" : "ff76bb85-74bc-4511-a3bf-11b6117784db",
"type": "CONTROL",
"offset": "MTIzNQ",
"occurred": "2015-05-03T02:32:12.088Z",
"processed": "2015-05-03T12:12:43.180Z",
"device": {
"channel":"a61448e1-be63-43ee-84eb-19446ba743f0",
"device_type":"ANDROID",
"android_channel": "a61448e1-be63-43ee-84eb-19446ba743f0"
},
"user": {
"contact_id": "6b5ca2a2-c1f1-4119-9617-2d5bff0db09d",
"named_user_id": "mini_me"
},
"body:" {
"push_id": "c91d9e1b-605f-4bad-a45d-cdf3e6e0773f",
"group_id": "3eec7de4-4b19-436e-ad15-88278f9ddb82"
}
}
Occurs when a device is excluded from a push because it was arbitrarily selected as a member of a control group for a Message A/B test, Sequence A/B test, or Holdout Experiment.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- campaigns object
An object listing the campaigns a push specification is associated with. The campaigns object includes an array of categories that must have between 1 and 10 elements, each of which is a string with a 64-byte and -character limit.
OBJECT PROPERTIES- categories array[string]
- experiment_id string
The unique identifier for the Message A/B test or Holdout Experiment.
- group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- push_id string
A unique identifier for a push operation.
- device objectREQUIREDOne of
Information about app users generated by the SDK.
Information about web users generated by the SDK.
- experiment_id string
The unique identifier for the Message A/B test or Holdout Experiment.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
CONTROL - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
Custom
Example Custom Event (entire payload on Android channel)
{
"id": "4f42e8d0-a010-11ee-ae53-000000a91ace",
"offset": "1009810398823",
"occurred": "2023-12-21T14:50:35.077Z",
"processed": "2023-12-21T14:50:40.843Z",
"device": {
"android_channel": "ac1960b9-24b6-4851-b907-b9e64f071890",
"channel": "ac1960b9-24b6-4851-b907-b9e64f071890",
"device_type": "ANDROID",
"named_user_id": "c2cbc6e5145763ec58a4d85dfa4323aacc40afea",
"attributes": {
"locale_variant": "",
"device_model": "M2101K9G",
"app_version": "18.4.2",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "Europe/Paris",
"push_opt_in": "true",
"locale_country_code": "FR",
"device_os": "12",
"locale_timezone": "3600",
"locale_language_code": "fr",
"background_push_enabled": "true",
"ua_sdk_version": "16.9.2"
}
},
"body": {
"name": "purchased",
"value": 239.85,
"transaction": "886f53d4-3e0f-46d7-930e-c2792dac6e0a",
"interaction_id": "your.store/us/en_us/pd/shoe/pid-11046546/pgid-10978234",
"interaction_type": "url",
"properties": {
"description": "Sneaker purchase",
"brand": "Victory Sneakers",
"colors": [
"red",
"blue"
],
"items": [
{
"text": "New Line Sneakers",
"price": "$ 79.95"
},
{
"text": "Old Line Sneakers",
"price": "$ 79.95"
},
{
"text": "Blue Line Sneakers",
"price": "$ 79.95"
}
],
"name": "Hugh Manbeing",
"userLocation": {
"state": "CO",
"zip": "80202"
}
}
},
"session_id": "adc0e12e-dfe8-4375-8121-5b21dbab87f4",
"source": "SDK",
"type": "CUSTOM"
}
Example Custom Event from API (shoe sale)
{
"id": "4f42e8d0-a010-11ee-ae53-000000a91ace",
"offset": "1009810398823",
"occurred": "2023-12-21T14:50:35.077Z",
"processed": "2023-12-21T14:50:40.843Z",
"device": {
"android_channel": "ac1960b9-24b6-4851-b907-b9e64f071890",
"channel": "ac1960b9-24b6-4851-b907-b9e64f071890",
"device_type": "ANDROID",
"named_user_id": "c2cbc6e5145763ec58a4d85dfa4323aacc40afea",
"attributes": {
"locale_variant": "",
"device_model": "M2101K9G",
"app_version": "18.4.2",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "Europe/Paris",
"push_opt_in": "true",
"locale_country_code": "FR",
"device_os": "12",
"locale_timezone": "3600",
"locale_language_code": "fr",
"background_push_enabled": "true",
"ua_sdk_version": "16.9.2"
}
},
"body": {
"name": "purchased",
"value": 239.85,
"transaction": "886f53d4-3e0f-46d7-930e-c2792dac6e0a",
"interaction_id": "your.store/us/en_us/pd/shoe/pid-11046546/pgid-10978234",
"interaction_type": "url",
"properties": {
"description": "Sneaker purchase",
"brand": "Victory Sneakers",
"colors": [
"red",
"blue"
],
"items": [
{
"text": "New Line Sneakers",
"price": "$ 79.95"
},
{
"text": "Old Line Sneakers",
"price": "$ 79.95"
},
{
"text": "Blue Line Sneakers",
"price": "$ 79.95"
}
],
"name": "Hugh Manbeing",
"userLocation": {
"state": "CO",
"zip": "80202"
}
}
},
"session_id": "adc0e12e-dfe8-4375-8121-5b21dbab87f4",
"source": "SDK",
"type": "CUSTOM"
}
{
"name" : "shoe-purchase",
"value" : 239.85,
"source": "api",
"transaction" : "Selling all the shoes",
"session_id": "cfe467a6-ca70-40dd-8c1f-07b2f644935e",
"properties": {
"description": "Sneaker purchase",
"brand": "Victory Sneakers",
"colors": ["red","blue"],
"items": [
{
"text": "New Line Sneakers",
"price": "$ 79.95"
},
{
"text": "Old Line Sneakers",
"price": "$ 79.95"
},
{
"text": "Blue Line Sneakers",
"price": "$ 79.95"
}
],
"name": "Hugh Manbeing",
"userLocation": {
"state": "CO",
"zip": "80202"
}
}
}
Example Custom Event from SDK (shoe sale)
{
"id": "4f42e8d0-a010-11ee-ae53-000000a91ace",
"offset": "1009810398823",
"occurred": "2023-12-21T14:50:35.077Z",
"processed": "2023-12-21T14:50:40.843Z",
"device": {
"android_channel": "ac1960b9-24b6-4851-b907-b9e64f071890",
"channel": "ac1960b9-24b6-4851-b907-b9e64f071890",
"device_type": "ANDROID",
"named_user_id": "c2cbc6e5145763ec58a4d85dfa4323aacc40afea",
"attributes": {
"locale_variant": "",
"device_model": "M2101K9G",
"app_version": "18.4.2",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "Europe/Paris",
"push_opt_in": "true",
"locale_country_code": "FR",
"device_os": "12",
"locale_timezone": "3600",
"locale_language_code": "fr",
"background_push_enabled": "true",
"ua_sdk_version": "16.9.2"
}
},
"body": {
"name": "purchased",
"value": 239.85,
"transaction": "886f53d4-3e0f-46d7-930e-c2792dac6e0a",
"interaction_id": "your.store/us/en_us/pd/shoe/pid-11046546/pgid-10978234",
"interaction_type": "url",
"properties": {
"description": "Sneaker purchase",
"brand": "Victory Sneakers",
"colors": [
"red",
"blue"
],
"items": [
{
"text": "New Line Sneakers",
"price": "$ 79.95"
},
{
"text": "Old Line Sneakers",
"price": "$ 79.95"
},
{
"text": "Blue Line Sneakers",
"price": "$ 79.95"
}
],
"name": "Hugh Manbeing",
"userLocation": {
"state": "CO",
"zip": "80202"
}
}
},
"session_id": "adc0e12e-dfe8-4375-8121-5b21dbab87f4",
"source": "SDK",
"type": "CUSTOM"
}
{
"name" : "shoe-purchase",
"value" : 239.85,
"source": "api",
"transaction" : "Selling all the shoes",
"session_id": "cfe467a6-ca70-40dd-8c1f-07b2f644935e",
"properties": {
"description": "Sneaker purchase",
"brand": "Victory Sneakers",
"colors": ["red","blue"],
"items": [
{
"text": "New Line Sneakers",
"price": "$ 79.95"
},
{
"text": "Old Line Sneakers",
"price": "$ 79.95"
},
{
"text": "Blue Line Sneakers",
"price": "$ 79.95"
}
],
"name": "Hugh Manbeing",
"userLocation": {
"state": "CO",
"zip": "80202"
}
}
}
{
"name" : "shoe-purchase",
"value" : 60.000000,
"source": "sdk",
"interaction_type" : "Landing Page",
"interaction_id" : "d01d0380-da2e-11e3-8519-90e2ba299b38",
"customer_id" : "George@example.com",
"transaction" : "Selling all the shoes",
"session_id": "cfe467a6-ca70-40dd-8c1f-07b2f644935e",
"last_delivered": {
"push_id": "6e3339ce-529c-42e4-a2f6-7546f81c9828"
},
"triggering_push": {
"push_id": "c2f6c5c5-f353-49c0-b5f7-6e87cf9b1a06",
"group_id": "8ea2abd6-dbc7-475a-9c57-fb31c7e2999b"
},
"properties": {
"coolest-identifier": "123-cool-cat-321",
"ltv": false,
"category": "womens_shoes",
"id": 1267,
"description": "plaid canvas",
"brand": "hipster",
"new_item": true
}
}
Represents Custom Events that are either emitted from the Airship SDK or submitted through the Custom Events API. You can configure Custom Events yourself. There are also several CUSTOM-type events for email and SMS that are defined by Airship.
In general, you can expect device information if the event source is SDK or if the event is one of the defined email or SMS events (as defined by event_type).
- OBJECT PROPERTIES
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset stringREQUIRED
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
CUSTOM
- One of
Occurs when the remote MTA (email server) acknowledges receipt of a message.
This event occurs when the provider (SparkPost) receives a message — typically when a member of the audience responds to an email.
Occurs when a recipient opens an email, rendering a tracking pixel at the bottom of the message. If a message is truncated by a client or email provider, a user may have to open it in a separate window to render the tracking pixel (and register this event).
Occurs when a mailbox provider temporarily rejects an email. In general, this event indicates that the provider will attempt to resend the message.
Occurs when an email could not be delivered to an address. The
bounce_classprovides additional information about the reason your message bounced. This event occurs in conjunction with a similarCOMPLIANCEevent.Occurs when a recipient clicks a tracked link in a message. Tracked links are redirected through the provider’s click-tracking server to record the event. Only HTTP and HTTPS links are tracked. Unsubscribe link clicks do not trigger this event.
Occurs when a user clicks an unsubscribe link in an email you sent.
Delivery reports are Custom Events sent from our third-party SMS providers. These events report the status of your message between the provider and your audience up to, and including, delivery.
Read reports are Custom Events sent when an RCS message is marked as read. These events use the
delivery_reportinteraction type with anameofread. See RCS branded senders.- General Custom Event objectOBJECT PROPERTIES
- body objectREQUIREDOBJECT PROPERTIES
- customer_id string
An external customer-side ID, such as an email address. Absent if empty.
- interaction_id string
An Airship identifier uniquely identifying the interaction. May be absent.
- interaction_type string
The type of interaction as set by the Airship SDK. Values determine whether the interaction triggered an event from the Message Center (
ua_mcrap), a landing page (ua_landing_page), an interactive notification (ua_interactive_notification), or a button tap (ua_button_tap).Button tap events with custom names are in the format
ua_button_tap-<custom name>. For example, for a button action with custom nameCat socks55, the event name isua_button_tap-Cat socks55. See Buttons and images: App in Actions in the WYSIWYG editor.Possible values:
ua_mcrap,ua_landing_page,ua_interactive_notification,ua_button_tap,ua_button_tap-<custom name> - last_delivered object
Identifies the last push notification the audience received before the event. Absent if the last push occurred more than 12 hours ago.
OBJECT PROPERTIES- campaigns object
An object listing the campaigns a push specification is associated with. The campaigns object includes an array of categories that must have between 1 and 10 elements, each of which is a string with a 64-byte and -character limit.
OBJECT PROPERTIES- categories array[string]
- group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- push_id stringREQUIRED
A unique identifier for a push operation.
- time string
The UTC time when the push occurred.
- variant_id integer
The ID of the variant that a push is associated with, if the push was a part of an A/B test (experiment).
- name stringREQUIRED
A plain-text name given to the event.
- properties object
Supports up to 100 key/value pairs that describe Custom Event properties. If the event has no custom properties, this field is absent.
- session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
- source stringREQUIRED
The event source.
SDKindicates an event sent from the Airship SDK.APIindicates an event created by request against the Custom Events API.Possible values:
SDK,API - transaction string
If the event is one in a series representing a single transaction, use the value in this field to tie events together.
- triggering_push object<Associated push>
The push that caused the Custom Event. Absent if a causal relationship to a push cannot be established.
The specific
push_idand accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.An associated push object may specify a
time, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_idif the push was sent at a relative time (best_timeorlocal_time) an automation pipeline, or another operation resulting in multiplepush_ids. - value number
Populated if the event is associated with a count or amount. Airship treats this field as a representation of money. The
valuefield respects six digits of precision to the right of the decimal point.
- device objectREQUIRED
Device information related to the event. Either the
OBJECT PROPERTIESchannelornamed_user_idis required. Thenamed_user_idis required for Custom Events sent via the API, elsechannelis required.- channel stringREQUIRED
The unique, platform-agnostic channel identifier for a device.
- device_type stringREQUIRED
The type of device the event was generated from.
Possible values:
OPEN,WEB,ANDROID,IOS,AMAZON,EMAIL,SMS - named_user_id string
The Named User identifier for a device.
Feature Flag interaction event
Example Feature Flag interaction event
{
"id":"c3d0543b-c8cd-4eaa-8fda-5dbfa70257ae",
"offset":"1000197715722",
"occurred":"2023-09-15T19:12:56.000Z",
"processed":"2023-09-21T23:02:39.419Z",
"device": {
"channel":"8c36e8c7-5a73-47c0-9716-99fd3d4197d5",
"device_type":"WEB"
},
"body": {
"flag_id":"27f26d85-0550-4df5-85f0-7022fa7a5925",
"flag_name":"rad_flag_name",
"eligible":true
},
"type":"FEATURE_FLAG_INTERACTION"
}
Occurs when a user interacts with a tracked flagged feature. See Feature Flags. The events have a flag ID and flag name, which identify which flagged feature a user interacted with. They also have a boolean eligible field, which indicates whether or not the user was in the Feature Flag audience and had access to the feature.
- body objectREQUIREDOBJECT PROPERTIES
- eligible booleanREQUIRED
Indicates whether or not the user was in the Feature Flag audience and had access to the feature.
truemeans the user was in the Feature Flag audience and had access to the feature. - flag_id stringREQUIRED
A UUID that is associated with a feature flag.
- flag_name stringREQUIRED
The name of a feature flag.
- variant_id string
The UUID of the A/B test variant, if available.
- device objectREQUIREDOne of
Information about app users generated by the SDK.
Information about web users generated by the SDK.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
FEATURE_FLAG_INTERACTION
First open
Example first open event
{
"device": {
"ios_channel": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
"channel": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
"device_type": "IOS",
},
"id": "00000169-4a14-67b2-1ddd-d9e733622c3a",
"occurred": "2019-03-04T19:00:45.106Z",
"offset": "1000001260057",
"processed": "2019-03-04T19:00:47.094Z",
"type": "FIRST_OPEN"
}
This event occurs when a user opens an Airship-integrated app for the first time.
OBJECT PROPERTIES- device objectREQUIREDOne of
Information about app users generated by the SDK.
Information about web users generated by the SDK.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
FIRST_OPEN
First opt-in
Example first opt-in event
{
"device": {
"channel": "820e4493-e4c9-4577-99bc-a98180599f73",
"delivery_address": "new.user@urbanairship.com",
"device_type": "EMAIL"
},
"id": "00000169-4a14-67b2-1ddd-d9e733622c3a",
"occurred": "2019-03-04T19:00:45.106Z",
"offset": "1000001260057",
"processed": "2019-03-04T19:00:47.094Z",
"type": "FIRST_OPT_IN"
}
This event appears in the stream when a channel is first opted in. This event is specific to email (commercial), SMS, and open channels.
OBJECT PROPERTIES- device objectREQUIREDOne of
Information about the SMS or email device related to an event.
Information about open channel users.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
FIRST_OPT_IN
In-app button tap
Example in-app button tap event
{
"id": "51dd7c1c-5621-11e9-9601-0242539d70ef",
"offset": "1000022467557",
"occurred": "2019-03-29T21:42:21.245Z",
"processed": "2019-04-03T15:10:23.828Z",
"device": {
"ios_channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
"channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
"device_type": "IOS",
"named_user_id": "cooluser",
"identifiers": {
"com.urbanairship.limited_ad_tracking_enabled": "true",
"session_id": "B147E0CE-272E-4047-A79C-30D02A2F213D",
"GA_CID": "a61448e1-be63-43ee-84eb-19446ba743f0",
"com.urbanairship.idfa": "A76E6F83-4F4A-47E2-BFDD-72BED91D2D1F",
"com.urbanairship.vendor": "ED496B1A-43F1-45A9-A7C1-80125DE8A5B1"
},
"attributes": {
"locale_variant": "",
"app_version": "542",
"device_model": "iPhone7,2",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "America/Los_Angeles",
"push_opt_in": "true",
"locale_country_code": "US",
"device_os": "11.4",
"locale_timezone": "-25200",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "10.2.0",
"location_permission": "ALWAYS_ALLOWED"
}
},
"body": {
"push_id": "a9a5912c-2526-4383-b516-711c58aff900",
"group_id": "a9a5912c-2526-4383-b516-711c58aff900",
"session_id": "94e8caed-9b82-4166-b585-a01eed933855",
"triggering_push": {
"push_id": "a183f051-7d69-11ed-86d9-0242dc3f670b",
"group_id": "8e7cfac3-cfd3-4f4f-a9a1-d766de9b063a",
"campaigns": {
"categories": [
"welcome_series"
]
}
},
"context": {
"reporting_context": {
"content_types": [
"survey"
]
},
"state": {
"form": {
"form_identifier": "870db95f-3715-4c98-8047-2871c175d003",
"submitted": true,
"type": "nps",
"response_type": "nps"
},
"pager": {
"identifier": "9e051354-185b-4d4d-888a-885def2e6b7a",
"page_identifier": "32f4fc47-74ee-41c6-8e16-c9e0aa364101",
"page_index": 1,
"page_count": 2,
"completed": true
}
}
},
"button_id": "dismiss_button"
},
"type": "IN_APP_BUTTON_TAP"
}
Occurs when a button is tapped within a Scene.
OBJECT PROPERTIES- OBJECT PROPERTIES
- app_defined_id string
An identifier defined by the application if the in-app button tap was created by the application logic, not Airship. If this field is present, the event body will not contain
push_id,group_id,variant_id, ortriggering_pushfields. A unique identifier for the button.
- context object<In-app context>
The context provides the view state when a button, pager, or form interaction occurs.
- group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- locale string
Optional string that defines the country and language this in-app-automation was localized as by remote-config-api.
country- (String) An ISO 3166-1 country code, set by device settings.language- (String) The ISO 639-1 two-letter language code reflecting the language the phone is set to. - push_id string
A unique identifier for a push operation.
- session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
- time_sent string
An ISO 8601 date-time indicating when the payload defining the in-app message was sent to the device. May be absent.
- triggering_push object<Associated push>
Appears if the user began the current session by opening a push notification.
The specific
push_idand accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.An associated push object may specify a
time, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_idif the push was sent at a relative time (best_timeorlocal_time) an automation pipeline, or another operation resulting in multiplepush_ids.
Information about app users generated by the SDK.
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate.When the event occurred.
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
Possible values:
IN_APP_BUTTON_TAPThe current state of the user when the event is emitted, including the contact ID and an optional named user ID.
In-app experiences
Example in-app experiences event
{
"id": "51dd7c1c-5621-11e9-9601-0242539d70ef",
"offset": "1000022467557",
"occurred": "2019-03-29T21:42:21.245Z",
"processed": "2019-04-03T15:10:23.828Z",
"device": {
"ios_channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
"channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
"device_type": "IOS",
"named_user_id": "cooluser",
"identifiers": {
"com.urbanairship.limited_ad_tracking_enabled": "true",
"session_id": "B147E0CE-272E-4047-A79C-30D02A2F213D",
"GA_CID": "a61448e1-be63-43ee-84eb-19446ba743f0",
"com.urbanairship.idfa": "A76E6F83-4F4A-47E2-BFDD-72BED91D2D1F",
"com.urbanairship.vendor": "ED496B1A-43F1-45A9-A7C1-80125DE8A5B1"
},
"attributes": {
"locale_variant": "",
"app_version": "542",
"device_model": "iPhone7,2",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "America/Los_Angeles",
"push_opt_in": "true",
"locale_country_code": "US",
"device_os": "11.4",
"locale_timezone": "-25200",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "10.2.0",
"location_permission": "ALWAYS_ALLOWED"
}
},
"body": {
"event_name": "scene_displayed",
"time_sent": "2022-03-11T08:40:56.592Z",
"session_id": "20162c5f-36c8-1808-6fc6-8eb836d7f7f2",
"push_id": "2e12bc7b-04f2-3487-1480-44269b04c131",
"group_id": "2e12bc7b-04f2-3487-1480-44269b04c131",
"triggering_push": {
"push_id": "5cc872d5-708d-dffb-0959-991b014dcd2d",
"time": "2022-03-11T08:40:56.692Z",
"campaigns": {
"categories": [
"welcome_series"
]
}
}
},
"type": "IN_APP_EXPERIENCES"
}
Events that occur related to the display and completion behavior of a Scene. These events are derived from source events generated by the SDK, so a single user action may generate two events: one for the SDK event, one representing the user action as it relates to their actual activity within the app or website.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- app_defined_id string
An identifier defined by the application if the in-app message was created by the application logic, not Airship. If this field is present, the event body will not contain
push_id,group_id,variant_id, ortriggering_pushfields. - campaigns object
An object listing the campaigns a push specification is associated with. The campaigns object includes an array of categories that must have between 1 and 10 elements, each of which is a string with a 64-byte and -character limit.
OBJECT PROPERTIES- categories array[string]
- event_name string
The name of the event.
Possible values:
scene_displayed,scene_completed,scene_incomplete,survey_displayed,survey_submitted,survey_not_submitted - group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- push_id string
A unique identifier for a push operation.
- session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
- survey_type string
Only present for survey events.
Possible values:
nps,user_feedback - time_sent string
An ISO 8601 date-time, in UTC, when the event occurred. May be absent.
- triggering_push object<Associated push>
Present if the user started the current session by opening a push notification.
The specific
push_idand accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.An associated push object may specify a
time, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_idif the push was sent at a relative time (best_timeorlocal_time) an automation pipeline, or another operation resulting in multiplepush_ids. - variant_id integer
The ID of the variant that a push is associated with, if the push was a part of an A/B test (experiment).
Information about app users generated by the SDK.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
IN_APP_EXPERIENCES - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
In-app form display
Example in-app form display event
{
"id": "51dd7c1c-5621-11e9-9601-0242539d70ef",
"offset": "1000022467557",
"occurred": "2019-03-29T21:42:21.245Z",
"processed": "2019-04-03T15:10:23.828Z",
"device": {
"ios_channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
"channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
"device_type": "IOS",
"named_user_id": "cooluser",
"identifiers": {
"com.urbanairship.limited_ad_tracking_enabled": "true",
"session_id": "B147E0CE-272E-4047-A79C-30D02A2F213D",
"GA_CID": "a61448e1-be63-43ee-84eb-19446ba743f0",
"com.urbanairship.idfa": "A76E6F83-4F4A-47E2-BFDD-72BED91D2D1F",
"com.urbanairship.vendor": "ED496B1A-43F1-45A9-A7C1-80125DE8A5B1"
},
"attributes": {
"locale_variant": "",
"app_version": "542",
"device_model": "iPhone7,2",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "America/Los_Angeles",
"push_opt_in": "true",
"locale_country_code": "US",
"device_os": "11.4",
"locale_timezone": "-25200",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "10.2.0",
"location_permission": "ALWAYS_ALLOWED"
}
},
"body": {
"push_id": "56d72d43-5567-4c94-887a-05b46ca9ef3e",
"group_id": "56d72d43-5567-4c94-887a-05b46ca9ef3e",
"session_id": "1347589f-0608-4198-b170-bfb46271877a",
"triggering_push": {
"push_id": "a183f051-7d69-11ed-86d9-0242dc3f670b",
"group_id": "8e7cfac3-cfd3-4f4f-a9a1-d766de9b063a",
"campaigns": {
"categories": [
"welcome_series"
]
}
},
"context": {
"reporting_context": {
"content_types": [
"survey"
]
},
"state": {
"form": {
"form_identifier": "434b918f-6a00-496f-963c-f54923a67abf",
"submitted": false,
"type": "nps",
"response_type": "nps"
}
}
},
"type": "DISPLAY",
"forms": [
{
"form_id": "434b918f-6a00-496f-963c-f54923a67abf"
}
]
},
"type": "IN_APP_FORM_DISPLAY"
}
Occurs when a survey form in a Scene is displayed.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- app_defined_id string
An identifier defined by the application if the in-app form was created by the application logic, not Airship. If this field is present, the event body will not contain
push_id,group_id,variant_id, ortriggering_pushfields. - context object<In-app context>
The context provides the view state when a button, pager, or form interaction occurs.
- forms objectOBJECT PROPERTIES
- form_id string
The identifier of the form controller (required).
- group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- push_id string
A unique identifier for a push operation.
- session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
- time_sent string
An ISO 8601 date-time indicating when the payload defining the in-app message was sent to the device. May be absent.
- triggering_push object<Associated push>
Present if the user started the current session by opening a push notification.
The specific
push_idand accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.An associated push object may specify a
time, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_idif the push was sent at a relative time (best_timeorlocal_time) an automation pipeline, or another operation resulting in multiplepush_ids. - type string
Required for this type, the value is always
DISPLAY.Possible values:
DISPLAY
Information about app users generated by the SDK.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
IN_APP_FORM_DISPLAY - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
In-app form result
Example in-app form result event
{
"id": "51dd7c1c-5621-11e9-9601-0242539d70ef",
"offset": "1000022467557",
"occurred": "2019-03-29T21:42:21.245Z",
"processed": "2019-04-03T15:10:23.828Z",
"device": {
"ios_channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
"channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
"device_type": "IOS",
"named_user_id": "cooluser",
"identifiers": {
"com.urbanairship.limited_ad_tracking_enabled": "true",
"session_id": "B147E0CE-272E-4047-A79C-30D02A2F213D",
"GA_CID": "a61448e1-be63-43ee-84eb-19446ba743f0",
"com.urbanairship.idfa": "A76E6F83-4F4A-47E2-BFDD-72BED91D2D1F",
"com.urbanairship.vendor": "ED496B1A-43F1-45A9-A7C1-80125DE8A5B1"
},
"attributes": {
"locale_variant": "",
"app_version": "542",
"device_model": "iPhone7,2",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "America/Los_Angeles",
"push_opt_in": "true",
"locale_country_code": "US",
"device_os": "11.4",
"locale_timezone": "-25200",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "10.2.0",
"location_permission": "ALWAYS_ALLOWED"
}
},
"body": {
"push_id": "683b395d-7abf-40f9-be49-4b64debfbd22",
"group_id": "683b395d-7abf-40f9-be49-4b64debfbd22",
"session_id": "d05323b3-8176-406d-aff5-5194341f4a5c",
"triggering_push": {
"push_id": "a183f051-7d69-11ed-86d9-0242dc3f670b",
"group_id": "8e7cfac3-cfd3-4f4f-a9a1-d766de9b063a",
"campaigns": {
"categories": [
"welcome_series"
]
}
},
"context": {
"reporting_context": {
"content_types": [
"survey"
]
},
"state": {
"form": {
"form_identifier": "316e8ed4-277e-408b-9c47-a6bd7a4251c5",
"submitted": false,
"type": "nps",
"response_type": "nps"
}
}
},
"type": "RESULT",
"forms": [
{
"form_id": "316e8ed4-277e-408b-9c47-a6bd7a4251c5",
"type": "nps",
"response_type": "nps",
"nps": {
"question_id": "b6563a26-a927-4ff2-af8a-08d94d8b84a3",
"score": 9,
"audience_category": "PROMOTER"
},
"responses": [
{
"question_id": "b6563a26-a927-4ff2-af8a-08d94d8b84a3",
"type": "score",
"value": "9"
},
{
"question_id": "c867cf61-398f-443c-b991-443fa8aff4b9",
"type": "text_input",
"value": "Hello, world"
}
]
}
]
},
"type": "IN_APP_FORM_RESULT"
}
Occurs when a survey form in a Scene is submitted.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- app_defined_id string
An identifier defined by the application if the in-app form was created by the application logic, not Airship. If this field is present, the event body will not contain
push_id,group_id,variant_id, ortriggering_pushfields. - context object<In-app context>
The context provides the view state when a button, pager, or form interaction occurs.
- forms objectOBJECT PROPERTIES
- form_id string
The identifier of the form controller (required).
- nps objectOBJECT PROPERTIES
- audience_category stringREQUIRED
The NPS category.
Possible values:
PROMOTER,PASSIVE,DETRACTOR - question_id stringREQUIRED
The question identifier.
- score numberREQUIRED
A number between 0 and 10.
- response_type string
The survey response type.
Possible values:
nps,user_feedback - responses objectOBJECT PROPERTIES
- question_id stringREQUIRED
The question identifier.
- type stringREQUIRED
The question type.
Possible values:
single_choice,multiple_choice,text_input,email_input - value objectREQUIRED
The choice type identifier for
single_choiceormultiple_choicequestions, or user-provided text fortext_inputoremail_inputfields.
- type string
The form type.
Possible values:
nps,form
- group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- push_id string
A unique identifier for a push operation.
- session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
- time_sent string
An ISO 8601 date-time indicating when the payload defining the in-app message was sent to the device. May be absent.
- triggering_push object<Associated push>
Present if the user started the current session by opening a push notification.
The specific
push_idand accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.An associated push object may specify a
time, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_idif the push was sent at a relative time (best_timeorlocal_time) an automation pipeline, or another operation resulting in multiplepush_ids. - type string
Required for this type, the value is always
RESULT.Possible values:
RESULT
Information about app users generated by the SDK.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
IN_APP_FORM_RESULT - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
In-app message control
Example in-app message control event
{
"id": "e9e281d0-2b39-11ee-ac42-00000a91ace1",
"offset": "1000194023208",
"occurred": "2023-07-25T22:22:40.262Z",
"processed": "2023-07-25T22:23:43.464Z",
"device": {
"ios_channel": "414a7c7c-c3c5-4a9f-b1de-ebd5a85104e0",
"channel": "414a7c7c-c3c5-4a9f-b1de-ebd5a85104e0",
"device_type": "IOS",
"attributes": {
"locale_variant": "",
"device_model": "arm64",
"app_version": "1.0",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "America/Los_Angeles",
"push_opt_in": "true",
"locale_country_code": "US",
"device_os": "17.0",
"locale_timezone": "-25200",
"locale_language_code": "en",
"background_push_enabled": "true",
"ua_sdk_version": "17.1.0"
}
},
"body": {
"push_id": "6fc3b3a7-d860-4acd-b80d-82af02b5b0fa",
"group_id": "6fc3b3a7-d860-4acd-b80d-82af02b5b0fa",
"session_id": "f31c3769-8517-402a-8ae6-cdb323f5ec22",
"context": {
"reporting_context": {
"content_types": [
"scene"
]
}
},
"type": "CONTROL"
},
"type": "IN_APP_MESSAGE_CONTROL"
}
Occurs when an In-App Automation or Scene is not delivered because the targeted user’s contact or Channel ID was part of a control group for a Holdout Experiment.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- app_defined_id string
An identifier defined by the application if the in-app message was created by the application logic, not the Airship system. If this field is present, the event body will not contain
push_id,group_id,variant_id, ortriggering_pushfields. - group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- push_id string
A unique identifier for a push operation.
- session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
- time_sent string
The date-time when the in-app message payload was sent to the device.
- triggering_push object<Associated push>
Appears if the user began the current session by opening a push notification.
The specific
push_idand accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.An associated push object may specify a
time, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_idif the push was sent at a relative time (best_timeorlocal_time) an automation pipeline, or another operation resulting in multiplepush_ids. - type string
Indicates that the in-app message was never delivered because the user was part of an experiment control group.
CONTROLindicates that the message was not displayed because the channel or contact was hashed into the experiment control group.Possible values:
CONTROL - variant_id integer
The ID of the variant that a push is associated with, if the push was a part of an A/B test (experiment).
Information about app users generated by the SDK.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
IN_APP_MESSAGE_CONTROL - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
In-app message display
Example in-app message display event
{
"id": "51dd7c1c-5621-11e9-9601-0242539d70ef",
"offset": "1000022467557",
"occurred": "2019-03-29T21:42:21.245Z",
"processed": "2019-04-03T15:10:23.828Z",
"device": {
"ios_channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
"channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
"device_type": "IOS",
"named_user_id": "cooluser",
"identifiers": {
"com.urbanairship.limited_ad_tracking_enabled": "true",
"session_id": "B147E0CE-272E-4047-A79C-30D02A2F213D",
"GA_CID": "a61448e1-be63-43ee-84eb-19446ba743f0",
"com.urbanairship.idfa": "A76E6F83-4F4A-47E2-BFDD-72BED91D2D1F",
"com.urbanairship.vendor": "ED496B1A-43F1-45A9-A7C1-80125DE8A5B1"
},
"attributes": {
"locale_variant": "",
"app_version": "542",
"device_model": "iPhone7,2",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "America/Los_Angeles",
"push_opt_in": "true",
"locale_country_code": "US",
"device_os": "11.4",
"locale_timezone": "-25200",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "10.2.0",
"location_permission": "ALWAYS_ALLOWED"
}
},
"body": {
"push_id": "68be9eba-3f3e-4763-bbd1-c921a164af1b",
"group_id": "49e59f68-d58c-4a2f-86ab-112f52e3c5d2",
"variant_id": 5,
"session_id": "cfe467a6-ca70-40dd-8c1f-07b2f644935e",
"triggering_push": {
"push_id": "18c0f649-2330-4fb0-a9fa-ad029f5f4e0e",
"group_id": "c4c89025-0d25-434c-8040-283990585f01",
"campaigns": {
"categories": [
"welcome_series"
]
}
}
},
"type": "IN_APP_MESSAGE_DISPLAY"
}
Example in-app message display event with context
{
"id": "51dd7c1c-5621-11e9-9601-0242539d70ef",
"offset": "1000022467557",
"occurred": "2019-03-29T21:42:21.245Z",
"processed": "2019-04-03T15:10:23.828Z",
"device": {
"ios_channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
"channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
"device_type": "IOS",
"named_user_id": "cooluser",
"identifiers": {
"com.urbanairship.limited_ad_tracking_enabled": "true",
"session_id": "B147E0CE-272E-4047-A79C-30D02A2F213D",
"GA_CID": "a61448e1-be63-43ee-84eb-19446ba743f0",
"com.urbanairship.idfa": "A76E6F83-4F4A-47E2-BFDD-72BED91D2D1F",
"com.urbanairship.vendor": "ED496B1A-43F1-45A9-A7C1-80125DE8A5B1"
},
"attributes": {
"locale_variant": "",
"app_version": "542",
"device_model": "iPhone7,2",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "America/Los_Angeles",
"push_opt_in": "true",
"locale_country_code": "US",
"device_os": "11.4",
"locale_timezone": "-25200",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "10.2.0",
"location_permission": "ALWAYS_ALLOWED"
}
},
"body": {
"push_id": "68be9eba-3f3e-4763-bbd1-c921a164af1b",
"group_id": "49e59f68-d58c-4a2f-86ab-112f52e3c5d2",
"variant_id": 5,
"session_id": "cfe467a6-ca70-40dd-8c1f-07b2f644935e",
"triggering_push": {
"push_id": "18c0f649-2330-4fb0-a9fa-ad029f5f4e0e",
"group_id": "c4c89025-0d25-434c-8040-283990585f01",
"campaigns": {
"categories": [
"welcome_series"
]
}
}
},
"type": "IN_APP_MESSAGE_DISPLAY"
}
{
"id": "c7b97941-5d1d-11ee-b7be-00000a91ace6",
"offset": "1004335885834",
"occurred": "2023-09-27T10:08:14.965Z",
"processed": "2023-09-27T10:08:18.230Z",
"device":
{
"android_channel": "3e75f0be-f312-413f-90c0-81d628410514",
"channel": "3e75f0be-f312-413f-90c0-81d628410514",
"device_type": "ANDROID",
"named_user_id": "exampleuser",
"attributes":
{
"locale_variant": "",
"device_model": "SM-G981B",
"app_version": "13.13.3",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "Europe/Paris",
"push_opt_in": "true",
"locale_country_code": "FR",
"device_os": "13",
"locale_timezone": "7200",
"locale_language_code": "fr",
"background_push_enabled": "true",
"ua_sdk_version": "16.4.0"
}
},
"body":
{
"push_id": "0390bd82-c28f-44cb-98d9-3f9b7eef939d",
"group_id": "0390bd82-c28f-44cb-98d9-3f9b7eef939d",
"campaigns":
{
"categories":
[
"WELCOME_SERIES"
]
},
"context": {
"reporting_context": {
"content_types": [
"scene"
]
}
},
"session_id": "6e11b019-4da0-4c66-8063-92ec2ce4ee36"
},
"type": "IN_APP_MESSAGE_DISPLAY"
}
Occurs when an In-App Automation or Scene is displayed to a user. Because the event pertains to a specific device, the device information object will be populated.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- app_defined_id string
An identifier defined by the application if the in-app message was created by the application logic, not Airship. If this field is present, the event body will not contain
push_id,group_id,variant_id, ortriggering_pushfields. - campaigns object
An object listing the campaigns a push specification is associated with. The campaigns object includes an array of categories that must have between 1 and 10 elements, each of which is a string with a 64-byte and -character limit.
OBJECT PROPERTIES- categories array[string]
- context object<In-app context>
The context provides the view state when a button, pager, or form interaction occurs.
- group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- push_id string
A unique identifier for a push operation.
- session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
- triggering_push object<Associated push>
Appears if the user began the current session by opening a push notification.
The specific
push_idand accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.An associated push object may specify a
time, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_idif the push was sent at a relative time (best_timeorlocal_time) an automation pipeline, or another operation resulting in multiplepush_ids. - variant_id integer
The ID of the variant that a push is associated with, if the push was a part of an A/B test (experiment).
Information about app users generated by the SDK.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
IN_APP_MESSAGE_DISPLAY - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
In-app message exclusion
Example in-app message exclusion event
{
"id": "7fff2560-1d33-11ef-b484-0000a91acec5",
"offset":"1000215341033",
"occurred":"2024-05-28T20:47:20.183Z",
"processed":"2024-05-28T20:47:31.090Z",
"device": {
"android_channel": "88663749-a19d-4daf-8d4c-09fc4cf03a12",
"channel":"87663620-a99d-4daf-8f4c-88fc4cf03af4",
"device_type": "ANDROID",
"named_user_id": "cool_named_user",
"attributes": {
"locale_variant": "",
"device_model": "DE2123",
"app_version": "2024-05-25T040548",
"app_package_name": "com.package.example",
"iana_timezone": "America/Los_Angeles",
"push_opt_in": "true",
"locale_country_code": "US",
"device_os": "120",
"locale_timezone": "-27000",
"locale_language_code": "en",
"background_push_enabled": "false",
"ua_sdk_version":"18.0.0"
}
},
"body": {
"push_id": "be711edb-d16d-465e-8091-a831041e2e53",
"group_id":"be711edb-d16d-465e-8091-a831041e2e53",
"session_id":"e8e72fa2-bfbc-405d-af85-8b428c8e38d9",
"context": {
},
"type":"AUDIENCE_CHECK_EXCLUDED"
},
"type":"IN_APP_MESSAGE_EXCLUSION"
}
Occurs when an In-App Automation or Scene is not displayed on a device because the user was banned. See Ban Lists.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- app_defined_id string
An identifier defined by the application if the in-app message was created by the application logic, not the Airship system. If this field is present, the event body will not contain
push_id,group_id,variant_id, ortriggering_pushfields. - group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- push_id string
A unique identifier for a push operation.
- session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
- time_sent string
The date-time when the in-app message payload was sent to the device.
- triggering_push object<Associated push>
Appears if the user began the current session by opening a push notification.
The specific
push_idand accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.An associated push object may specify a
time, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_idif the push was sent at a relative time (best_timeorlocal_time) an automation pipeline, or another operation resulting in multiplepush_ids. - type string
Indicates that the in-app message was not displayed on a device because the channel or Named User was excluded from the push. The only possible value is
AUDIENCE_CHECK_EXCLUDED, which indicates that the message was not displayed because the channel or Named User is on a project’s Ban List. This is also reported when a 400- or 500-level error resolving the user’s status on a Ban List occurs.Possible values:
AUDIENCE_CHECK_EXCLUDED - variant_id integer
The ID of the variant that a push is associated with, if the push was a part of an A/B test (experiment).
Information about app users generated by the SDK.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
IN_APP_MESSAGE_EXCLUSION - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
In-app message expiration
Example in-app message expiration event
{
"id": "910fea50-5d42-1159-b702-024288f4e1d3",
"offset": "1000022468589",
"occurred": "2019-04-03T18:59:02.246Z",
"processed": "2019-04-03T19:10:26.301Z",
"device": {
"android_channel": "364a4e3f-170a-4f26-b0a1-11b280377dfe",
"channel": "364a4e3f-170a-4f26-b0a1-11b280377dfe",
"device_type": "ANDROID",
"identifiers": {
"com.urbanairship.gimbal.aii": "2471037d-71d8-4229-a40f-df719f1af914",
"session_id": "54204a73-7a95-4ffc-8051-bf230d086e19",
"GA_CID": "90d56c80-f31f-49fd-87b0-20deb3d2602a"
},
"attributes": {
"locale_variant": "",
"app_version": "dev",
"device_model": "Android SDK built for x86",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "America/Los_Angeles",
"push_opt_in": "true",
"locale_country_code": "US",
"device_os": "9",
"locale_timezone": "-25200",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "9.7.0",
"location_permission": "NOT_ALLOWED"
}
},
"body": {
"push_id": "a1fe5f2a-1d51-4f3a-a77b-35018031741d",
"session_id": "3514bd74-bfa8-149e-9c12-a44794994ca8",
"triggering_push": {
"push_id": "a183f051-7d69-11ed-86d9-0242dc3f670b",
"group_id": "8e7cfac3-cfd3-4f4f-a9a1-d766de9b063a",
"campaigns": {
"categories": [
"welcome_series"
]
}
},
"type": "EXPIRED",
"time_expired": "1970-01-01T00:00:00.000Z"
},
"type": "IN_APP_MESSAGE_EXPIRATION"
}
Occurs when a new In-App Automation or Scene message has taken the place of another message, a message has passed its expiration, or because displaying the message in-app would be redundant. This event type may be latent. It is not emitted until the app becomes active.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- app_defined_id string
An identifier defined by the application if the in-app message was created by the application logic, not Airship. If this field is present, the event body will not contain
push_id,group_id,variant_id, ortriggering_pushfields. - group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- push_id string
A unique identifier for a push operation.
- replacing_push object<Associated push>
An associated push object for the in-app message that replaced the message. Present if
typeisREPLACED.The specific
push_idand accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.An associated push object may specify a
time, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_idif the push was sent at a relative time (best_timeorlocal_time) an automation pipeline, or another operation resulting in multiplepush_ids. - session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
- time_expired string
The date-time when the message was set to expire.
- time_sent string
The date-time when the in-app message payload was sent to the device.
- triggering_push object<Associated push>
Appears if the user began the current session by opening a push notification.
The specific
push_idand accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.An associated push object may specify a
time, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_idif the push was sent at a relative time (best_timeorlocal_time) an automation pipeline, or another operation resulting in multiplepush_ids. - type string
Indicates how the in-app message expired.
REPLACED: The in-app message was replaced by a more current one. If type isREPLACED, thereplacing_pushkey will be present.EXPIRED: The in-app message exceeded its expiration date. If type isEXPIRED, then thetimekey will be present.ALREADY_DISPLAYED: The message was opened directly (either from the lock screen or notification center). The Airship SDK will NOT display it again in the app, because the user is guaranteed to have seen it.
Possible values:
REPLACED,EXPIRED,ALREADY_DISPLAYED - variant_id integer
The ID of the variant that a push is associated with, if the push was a part of an A/B test (experiment).
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
IN_APP_MESSAGE_EXPIRATION
In-app message resolution
Example in-app message resolution event
{
"id": "910fea50-5d42-1159-b702-024288f4e1d3",
"offset": "1000022468589",
"occurred": "2019-04-03T18:59:02.246Z",
"processed": "2019-04-03T19:10:26.301Z",
"device": {
"android_channel": "364a4e3f-170a-4f26-b0a1-11b280377dfe",
"channel": "364a4e3f-170a-4f26-b0a1-11b280377dfe",
"device_type": "ANDROID",
"identifiers": {
"com.urbanairship.gimbal.aii": "2471037d-71d8-4229-a40f-df719f1af914",
"session_id": "54204a73-7a95-4ffc-8051-bf230d086e19",
"GA_CID": "90d56c80-f31f-49fd-87b0-20deb3d2602a"
},
"attributes": {
"locale_variant": "",
"app_version": "dev",
"device_model": "Android SDK built for x86",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "America/Los_Angeles",
"push_opt_in": "true",
"locale_country_code": "US",
"device_os": "9",
"locale_timezone": "-25200",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "9.7.0",
"location_permission": "NOT_ALLOWED"
}
},
"body": {
"push_id": "86ee0a6e-a46a-4bbe-a3d1-804891baaee4",
"group_id": "68991b8d-0d6b-4e05-bc62-2cdec2085c18",
"triggering_push": {
"push_id": "a183f051-7d69-11ed-86d9-0242dc3f670b",
"group_id": "8e7cfac3-cfd3-4f4f-a9a1-d766de9b063a",
"campaigns": {
"categories": [
"welcome_series"
]
}
},
"time_sent": "2019-03-03T19:10:26.301Z",
"type": "BUTTON_CLICK",
"button_id": "yes",
"button_group": "",
"button_description": "Yes",
"duration": 10000000000
},
"type": "IN_APP_MESSAGE_RESOLUTION"
}
Example in-app message resolution event with context
{
"id": "910fea50-5d42-1159-b702-024288f4e1d3",
"offset": "1000022468589",
"occurred": "2019-04-03T18:59:02.246Z",
"processed": "2019-04-03T19:10:26.301Z",
"device": {
"android_channel": "364a4e3f-170a-4f26-b0a1-11b280377dfe",
"channel": "364a4e3f-170a-4f26-b0a1-11b280377dfe",
"device_type": "ANDROID",
"identifiers": {
"com.urbanairship.gimbal.aii": "2471037d-71d8-4229-a40f-df719f1af914",
"session_id": "54204a73-7a95-4ffc-8051-bf230d086e19",
"GA_CID": "90d56c80-f31f-49fd-87b0-20deb3d2602a"
},
"attributes": {
"locale_variant": "",
"app_version": "dev",
"device_model": "Android SDK built for x86",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "America/Los_Angeles",
"push_opt_in": "true",
"locale_country_code": "US",
"device_os": "9",
"locale_timezone": "-25200",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "9.7.0",
"location_permission": "NOT_ALLOWED"
}
},
"body": {
"push_id": "86ee0a6e-a46a-4bbe-a3d1-804891baaee4",
"group_id": "68991b8d-0d6b-4e05-bc62-2cdec2085c18",
"triggering_push": {
"push_id": "a183f051-7d69-11ed-86d9-0242dc3f670b",
"group_id": "8e7cfac3-cfd3-4f4f-a9a1-d766de9b063a",
"campaigns": {
"categories": [
"welcome_series"
]
}
},
"time_sent": "2019-03-03T19:10:26.301Z",
"type": "BUTTON_CLICK",
"button_id": "yes",
"button_group": "",
"button_description": "Yes",
"duration": 10000000000
},
"type": "IN_APP_MESSAGE_RESOLUTION"
}
{
"id": "a0bc5c50-6d34-11ee-95dc-0000a91aced1",
"offset": "1064988067725",
"occurred": "2023-10-17T21:32:01.243Z",
"processed": "2023-10-17T21:32:10.638Z",
"device":
{
"ios_channel": "870c200f-d0e7-4e45-bd99-5b290c80b6a7",
"channel": "870c200f-d0e7-4e45-bd99-5b290c80b6a7",
"device_type": "IOS",
"named_user_id": "exampleuser",
"attributes":
{
"locale_variant": "",
"device_model": "iPhone15,2",
"app_version": "15.8.1",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "America/New_York",
"push_opt_in": "false",
"locale_country_code": "US",
"device_os": "16.6.1",
"locale_timezone": "-14400",
"locale_language_code": "en",
"background_push_enabled": "true",
"ua_sdk_version": "16.12.0"
}
},
"body":
{
"push_id": "4015241b-2e71-43d8-85a0-cd500e97c15d",
"group_id": "4015241b-2e71-43d8-85a0-cd500e97c15d",
"campaigns":
{
"categories":
[
"OfferLevel45",
"VIP_OFFER"
]
},
"context": {
"reporting_context": {
"content_types": [
"scene"
]
}
},
"session_id": "832e65de-453e-426d-a4a3-bd70ab0f827e",
"type": "USER_DISMISSED",
"duration": 2503
},
"type": "IN_APP_MESSAGE_RESOLUTION"
}
Occurs when an In-App Automation or Scene is cleared from the display, either by user action or timeout. Because this event pertains to an individual device, the device information object will be present.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- app_defined_id string
An identifier defined by the application if the in-app message was created by the application logic, not Airship. If this field is present, the event body will not contain
push_id,group_id,variant_id, ortriggering_pushfields. The title of the button the user interacted with. Present if
typeis set toBUTTON_CLICK.A category associated with the in-app message button. It may be predefined or custom defined, or blank if there is no association with a category.
A unique identifier for the button. Present if
typeis set toBUTTON_CLICK.- campaigns object
An object listing the campaigns a push specification is associated with. The campaigns object includes an array of categories that must have between 1 and 10 elements, each of which is a string with a 64-byte and -character limit.
OBJECT PROPERTIES- categories array[string]
- context object<In-app context>
The context provides the view state when a button, pager, or form interaction occurs.
- duration integer
The number of milliseconds that the user was on the screen.
- group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- push_id string
A unique identifier for a push operation.
- session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
- time_sent string
The date-time when the in-app message payload was sent to the device.
- triggering_push object<Associated push>
Appears if the user began the current session by opening a push notification.
The specific
push_idand accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.An associated push object may specify a
time, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_idif the push was sent at a relative time (best_timeorlocal_time) an automation pipeline, or another operation resulting in multiplepush_ids. - type string
Indicates how the in-app message was resolved.
BUTTON_CLICK: The user clicked/tapped a button in the message. This type is accompanied by additional fields.MESSAGE_CLICK: The user clicked/tapped a part of the message, but not a button.TIMED_OUT: The user ignored the notification, and it dismissed itself after an interval of time.USER_DISMISSED: The user clicked/tappedXto close the message or closed it using the swipe gesture.
Possible values:
BUTTON_CLICK,MESSAGE_CLICK,TIMED_OUT,USER_DISMISSED - variant_id integer
The ID of the variant that a push is associated with, if the push was a part of an A/B test (experiment).
Information about app users generated by the SDK.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
IN_APP_MESSAGE_RESOLUTION - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
In-app page swipe
Example in-app page swipe event
{
"id": "51dd7c1c-5621-11e9-9601-0242539d70ef",
"offset": "1000022467557",
"occurred": "2019-03-29T21:42:21.245Z",
"processed": "2019-04-03T15:10:23.828Z",
"device": {
"ios_channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
"channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
"device_type": "IOS",
"named_user_id": "cooluser",
"identifiers": {
"com.urbanairship.limited_ad_tracking_enabled": "true",
"session_id": "B147E0CE-272E-4047-A79C-30D02A2F213D",
"GA_CID": "a61448e1-be63-43ee-84eb-19446ba743f0",
"com.urbanairship.idfa": "A76E6F83-4F4A-47E2-BFDD-72BED91D2D1F",
"com.urbanairship.vendor": "ED496B1A-43F1-45A9-A7C1-80125DE8A5B1"
},
"attributes": {
"locale_variant": "",
"app_version": "542",
"device_model": "iPhone7,2",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "America/Los_Angeles",
"push_opt_in": "true",
"locale_country_code": "US",
"device_os": "11.4",
"locale_timezone": "-25200",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "10.2.0",
"location_permission": "ALWAYS_ALLOWED"
}
},
"body": {
"push_id": "91baacc8-1ebf-411d-a77a-ee036c44e7ce",
"group_id": "91baacc8-1ebf-411d-a77a-ee036c44e7ce",
"session_id": "a135087c-ba97-4b87-ac1d-a216f2cccb7c",
"triggering_push": {
"push_id": "a183f051-7d69-11ed-86d9-0242dc3f670b",
"group_id": "8e7cfac3-cfd3-4f4f-a9a1-d766de9b063a",
"campaigns": {
"categories": [
"welcome_series"
]
}
},
"context": {
"reporting_context": {
"content_types": [
"scene"
]
},
"state": {
"pager": {
"identifier": "302e80f2-1f9d-4e0d-890d-ff54196189d9",
"page_identifier": "c3c6fe17-1c47-4f52-bff9-f95ed8a14072",
"page_index": 1,
"page_count": 3,
"completed": true
}
}
},
"pager_identifier": "302e80f2-1f9d-4e0d-890d-ff54196189d9",
"from_page_identifier": "c3c6fe17-1c47-4f52-bff9-f95ed8a14072",
"from_page_index": 1,
"to_page_identifier": "2ecb1788-30b9-4d8f-a267-38f687fc6e8b",
"to_page_index": 0
},
"type": "IN_APP_PAGE_SWIPE"
}
Occurs when a user swipes to the next or previous page (screen) in a pager (specific to Scenes).
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- app_defined_id string
An identifier defined by the application if the in-app pager was created by the application logic, not Airship. If this field is present, the event body will not contain
push_id,group_id,variant_id, ortriggering_pushfields. - context object<In-app context>
The context provides the view state when a button, pager, or form interaction occurs.
- from_page_index number
Is the previous page index.
- from_pager_identifier string
Is the previous page identifier.
- group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- locale string
Optional string that defines the country and language this in-app-automation was localized as by remote-config-api.
country- (String) An ISO 3166-1 country code, set by device settings.language- (String) The ISO 639-1 two-letter language code reflecting the language the phone is set to. - pager_identifier string
Is the pager controller identifier.
- push_id string
A unique identifier for a push operation.
- session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
- time_sent string
An ISO 8601 date-time indicating when the payload defining the in-app pager was sent to the device. May be absent.
- to_page_identifier string
Is the current page identifier.
- to_page_index number
Is the current page index.
- triggering_push object<Associated push>
Present if the user started the current session by opening a push notification.
The specific
push_idand accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.An associated push object may specify a
time, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_idif the push was sent at a relative time (best_timeorlocal_time) an automation pipeline, or another operation resulting in multiplepush_ids.
Information about app users generated by the SDK.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
IN_APP_PAGE_SWIPE - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
In-app page view
Example in-app page view event
{
"id": "51dd7c1c-5621-11e9-9601-0242539d70ef",
"offset": "1000022467557",
"occurred": "2019-03-29T21:42:21.245Z",
"processed": "2019-04-03T15:10:23.828Z",
"device": {
"ios_channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
"channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
"device_type": "IOS",
"named_user_id": "cooluser",
"identifiers": {
"com.urbanairship.limited_ad_tracking_enabled": "true",
"session_id": "B147E0CE-272E-4047-A79C-30D02A2F213D",
"GA_CID": "a61448e1-be63-43ee-84eb-19446ba743f0",
"com.urbanairship.idfa": "A76E6F83-4F4A-47E2-BFDD-72BED91D2D1F",
"com.urbanairship.vendor": "ED496B1A-43F1-45A9-A7C1-80125DE8A5B1"
},
"attributes": {
"locale_variant": "",
"app_version": "542",
"device_model": "iPhone7,2",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "America/Los_Angeles",
"push_opt_in": "true",
"locale_country_code": "US",
"device_os": "11.4",
"locale_timezone": "-25200",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "10.2.0",
"location_permission": "ALWAYS_ALLOWED"
}
},
"body": {
"push_id": "d2482092-a0f5-4ec0-bf0a-f17a1657d1b0",
"group_id": "d2482092-a0f5-4ec0-bf0a-f17a1657d1b0",
"session_id": "65be61ee-dc60-47ec-b9d3-ebc469e0523b",
"triggering_push": {
"push_id": "a183f051-7d69-11ed-86d9-0242dc3f670b",
"group_id": "8e7cfac3-cfd3-4f4f-a9a1-d766de9b063a",
"campaigns": {
"categories": [
"welcome_series"
]
}
},
"context": {
"reporting_context": {
"content_types": [
"scene"
]
},
"state": {
"pager": {
"identifier": "f4d3d085-010b-4c2b-9e4d-574112b892ed",
"page_identifier": "e55e6d8e-f04d-43f1-939c-822a1dd5a5e3",
"page_index": 0,
"page_count": 1,
"completed": true
}
}
},
"pager_identifier": "f4d3d085-010b-4c2b-9e4d-574112b892ed",
"page_identifier": "e55e6d8e-f04d-43f1-939c-822a1dd5a5e3",
"page_index": 0,
"page_count": 1,
"viewed_count": 1,
"completed": true
},
"type": "IN_APP_PAGE_VIEW"
}
Occurs when a page (screen) is displayed within a pager (specific to Scenes).
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- app_defined_id string
An identifier defined by the application if the in-app pager was created by the application logic, not Airship. If this field is present, the event body will not contain
push_id,group_id,variant_id, ortriggering_pushfields. - completed boolean
True if the user reached the end of the pager.
- context object<In-app context>
The context provides the view state when a button, pager, or form interaction occurs.
- group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- locale string
Optional string that defines the country and language this in-app-automation was localized as by remote-config-api.
country- (String) An ISO 3166-1 country code, set by device settings.language- (String) The ISO 639-1 two-letter language code reflecting the language the phone is set to. - page_count number
Total number of pages.
- page_identifier string
The current page identifier.
- page_index number
Is the current pager index.
- pager_identifier string
Is the pager controller identifier.
- push_id string
A unique identifier for a push operation.
- session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
- time_sent string
An ISO 8601 date-time indicating when the payload defining the in-app message was sent to the device. May be absent.
- triggering_push object<Associated push>
Present if the user started the current session by opening a push notification.
The specific
push_idand accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.An associated push object may specify a
time, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_idif the push was sent at a relative time (best_timeorlocal_time) an automation pipeline, or another operation resulting in multiplepush_ids. - viewed_count number
Number of times the current page has been viewed.
Information about app users generated by the SDK.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
IN_APP_PAGE_VIEW - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
In-app pager completed
Example in-app pager completed event
{
"id": "51dd7c1c-5621-11e9-9601-0242539d70ef",
"offset": "1000022467557",
"occurred": "2019-03-29T21:42:21.245Z",
"processed": "2019-04-03T15:10:23.828Z",
"device": {
"ios_channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
"channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
"device_type": "IOS",
"named_user_id": "cooluser",
"identifiers": {
"com.urbanairship.limited_ad_tracking_enabled": "true",
"session_id": "B147E0CE-272E-4047-A79C-30D02A2F213D",
"GA_CID": "a61448e1-be63-43ee-84eb-19446ba743f0",
"com.urbanairship.idfa": "A76E6F83-4F4A-47E2-BFDD-72BED91D2D1F",
"com.urbanairship.vendor": "ED496B1A-43F1-45A9-A7C1-80125DE8A5B1"
},
"attributes": {
"locale_variant": "",
"app_version": "542",
"device_model": "iPhone7,2",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "America/Los_Angeles",
"push_opt_in": "true",
"locale_country_code": "US",
"device_os": "11.4",
"locale_timezone": "-25200",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "10.2.0",
"location_permission": "ALWAYS_ALLOWED"
}
},
"body": {
"push_id": "a9a5912c-2526-4383-b516-711c58aff900",
"group_id": "a9a5912c-2526-4383-b516-711c58aff900",
"session_id": "94e8caed-9b82-4166-b585-a01eed933855",
"triggering_push": {
"push_id": "a183f051-7d69-11ed-86d9-0242dc3f670b",
"group_id": "8e7cfac3-cfd3-4f4f-a9a1-d766de9b063a",
"campaigns": {
"categories": [
"welcome_series"
]
}
},
"context": {
"reporting_context": {
"content_types": [
"survey"
]
},
"state": {
"form": {
"form_identifier": "870db95f-3715-4c98-8047-2871c175d003",
"submitted": true,
"type": "nps",
"response_type": "nps"
},
"pager": {
"identifier": "9e051354-185b-4d4d-888a-885def2e6b7a",
"page_identifier": "32f4fc47-74ee-41c6-8e16-c9e0aa364101",
"page_index": 1,
"page_count": 2,
"completed": true
}
}
},
"pager_identifier": "9e051354-185b-4d4d-888a-885def2e6b7a",
"page_identifier": "32f4fc47-74ee-41c6-8e16-c9e0aa364101",
"page_index": 1,
"page_count": 2
},
"type": "IN_APP_PAGER_COMPLETED"
}
Occurs when the last page (screen) of a pager is viewed for the first time (specific to Scenes).
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- app_defined_id string
An identifier defined by the application if the in-app pager was created by the application logic, not Airship. If this field is present, the event body will not contain
push_id,group_id,variant_id, ortriggering_pushfields. - context object<In-app context>
The context provides the view state when a button, pager, or form interaction occurs.
- group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- locale string
Optional string that defines the country and language this in-app-automation was localized as by remote-config-api.
country- (String) An ISO 3166-1 country code, set by device settings.language- (String) The ISO 639-1 two-letter language code reflecting the language the phone is set to. - page_count number
Total number of pages.
- page_identifier string
The current page identifier.
- page_index number
Is the current pager index.
- pager_identifier string
Is the pager controller identifier.
- push_id string
A unique identifier for a push operation.
- session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
- time_sent string
An ISO 8601 date-time indicating when the payload defining the in-app message was sent to the device. May be absent.
- triggering_push object<Associated push>
Present if the user started the current session by opening a push notification.
The specific
push_idand accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.An associated push object may specify a
time, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_idif the push was sent at a relative time (best_timeorlocal_time) an automation pipeline, or another operation resulting in multiplepush_ids.
Information about app users generated by the SDK.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
IN_APP_PAGER_COMPLETED - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
In-app pager summary
Example in-app pager summary event
{
"id": "51dd7c1c-5621-11e9-9601-0242539d70ef",
"offset": "1000022467557",
"occurred": "2019-03-29T21:42:21.245Z",
"processed": "2019-04-03T15:10:23.828Z",
"device": {
"ios_channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
"channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
"device_type": "IOS",
"named_user_id": "cooluser",
"identifiers": {
"com.urbanairship.limited_ad_tracking_enabled": "true",
"session_id": "B147E0CE-272E-4047-A79C-30D02A2F213D",
"GA_CID": "a61448e1-be63-43ee-84eb-19446ba743f0",
"com.urbanairship.idfa": "A76E6F83-4F4A-47E2-BFDD-72BED91D2D1F",
"com.urbanairship.vendor": "ED496B1A-43F1-45A9-A7C1-80125DE8A5B1"
},
"attributes": {
"locale_variant": "",
"app_version": "542",
"device_model": "iPhone7,2",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "America/Los_Angeles",
"push_opt_in": "true",
"locale_country_code": "US",
"device_os": "11.4",
"locale_timezone": "-25200",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "10.2.0",
"location_permission": "ALWAYS_ALLOWED"
}
},
"body": {
"push_id": "898c0cde-02d8-4674-8c3a-91183aab8b7b",
"group_id": "898c0cde-02d8-4674-8c3a-91183aab8b7b",
"session_id": "393ae595-bb43-48a2-9878-996e11581754",
"triggering_push": {
"push_id": "a183f051-7d69-11ed-86d9-0242dc3f670b",
"group_id": "8e7cfac3-cfd3-4f4f-a9a1-d766de9b063a",
"campaigns": {
"categories": [
"welcome_series"
]
}
},
"context": {
"reporting_context": {
"content_types": [
"scene"
]
},
"state": {
"pager": {
"identifier": "7cb3bd21-060c-46d6-9e88-fb0b5376897e",
"page_identifier": "7888b6dd-0a33-420d-a596-1342dca84fcf",
"page_index": 0,
"page_count": 1,
"completed": false
}
}
},
"pager_identifier": "7cb3bd21-060c-46d6-9e88-fb0b5376897e",
"page_count": 1,
"completed": false,
"viewed_pages": [
{
"page_identifier": "7888b6dd-0a33-420d-a596-1342dca84fcf",
"page_index": 0,
"display_time_ms": 33019
}
]
},
"type": "IN_APP_PAGER_SUMMARY"
}
Describes the full path a user took within a pager (specific to Scenes), including the order of pages (screens) visited and time spent per page.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- app_defined_id string
An identifier defined by the application if the in-app pager was created by the application logic, not Airship. If this field is present, the event body will not contain
push_id,group_id,variant_id, ortriggering_pushfields. - completed boolean
True if the user reached the end of the pager.
- context object<In-app context>
The context provides the view state when a button, pager, or form interaction occurs.
- group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- locale string
Optional string that defines the country and language this in-app-automation was localized as by remote-config-api.
country- (String) An ISO 3166-1 country code, set by device settings.language- (String) The ISO 639-1 two-letter language code reflecting the language the phone is set to. - page_count number
Total number of pages.
- page_identifier string
The current page identifier.
- pager_identifier string
Is the pager controller identifier.
- push_id string
A unique identifier for a push operation.
- session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
- time_sent string
An ISO 8601 date-time indicating when the payload defining the in-app message was sent to the device. May be absent.
- triggering_push object<Associated push>
Present if the user started the current session by opening a push notification.
The specific
push_idand accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.An associated push object may specify a
time, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_idif the push was sent at a relative time (best_timeorlocal_time) an automation pipeline, or another operation resulting in multiplepush_ids. - viewed_pages objectOBJECT PROPERTIES
- display_time_ms number
Is how long the page was displayed in milliseconds.
- page_identifier string
The current page identifier.
- page_index number
The current page index.
Information about app users generated by the SDK.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
IN_APP_PAGER_SUMMARY - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
Label event
Example label event
{
"id":"00000199-2eb3-7fdc-b598-bf7930422ef4",
"offset":"1000232372984",
"occurred":"2025-09-09T13:38:59.676Z",
"processed":"2025-09-09T13:38:59.808Z",
"body":{
"push_id":"f9dde97e-e0f7-47f8-928b-08ebd761a1ea",
"labels":[
{
"id":"81f5e794-9a81-418a-b625-6affd0f99f34",
"label":"Screen 1"
},
{
"id":"8011912d-26bf-4163-b545-e047165cf0a9",
"label":"Screen 2"
},
{
"id":"3142620e-844e-461e-bc4f-4a706d2bcbe2",
"label":"Screen 3"
}
]
},
"type":"LABEL_EVENT"
}
Occurs when you update a Scene screen name.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- labels array[object]REQUIRED
Page list
- push_id stringREQUIRED
A unique identifier for a push operation.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred, andbodyvalues but differentoffsetandprocessedvalues. Use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset stringREQUIRED
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
LABEL_EVENT
Location
Example location event
{
"id": "910fea50-5d42-1159-b702-024288f4e1d3",
"offset": "1000022468589",
"occurred": "2019-04-03T18:59:02.246Z",
"processed": "2019-04-03T19:10:26.301Z",
"device": {
"android_channel": "364a4e3f-170a-4f26-b0a1-11b280377dfe",
"channel": "364a4e3f-170a-4f26-b0a1-11b280377dfe",
"device_type": "ANDROID",
"identifiers": {
"com.urbanairship.gimbal.aii": "2471037d-71d8-4229-a40f-df719f1af914",
"session_id": "54204a73-7a95-4ffc-8051-bf230d086e19",
"GA_CID": "90d56c80-f31f-49fd-87b0-20deb3d2602a"
},
"attributes": {
"locale_variant": "",
"app_version": "dev",
"device_model": "Android SDK built for x86",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "America/Los_Angeles",
"push_opt_in": "true",
"locale_country_code": "US",
"device_os": "9",
"locale_timezone": "-25200",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "9.7.0",
"location_permission": "ALWAYS_ALLOWED"
}
},
"body": {
"latitude": "51.5033630",
"longitude": "-0.1276250",
"foreground": true,
"session_id": "ecd3741d-92c4-469b-b42c-888e40a121d3"
},
"type": "LOCATION"
}
An event declaring the device to be at a particular latitude and longitude.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- foreground booleanREQUIRED
If true, the application was foregrounded when the event occurred.
- latitude stringREQUIRED
The latitude where the event occurred.
- longitude stringREQUIRED
The longitude where the event occurred.
- session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
Information about app users generated by the SDK.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
LOCATION - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
Mobile originated event
Example mobile-originated SMS event
{
"id": "a7086338-0473-46fe-8d9b-cb61305c3c0d",
"offset": "1000000701505",
"occurred": "2018-12-03T19:31:10.000Z",
"processed": "2018-12-03T19:31:11.302Z",
"device": {
"channel": "a828de17-b315-4e80-9d2d-35a906afeacf",
"device_type": "SMS",
"delivery_address": "15558968663"
},
"body": {
"event_type": "mobile_originated_sms",
"identifiers": {
"sender": "15558675309",
"msisdn": "15558968663"
},
"properties": {
"inbound_message": "join",
"outbound_message": "Thanks for joining!",
"keyword": "join"
}
},
"type": "MOBILE_ORIGINATED"
}
Represents a message action that originated from a user — like an inbound SMS or email.
OBJECT PROPERTIESAn event that occurs when a user sends a message from an SMS device, i.e., the message originates from a mobile device and not from the server (Airship). This event contains context related to the message’s origin, the incoming message itself, and Airship’s response to the origin.
- device objectREQUIRED
Holds information about an SMS
OBJECT PROPERTIESdevice(an individual SMS channel).- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address string
The phone number for the channel.
- device_type stringREQUIRED
SMS compliance events use the
SMSdevice type.Possible values:
SMS - identifiers object
If present, the
OBJECT PROPERTIESidentifiersobject holds the value for thesenderproperty.- sender stringREQUIRED
The sender that the
delivery_addressreceived a message from.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
MOBILE_ORIGINATED
Open
Example open event
{
"id": "910fea50-5d42-1159-b702-024288f4e1d3",
"offset": "1000022468589",
"occurred": "2019-04-03T18:59:02.246Z",
"processed": "2019-04-03T19:10:26.301Z",
"device": {
"android_channel": "364a4e3f-170a-4f26-b0a1-11b280377dfe",
"channel": "364a4e3f-170a-4f26-b0a1-11b280377dfe",
"device_type": "ANDROID",
"identifiers": {
"com.urbanairship.gimbal.aii": "2471037d-71d8-4229-a40f-df719f1af914",
"session_id": "54204a73-7a95-4ffc-8051-bf230d086e19",
"GA_CID": "90d56c80-f31f-49fd-87b0-20deb3d2602a"
},
"attributes": {
"locale_variant": "",
"app_version": "1037.04c13d-master",
"device_model": "Nokia 6.1",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "America/Los_Angeles",
"push_opt_in": "true",
"locale_country_code": "US",
"device_os": "9",
"locale_timezone": "-25200",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "9.7.0",
"location_permission": "ALWAYS_ALLOWED"
}
},
"user": {
"contact_id": "982B35f2-0375-6384-893e-a19b5cd5R771"
},
"body": {
"last_delivered": {
"push_id": "6e3339ce-529c-42e4-a2f6-7546f81c9828",
"time": "2015-07-30T21:03:37.631Z"
},
"triggering_push": {
"push_id": "c2f6c5c5-f353-49c0-b5f7-6e87cf9b1a06",
"group_id": "8ea2abd6-dbc7-475a-9c57-fb31c7e2999b",
"variant_id": 1
},
"session_id": "ad4ad05a-17f4-4eab-9c6f-d3f7fbf3cc25"
},
"type": "OPEN"
}
Occurs when a user opens your app.
OBJECT PROPERTIES- body objectOBJECT PROPERTIES
- last_delivered object
Identifies the last push notification the audience received before the event. Absent if the last push occurred more than 12 hours ago.
OBJECT PROPERTIES- campaigns object
An object listing the campaigns a push specification is associated with. The campaigns object includes an array of categories that must have between 1 and 10 elements, each of which is a string with a 64-byte and -character limit.
OBJECT PROPERTIES- categories array[string]
- group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- push_id stringREQUIRED
A unique identifier for a push operation.
- time string
The UTC time when the push occurred.
- variant_id integer
The ID of the variant that a push is associated with, if the push was a part of an A/B test (experiment).
- session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
- triggering_push object<Associated push>
An associated push object, establishing a causal relationship between a push and the Open event. Absent if a causal relationship to a push cannot be established.
The specific
push_idand accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.An associated push object may specify a
time, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_idif the push was sent at a relative time (best_timeorlocal_time) an automation pipeline, or another operation resulting in multiplepush_ids.
- device object<App device information>
Information about app users generated by the SDK.
- id string
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred string
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed string
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type string
Possible values:
OPEN - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
Push body
Example push body event
{
"id": "910fea50-5d42-1159-b702-024288f4e1d3",
"offset": "1000022468589",
"occurred": "2019-04-03T18:59:02.246Z",
"processed": "2019-04-03T19:10:26.301Z",
"body": {
"push_id": "233f8109-bf56-4d95-a8bf-6f28e9d270a4",
"campaigns": {
"categories": [
"hello",
"numberwang",
"first message"
]
},
"resource": "PUSH",
"trimmed": false,
"payload": "eyJkZXZpY2VfdHlwZXMiOiBbImFuZHJvaWQiLCAiaW9zIl0sICJub3RpZmljYXRpb24iOiB7ImFuZHJvaWQiOiB7fSwgImlvcyI6IHsiYmFkZ2UiOiAiKzEifSwgImFsZXJ0IjogIklUIFdJTEwgV09SSyEifSwgImF1ZGllbmNlIjogImFsbCJ9"
},
"type": "PUSH_BODY"
}
Occurs when you initiate a push, automation, or sequence.
Airship fulfills delivery over a time interval with a number of child pushes, each with a unique Push ID and a common Group ID. There is no guarantee that push body events (defined in Push Body Event) for the child pushes fulfilling a group will appear in the stream.
Note: When you start, pause, or publish a sequence, Airship emits a push_body event for the sequence itself, and each message contained within the sequence (i.e., messages +1). After you start a sequence, Airship does not issue subsequent push_body events for the sequence unless you pause or publish changes to the sequence.
- body objectOBJECT PROPERTIES
- campaigns object
An object listing the campaigns a push specification is associated with. The campaigns object includes an array of categories that must have between 1 and 10 elements, each of which is a string with a 64-byte and -character limit.
OBJECT PROPERTIES- categories array[string]
- group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- payload stringREQUIRED
The specification of the push as sent via the API, a Base64 encoded JSON value.
- push_id string
A unique identifier for a push operation.
- resource stringREQUIRED
Describes the type of push, helping you interpret the JSON response. Values pertain to the push
type.Possible values:
PIPELINES,SCHEDULES,PUSH,EXPERIMENTS,IN_APP_AUTOMATION - trimmed booleanREQUIRED
If true, the push payload was trimmed from the event body.
- id string
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred string
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed string
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type string
Possible values:
PUSH_BODY
Region event
Example region event
{
"id": "910fea50-5d42-1159-b702-024288f4e1d3",
"offset": "1000022468589",
"occurred": "2019-04-03T18:59:02.246Z",
"processed": "2019-04-03T19:10:26.301Z",
"device": {
"android_channel": "364a4e3f-170a-4f26-b0a1-11b280377dfe",
"channel": "364a4e3f-170a-4f26-b0a1-11b280377dfe",
"device_type": "ANDROID",
"identifiers": {
"com.urbanairship.gimbal.aii": "2471037d-71d8-4229-a40f-df719f1af914",
"session_id": "54204a73-7a95-4ffc-8051-bf230d086e19",
"GA_CID": "90d56c80-f31f-49fd-87b0-20deb3d2602a"
},
"attributes": {
"locale_variant": "",
"app_version": "dev",
"device_model": "Android SDK built for x86",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "America/Los_Angeles",
"push_opt_in": "true",
"locale_country_code": "US",
"device_os": "9",
"locale_timezone": "-25200",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "9.7.0",
"location_permission": "ALWAYS_ALLOWED"
}
},
"body":{
"action": "enter",
"region_id": "fb542343-9a43-450a-be7f-43bed95057ff",
"session_id": "0a50fdb9-dfa9-4e0e-8373-4f0c5c7137c7",
"name": "Coolest Place",
"source_info": {
"source": "Gimbal",
"region_id": "a vendor identifier"
}
},
"type": "REGION"
}
Region events are emitted when a device enters or exits a geofence or the range of any of a set of bluetooth beacons. Region events require a Gimbal integration. Events for Gimbal customers include the Gimbal application instance identifier as com.urbanairship.gimbal.aii within the identifiers object.
- body objectREQUIREDOBJECT PROPERTIES
- action stringREQUIRED
Indicates whether the event was the result of a user entering or exiting the region.
Possible values:
enter,exit - name string
A friendly name for the event; may be retrieved from a third-party.
- region_id stringREQUIRED
The identifier for the region in Airship.
- session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
- source_info objectREQUIRED
Information about the source application that generated the event.
OBJECT PROPERTIES- region_id string
The unique region identifier from the originating system.
- source string
Identifies the system that the event originated from.
Information about app users generated by the SDK.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
REGION - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
Rich control
Example event body - message not delivered due to user being in a control group
{
"id" : "e97ef291-eb48-6614-a9f4-9138244a9144",
"offset" : "-1099401623",
"occurred" : "2024-11-05T23:47:55.473Z",
"processed" : "2024-11-05T23:47:55.473Z",
"device" : {
"ios_channel" : "564f958c-806f-bdaf-340b-1a25867d1c6a",
"channel" : "564f958c-806f-bdaf-340b-1a25867d1c6a",
"device_type" : "IOS"
},
"user": {
"contact_id": "6b5ca2a2-c1f1-4119-9617-2d5bff0db09d",
"named_user_id": "mini_me"
},
"body" : {
"push_id" : "62fd4bac-a85a-0e18-00b4-9e59339bece5",
"group_id" : "da16d1c2-7d8f-9ade-ff14-05ce696ba042"
},
"type" : "RICH_CONTROL"
}
Occurs when a Message Center message is not delivered to a user because they are in a control group for a Sequence A/B test or Holdout Experiment.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- push_id string
A unique identifier for a push operation.
Information about app users generated by the SDK.
- experiment_id string
ID for the requested experiment.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
RICH_CONTROL - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
Rich delete
Example event body - indicates the `push_id` that was deleted
{
"id": "ca2948b0-56ea-11e9-88dc-a142740a77e1",
"offset": "1000022469540",
"occurred": "2019-04-04T15:03:22.545Z",
"processed": "2019-04-04T15:12:54.657Z",
"device": {
"ios_channel": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
"channel": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
"device_type": "IOS",
"named_user_id": "coolusername",
"identifiers": {
"com.urbanairship.limited_ad_tracking_enabled": "true",
"session_id": "837645C4-BD17-455C-96A3-999E1290EFA7",
"GA_CID": "d12b5b66-d0c6-40f6-923f-ea039e3e8297",
"com.urbanairship.idfa": "9610438A-6AEF-4113-BB99-2F64CB56ED2F",
"com.urbanairship.vendor": "F2519C6C-A724-4343-80C7-1F1E42C53DFF"
},
"attributes": {
"locale_variant": "",
"app_version": "542",
"device_model": "iPhone8,1",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "Europe/London",
"push_opt_in": "true",
"locale_country_code": "GB",
"device_os": "12.1.4",
"locale_timezone": "3600",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "10.2.0",
"location_permission": "FOREGROUND_ALLOWED"
}
},
"user": {
"named_user_id": "coolusername",
"contact_id": "982B35f2-0375-6384-893e-a19b5cd5R771"
},
"body": {
"push_id": "1bf2A1a1-4069-11e9-abf1-024297609801"
},
"type": "RICH_DELETE"
}
Occurs when a user deletes a Message Center message from their inbox.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- push_id string
A unique identifier for a push operation.
Information about app users generated by the SDK.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
RICH_DELETE - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
Rich delivery
Example event body — indicates the `push_id` that reached the user
{
"id": "83848900-54ac-11e9-a132-024278224c1c",
"offset": "1000022466003",
"occurred": "2019-04-01T18:32:32.912Z",
"processed": "2019-04-01T18:32:33.031Z",
"device": {
"android_channel": "1de67612-94bc-4d02-85b0-37ede154a9d7",
"channel": "1de67612-94bc-4d02-85b0-37ede154a9d7",
"device_type": "ANDROID"
},
"user": {
"contact_id": "982B35f2-0375-6384-893e-a19b5cd5R771"
},
"body": {
"push_id": "1a7d774c-1659-4104-b594-2f7ec739c92d"
},
"type": "RICH_DELIVERY"
}
Occurs when a Message Center message is delivered to a user’s inbox.
Even though rich push deliveries may or may not cause an alert on the user’s lock screen, they are always associated with a push identifier in the Airship system.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- push_id string
A unique identifier for a push operation.
Information about app users generated by the SDK.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
RICH_DELIVERY - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
Rich read
Example event body — indicates the `push_id` that the user read
{
"id": "ca2948b0-56ea-11e9-88dc-a142740a77e1",
"offset": "1000022469540",
"occurred": "2019-04-04T15:03:22.545Z",
"processed": "2019-04-04T15:12:54.657Z",
"device": {
"ios_channel": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
"channel": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
"device_type": "IOS",
"named_user_id": "coolusername",
"identifiers": {
"com.urbanairship.limited_ad_tracking_enabled": "true",
"session_id": "837645C4-BD17-455C-96A3-999E1290EFA7",
"GA_CID": "d12b5b66-d0c6-40f6-923f-ea039e3e8297",
"com.urbanairship.idfa": "9610438A-6AEF-4113-BB99-2F64CB56ED2F",
"com.urbanairship.vendor": "F2519C6C-A724-4343-80C7-1F1E42C53DFF"
},
"attributes": {
"locale_variant": "",
"app_version": "542",
"device_model": "iPhone8,1",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "Europe/London",
"push_opt_in": "true",
"locale_country_code": "GB",
"device_os": "12.1.4",
"locale_timezone": "3600",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "10.2.0",
"location_permission": "FOREGROUND_ALLOWED"
}
},
"user": {
"named_user_id": "coolusername",
"contact_id": "982B35f2-0375-6384-893e-a19b5cd5R771"
},
"body": {
"push_id": "1bf2A1a1-4069-11e9-abf1-024297609801",
"time": "2019-03-04T15:12:54.657Z"
},
"type": "RICH_READ"
}
Occurs when a user reads a Message Center message in their inbox.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- push_id string
A unique identifier for a push operation.
Information about app users generated by the SDK.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
RICH_READ - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
Screen viewed
Example screen viewed event
{
"id": "a7086338-0473-46fe-8d9b-cb61305c3c0d",
"offset": "1000000701505",
"occurred": "2018-12-03T19:31:10.000Z",
"processed": "2018-12-03T19:31:11.302Z",
"device": {
"ios_channel": "c1ca5af6-b014-46f9-8566-33f5f52c7b19",
"channel": "c9cb18f7-b814-40f9-8566-33f5f52c7c48",
"device_type": "IOS",
"identifiers": {
"com.urbanairship.limited_ad_tracking_enabled": "true",
"session_id": "B1E00276-98BE-4B38-9077-FB2E90EFBE1B",
"GA_CID": "1fa021e7-8298-4f92-bee0-07cb95eecfdd",
"com.urbanairship.idfa": "1821a235-CD43-4ED8-8633-3BD3B991FA25",
"com.urbanairship.vendor": "164d552C-F5F0-4C83-B529-321667C8E48A"
},
"attributes": {
"locale_variant": "",
"app_version": "550",
"device_model": "iPhone9,1",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "Europe/Berlin",
"push_opt_in": "true",
"locale_country_code": "US",
"device_os": "12.2",
"locale_timezone": "7200",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "10.2.2",
"location_permission": "FOREGROUND_ALLOWED"
}
},
"body": {
"duration": 13933,
"viewed_screen": "home",
"previous_screen": "message_center",
"session_id": "a26102f9-7fb2-451d-a65c-56e9394cf726"
},
"type": "SCREEN_VIEWED"
}
Occurs when a user has finished viewing a screen. It is up to you to instrument your application with names for each screen. Doing so will allow you to determine the user’s path by filtering on the fields in the table below.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- duration integer
The number of milliseconds that the user was on the screen.
- previous_screen string
The name assigned to the screen the user was on prior to the
viewed_screen. - session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
- viewed_screen string
The name assigned to the screen that the user left.
Information about app users generated by the SDK.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
SCREEN_VIEWED - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
Send
Example send event
{
"id": "ca2948b0-56ea-11e9-88dc-a142740a77e1",
"offset": "1000022469540",
"occurred": "2019-04-04T15:03:22.545Z",
"processed": "2019-04-04T15:12:54.657Z",
"device": {
"ios_channel": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
"channel": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
"device_type": "IOS",
"named_user_id": "coolusername",
"attributes": {
"locale_variant": "",
"app_version": "542",
"device_model": "iPhone8,1",
"app_package_name": "com.company_name.app_name",
"iana_timezone": "Europe/London",
"push_opt_in": "true",
"locale_country_code": "GB",
"device_os": "12.1.4",
"locale_timezone": "3600",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "10.2.0",
"location_permission": "FOREGROUND_ALLOWED"
}
},
"user": {
"contact_id": "6b5ca2a2-c1f1-4119-9617-2d5bff0db09d",
"named_user_id": "coolusername"
},
"body": {
"variant_id": 1,
"push_id": "0c173744-dd35-4b5e-9f7f-2b7e0ce0e36e",
"alerting": true,
"campaigns": {
"categories": [
"hello",
"numberwang",
"first message"
]
},
"context": {
"triggered_by": "custom_event",
"event_uuid": "03669090-f934-45e2-a443-c75f6304ae6c",
"transaction": "886f53d4-3e0f-46d7-930e-c2792dac6e0a",
"interaction_id": "hello"
}
},
"type": "SEND"
}
Occurs whenever a push notification is sent to a device identified in the audience selector of a message.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- alerting boolean
If true, the send event was alerting. Alerting send event has notification text, badge, or sound.
- campaigns object
An object listing the campaigns a push specification is associated with. The campaigns object includes an array of categories that must have between 1 and 10 elements, each of which is a string with a 64-byte and -character limit.
OBJECT PROPERTIES- categories array[string]
- click_tracking boolean
If true, email click events will be reported. Only HTTP and HTTPS links are tracked.
- context object
An object that establishes a relationship between a push and the origin of the message. Only messages triggered by a Custom Event will include the context.
OBJECT PROPERTIES- event_uuid stringREQUIRED
The ID of the Custom Event which triggered the send.
- interaction_id string
If
interaction_idwas set on the Custom Event body, it will be populated here. - transaction string
If
transactionwas set on the Custom Event body, it will be populated here. - triggered_by stringREQUIRED
The triggering event type.
Possible values:
custom_event
- experiment_id string
The unique identifier for the Message A/B test or Holdout Experiment.
- group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- open_tracking boolean
If true, email open events will be reported.
- push_id stringREQUIRED
A unique identifier for a push operation.
- variant_id integer
The ID of the variant that a push is associated with, if the push was a part of an A/B test (experiment).
- device objectREQUIREDOne of
Information about app users generated by the SDK.
Information about web users generated by the SDK.
Information about the SMS or email device related to an event.
Information about open channel users.
- experiments object
An object listing the details of the Message A/B test or Holdout Experiment, if the send includes either.
OBJECT PROPERTIES- experiment_id string
The unique identifier for the Message A/B test or Holdout Experiment.
- type string
The type of experiment.
GLOBALis for A/B tests,EXP_GROUPis for Holdout Experiments.Possible values:
EXP_GROUP,GLOBAL - variant_id string
For A/B tests, the string ID of the message variant.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
SEND - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
Send aborted
Example send aborted event
{
"id": "fc06bf54-619b-4fda-9345-d8f9f8e891ef",
"occurred": "2021-02-26T20:50:21.12Z",
"offset": "1000001215643",
"processed": "2021-02-26T20:50:49.64Z",
"type": "SEND_ABORTED",
"device": {
"android_channel": "e664fb42-d1a7-4956-9907-88c49394ae70",
"channel": "e664fb42-d1a7-4956-9907-88c49394ae70",
"device_type": "ANDROID",
},
"body": {
"push_id": "26ea5408-a1ec-4771-b4f0-e86d45c03f8a",
"group_id": "3795a26d-2d74-462b-b228-ca3ed31ef7b1",
"reason": "FEED_RESOLVE_FAILURE"
}
}
Example send aborted event due to Ban List
{
"id": "fc06bf54-619b-4fda-9345-d8f9f8e891ef",
"occurred": "2021-02-26T20:50:21.12Z",
"offset": "1000001215643",
"processed": "2021-02-26T20:50:49.64Z",
"type": "SEND_ABORTED",
"device": {
"android_channel": "e664fb42-d1a7-4956-9907-88c49394ae70",
"channel": "e664fb42-d1a7-4956-9907-88c49394ae70",
"device_type": "ANDROID",
},
"body": {
"push_id": "26ea5408-a1ec-4771-b4f0-e86d45c03f8a",
"group_id": "3795a26d-2d74-462b-b228-ca3ed31ef7b1",
"reason": "FEED_RESOLVE_FAILURE"
}
}
{
"id": "fc06bf54-619b-4fda-9345-d8f9f8e891ef",
"occurred": "2021-02-26T20:50:21.12Z",
"offset": "1000001215643",
"processed": "2021-02-26T20:50:49.64Z",
"type": "SEND_ABORTED",
"device": {
"android_channel": "e664fb42-d1a7-4956-9907-88c49394ae70",
"channel": "e664fb42-d1a7-4956-9907-88c49394ae70",
"device_type": "ANDROID",
},
"body": {
"push_id": "26ea5408-a1ec-4771-b4f0-e86d45c03f8a",
"group_id": "3795a26d-2d74-462b-b228-ca3ed31ef7b1",
"reason": "FEED_BANNED_RESPONSE"
}
}
Occurs when a push is dropped from our system before delivery is attempted. This can happen:
- When using External Data Feeds to personalize a message and an error was encountered or the feed returned a non-successful response
- When a Message Limit is met
- When a Ban List webhook issues a
dropresponse for a user
Device information for the device that did not receive the push is included with SEND_ABORTED events.
- body objectREQUIREDOBJECT PROPERTIES
- campaigns object
An object listing the campaigns a push specification is associated with. The campaigns object includes an array of categories that must have between 1 and 10 elements, each of which is a string with a 64-byte and -character limit.
OBJECT PROPERTIES- categories array[string]
- group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- push_id stringREQUIRED
A unique identifier for a push operation.
- reason stringREQUIRED
Describes the reason this push was aborted.
FEED_BANNED_RESPONSE: The response from the endpoint indicated a channel was banned. See Ban Lists.FEED_REQUEST_REJECTED: The request to the specified server was rejected. Occurs when a 4xx HTTP response code is returned when Airship calls the webhook.FEED_RESOLVE_FAILURE: The URI of the feed could not be resolved.FREQUENCY_LIMIT_FAILURE: A Message Limit retrieval failed.FREQUENCY_LIMIT_REACHED: A Message Limit was exceeded.UNKNOWN: The error occurred due to another problem.
Possible values:
FEED_BANNED_RESPONSE,FEED_REQUEST_REJECTED,FEED_RESOLVE_FAILURE,FREQUENCY_LIMIT_FAILURE,FREQUENCY_LIMIT_REACHED,UNKNOWN
Information about app users generated by the SDK.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
SEND_ABORTED
Send rejected
Example send rejected event body
{
"id": "00000169-4a14-67b2-1ddd-d9e733622c3a",
"occurred": "2019-03-04T19:00:45.106Z",
"offset": "1000001260057",
"processed": "2019-03-04T19:00:47.094Z",
"type": "SEND_REJECTED",
"device": {
"ios_channel": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
"channel": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
"device_type": "IOS",
},
"body": {
"variant_id": 1,
"push_id": "0c173744-dd35-4b5e-9f7f-2b7e0ce0e36e",
"status": "BadDeviceToken",
"campaigns" : {
"categories" : ["hello", "first message"]
}
}
}
Occurs when a push fails during communication with a third party, like APNs or GCM. This typically indicates that the user has uninstalled the app or otherwise invalidated the last-registered credentials stored in Airship. The event contains the rejected push and the group, variant, or campaigns the push belonged to.
Device information for the device that did not receive the push is included with SEND_REJECTED events.
- body objectREQUIREDOBJECT PROPERTIES
- campaigns object
An object listing the campaigns a push specification is associated with. The campaigns object includes an array of categories that must have between 1 and 10 elements, each of which is a string with a 64-byte and -character limit.
OBJECT PROPERTIES- categories array[string]
- group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- push_id stringREQUIRED
A unique identifier for a push operation.
- status string
The status of the message.
Possible values:
BadDeviceToken,Unauthorized,InvalidPackageName,InvalidParameters,Unavailable,MessageTooBig,InvalidTtl,InvalidDataKey,MissingRegistration,Uninstalled - variant_id integer
The ID of the variant that a push is associated with, if the push was a part of an A/B test (experiment).
Information about app users generated by the SDK.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
SEND_REJECTED
Short link click event
Example short_link_click event
{
"id": "31549b7d-a435-4b04-abca-69bfd4fb6aaa",
"offset": "1000005313850",
"occurred": "2019-07-10T23:18:57.465Z",
"processed": "2019-07-10T23:18:58.148Z",
"device": {
"channel": "ec71312b-42e4-4bcd-b742-581a84941793",
"device_type": "SMS",
"delivery_address": "15551234567",
"identifiers": {
"sender": "15558647425"
},
"attributes": {
"web_user_agent_string": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/75.0.3770.100 Safari\/537.36"
}
},
"body": {
"push_id": "f4b4201a-70e2-4a8d-bc8f-f35ddfa7d0e7",
"group_id": "47f01bbf-2efa-4743-acd8-fd1023a36744",
"properties": {
"original_url": "https://docs.airship.com/api/connect#schemas-short_link_click"
}
},
"type": "SHORT_LINK_CLICK"
}
Occurs when a user taps or “clicks” an Airship-shortened link in an SMS or MMS message.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- campaigns object
An object listing the campaigns a push specification is associated with. The campaigns object includes an array of categories that must have between 1 and 10 elements, each of which is a string with a 64-byte and -character limit.
OBJECT PROPERTIES- categories array[string]
- group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- properties objectREQUIREDOBJECT PROPERTIES
- original_url stringREQUIRED
The URL represented by the Airship-shortened link.
- push_id stringREQUIRED
A unique identifier for a push operation.
- device objectREQUIREDOBJECT PROPERTIES
- attributes objectOBJECT PROPERTIES
- web_user_agent_string string
Describes the web user agent for the audience member who used the link.
- channel stringREQUIRED
The unique, platform-agnostic channel identifier for a device.
- delivery_address string
The MSISDN of the audience member who clicked the link.
- device_type stringREQUIRED
Possible values:
SMS - identifiers objectOBJECT PROPERTIES
- sender stringREQUIRED
The sender of the message.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
SHORT_LINK_CLICK
Subscription event
Example subscription event
{
"id": "62f3b7ac-4048-4f22-a0b5-22c01ef172a9",
"offset": "1000022265027",
"occurred": "2019-04-01T13:00:23.186Z",
"processed": "2019-04-01T13:00:23.456Z",
"device": {
"channel": "6b46c724-494b-4491-9fe7-1b903d266110",
"device_type": "EMAIL",
"delivery_address": "user+43679@urbanairship.com.sink.sparkpostmail.com"
},
"body": {
"event_type":"registration",
"identifiers": {
"address":"new.subscription@example.com"
},
"properties":{
"commercial_opted_in":"2019-01-04T20:56:00.000Z",
"transactional_opted_in":"2019-01-04T20:56:00.000Z",
"click_tracking_opted_out":"2019-01-04T20:56:00.000Z",
"open_tracking_opted_out":"2019-01-04T20:56:00.000Z"
}
},
"type": "SUBSCRIPTION"
}
SUBSCRIPTION events reflect changes to users’ subscription preferences — reflected in opt_in and opt_out values. These events help you track a user’s subscription status in the system and the total number of subscribers.
- body objectREQUIREDOBJECT PROPERTIES
- event_type stringREQUIRED
Determines the source of the subscription event.
registrationandcreate_and_sendevents result in changes toopted_indates; all other event types containopted_outdates.registration: Represents a change to a user’scommercial_opted_in,transactional_opted_in,click_tracking_opted_in, oropen_tracking_opted_indates.create_and_send: A user’s opted_in status changed as a result of a Create and Send event.bounce: Subscription status changed as a result of a bounce event.list_unsubscribe: The user clicked theunsubscribebutton in their email client.link_unsubscribe: The user clicked anunsubscribehyperlink in an email.spam_complaint: The user classified an email as spam.out_of_band: A bounce occurred after the recipient MTA accepted an email.
Possible values:
registration,create_and_send,bounce,list_unsubscribe,link_unsubscribe,spam_complaint,out_of_band - identifiers objectREQUIRED
Contains address information specific to the
OBJECT PROPERTIESchannel_idspecified in the event.- address string
The email address representing the change.
- subscription_lists object
Changes to a device or user’s subscription list membership.
OBJECT PROPERTIES- canceled array[string]
An array of subscription list IDs which were canceled. Present only when a cancellation occurred.
- enrolled array[string]
An array of subscription list IDs which were enrolled. Present only when an enrollment occurred.
- scope string
The scope at which the operation was performed; only present on events which target a Named User.
Possible values:
app,web,email,sms
- properties objectOBJECT PROPERTIES
- click_tracking_opted_in string
- click_tracking_opted_out string
- commercial_opted_in string
- commercial_opted_out string
- open_tracking_opted_in string
- open_tracking_opted_out string
- transactional_opted_in string
- transactional_opted_out string
- device objectREQUIRED
Holds information about the email
OBJECT PROPERTIESdevice(an individual email channel) the event occurred against.- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address stringREQUIRED
The email address of the channel the event occurred against.
- device_type stringREQUIRED
Email compliance events use the
EMAILdevice type.Possible values:
EMAIL - named_user string
The Named User that the channel is associated with; appears only if the channel is associated with a Named User.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
SUBSCRIPTION - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
Subscription list event
Example Subscription List event
{
"id": "62f3b7ac-4048-4f22-a0b5-22c01ef172a9",
"offset": "1000022265027",
"occurred": "2019-04-01T13:00:23.186Z",
"processed": "2019-04-01T13:00:23.456Z",
"device": {
"channel": "6b46c724-494b-4491-9fe7-1b903d266110",
"device_type": "EMAIL",
"delivery_address": "user+43679@urbanairship.com.sink.sparkpostmail.com"
},
"user": {
"contact_id": "6b5ca2a2-c1f1-4119-9617-2d5bff0db09d",
"named_user_id": "mini_me"
},
"body": {
"enrolled": ["cool_deals"]
},
"type": "SUBSCRIPTION_LIST"
}
Occurs when subscription list enrollment changes for a device or user.
OBJECT PROPERTIES- body objectREQUIRED
Changes to a device or user’s subscription list membership.
OBJECT PROPERTIES- canceled array[string]
An array of subscription list IDs which were canceled. Present only when a cancellation occurred.
- enrolled array[string]
An array of subscription list IDs which were enrolled. Present only when an enrollment occurred.
- scope string
The scope at which the operation was performed; only present on events which target a Named User.
Possible values:
app,web,email,sms
- device objectREQUIREDOne of
Information about app users generated by the SDK.
- Web device information without `attributes` object
Information about web users in tag change events.
OBJECT PROPERTIES- channel stringREQUIRED
The unique, platform-agnostic channel identifier for a device.
- device_type stringREQUIRED
The platform that the channel is on.
Possible values:
WEB - named_user_id string
The Named User identifier for the device.
Information about the SMS or email device related to an event.
Information about open channel users.
User information for events which occur at the user level.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
SUBSCRIPTION_LIST - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
Tag change
Example tag change event
{
"id": "00000169-4a14-67b2-1ddd-d9e733622c3a",
"occurred": "2019-03-04T19:00:45.106Z",
"offset": "1000001260057",
"processed": "2019-03-04T19:00:47.094Z",
"device": {
"ios_channel": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
"channel": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
"device_type": "IOS",
},
"user": {
"contact_id": "6b5ca2a2-c1f1-4119-9617-2d5bff0db09d",
"named_user_id": "mini_me"
},
"body":{
"add": {
"crm": [
"partner",
"active"
],
"loyalty": [
"silver_member"
]
},
"remove": {
"device": [
"shoe_buyer"
]
},
"current": {
"crm": [
"partner",
"active",
"new_user"
],
"loyalty": [
"silver_member",
"special_offers"
],
"device": [
"san_francisco",
"sports"
]
}
},
"type": "TAG_CHANGE"
}
Occurs when tags change for a device.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- add object
Tag group/tag pairs added to the device. Each tag group is an array containing one or more tags within this object.
- current object
The total set/state of tag group/tag pairs associated with the device after the tag change. Each tag group is an array containing one or more tags within this object.
- remove object
Tag group/tag pairs removed from the device. Each tag group is an array containing one or more tags within this object.
- device objectREQUIREDOne of
Information about app users generated by the SDK.
- Web device information without `attributes` object
Information about web users in tag change events.
OBJECT PROPERTIES- channel stringREQUIRED
The unique, platform-agnostic channel identifier for a device.
- device_type stringREQUIRED
The platform that the channel is on.
Possible values:
WEB - named_user_id string
The Named User identifier for the device.
Information about the SMS or email device related to an event.
Information about open channel users.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
TAG_CHANGE - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
Uninstall
Example uninstall event
{
"id": "00000169-4a14-67b2-1ddd-d9e733622c3a",
"occurred": "2019-03-04T19:00:45.106Z",
"offset": "1000001260057",
"processed": "2019-03-04T19:00:47.094Z",
"type": "UNINSTALL",
"device": {
"ios_channel": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
"channel": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
"device_type": "IOS",
},
"body":{
"decay": false
},
"type": "UNINSTALL"
}
Occurs when a user uninstalls an Airship-integrated app in response to a push.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- decay booleanREQUIRED
If true, Airship recorded an uninstall event due to user inactivity.
- device objectREQUIREDOne of
Information about app users generated by the SDK.
Information about web users generated by the SDK.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
UNINSTALL - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
Web click event
Example web click event
{
"id": "c91efbfa-14b1-401a-9002-54730b5cdcda",
"offset": "1000024775634",
"occurred": "2019-04-05T20:11:36.696Z",
"processed": "2019-04-05T20:11:37.179Z",
"device": {
"channel": "bd054c5b-d614-46a1-a843-6ca330c66489",
"device_type": "WEB",
"attributes": {
"web_browser_type": "desktop",
"push_opt_in": "true",
"iana_timezone": "America/Los_Angeles",
"locale_country_code": "US",
"locale_timezone": "-25200",
"web_browser_version": "chrome-73",
"locale_language_code": "en",
"web_browser_name": "chrome",
"ua_sdk_version": "1.1.0",
"web_user_agent_string": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"
}
},
"body": {
"push_id": "c2f6c5c5-f353-49c0-b5f7-6e87cf9b1a06"
},
"type": "WEB_CLICK"
}
Occurs when a user interacts with a web notification, e.g., clicked or tapped it. Web Click events have a device attribute on the event indicating the channel that was the target of the notification. The body of a Web Click Event is an associated push object.
OBJECT PROPERTIESThe specific
push_idand accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.An associated push object may specify a
time, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_idif the push was sent at a relative time (best_timeorlocal_time) an automation pipeline, or another operation resulting in multiplepush_ids.- device objectREQUIRED
Information about web users generated by the SDK.
OBJECT PROPERTIES- attributes objectOBJECT PROPERTIES
- iana_timezone string
The time zone of the device.
- push_opt_in stringREQUIRED
Indicates whether or not the device is opted into push notifications.
- ua_sdk_version stringREQUIRED
The version of the Airship SDK used in the app.
- web_browser_name stringREQUIRED
The name of the browser running the SDK.
- web_browser_type stringREQUIRED
Indicates whether the browser was running on a desktop or mobile device.
- web_browser_version stringREQUIRED
The version of the browser.
- web_user_agent_string stringREQUIRED
The user agent reported by the browser.
- channel stringREQUIRED
The unique, platform-agnostic channel identifier for a device.
- device_type stringREQUIRED
The platform that the channel is on.
Possible values:
WEB - named_user_id string
The Named User identifier for the device.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
WEB_CLICK - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
Web session event
Example web session event
{
"id": "c91efbfa-14b1-401a-9002-54730b5cdcda",
"offset": "1000024775634",
"occurred": "2019-04-05T20:11:36.696Z",
"processed": "2019-04-05T20:11:37.179Z",
"device": {
"channel": "bd054c5b-d614-46a1-a843-6ca330c66489",
"device_type": "WEB",
"attributes": {
"web_browser_type": "desktop",
"push_opt_in": "true",
"iana_timezone": "America/Los_Angeles",
"locale_country_code": "US",
"locale_timezone": "-25200",
"web_browser_version": "chrome-73",
"locale_language_code": "en",
"web_browser_name": "chrome",
"ua_sdk_version": "1.1.0",
"web_user_agent_string": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"
}
},
"body": {
"session_id": "e8350094-dd62-4d36-a7a0-f1b0a221de93",
"last_delivered": {
"push_id": "c2f6c5c5-f353-49c0-b5f7-6e87cf9b1a06"
}
},
"type": "WEB_SESSION"
}
Occurs when an opted in user begins interacting with a website. Web Session events have a device attribute, indicating the channel associated with the user.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- last_delivered object
Identifies the last push notification the audience received before the event. Absent if the last push occurred more than 12 hours ago.
OBJECT PROPERTIES- campaigns object
An object listing the campaigns a push specification is associated with. The campaigns object includes an array of categories that must have between 1 and 10 elements, each of which is a string with a 64-byte and -character limit.
OBJECT PROPERTIES- categories array[string]
- group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- push_id stringREQUIRED
A unique identifier for a push operation.
- time string
The UTC time when the push occurred.
- variant_id integer
The ID of the variant that a push is associated with, if the push was a part of an A/B test (experiment).
- session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
- triggering_push object<Associated push>
The specific
push_idand accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.An associated push object may specify a
time, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_idif the push was sent at a relative time (best_timeorlocal_time) an automation pipeline, or another operation resulting in multiplepush_ids.
Information about web users generated by the SDK.
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset string
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
WEB_SESSION - user object<User>
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
Email compliance events
Contains event body information specific to email compliance events.
Email bounce event
Example email bounce event
{
"id": "9781ff2e-fa4a-4fa8-bd9d-41f318c48963",
"offset": "1000001778910",
"occurred": "2018-11-28T00:02:41.794Z",
"processed": "2018-11-28T00:02:45.270Z",
"device": {
"channel": "5a39b6d8-0a5a-4c2b-a4a0-3d4a71e5254b",
"device_type": "EMAIL",
"delivery_address": "bademail@example.com"
},
"body": {
"event_type": "bounce",
"properties": {
"bounce_event_type": "bounce",
"sender": "msprvs1=17870ayYKWpBI=bounces-179492-4@example.com",
"subject": "Red Means Go",
"email": "bademail@example.com",
"bounce_class": "10"
}
},
"type": "COMPLIANCE"
}
An event that occurs when an email could not be delivered to a particular address. The bounce_class can provide more information about why the message bounced.
- body objectREQUIRED
Contains the event subtype and additional properties about the event.
OBJECT PROPERTIES- event_type stringREQUIRED
Possible values:
bounce - identifiers objectREQUIREDOBJECT PROPERTIES
- address string
The email address registered.
- properties objectREQUIREDOBJECT PROPERTIES
- bounce_class integer
The bounce classification as specified in SparkPost.
- bounce_event_type string
Possible values:
bounce - email string
The email address that bounced.
- sender string
The address that the bounced email came from (typically the sender address for your project in Airship).
- subject string
The subject line of the bounced email.
- device objectREQUIRED
Holds information about the email
OBJECT PROPERTIESdevice(an individual email channel) the event occurred against.- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address stringREQUIRED
The email address of the channel the event occurred against.
- device_type stringREQUIRED
Email compliance events use the
EMAILdevice type.Possible values:
EMAIL - named_user string
The Named User that the channel is associated with; appears only if the channel is associated with a Named User.
Email Create and Send event
Example email Create and Send event
{
"id": "adf8794c-c3c3-4507-9ea3-1a554ed4b94f",
"offset": "1000001778141",
"occurred": "2018-11-27T23:20:12.167Z",
"processed": "2018-11-27T23:20:12.443Z",
"device": {
"channel": "b8519372-54ff-456d-9819-7faa92fe8b9d",
"device_type": "EMAIL",
"delivery_address": "new.address@example.com"
},
"body": {
"event_type": "create_and_send",
"identifiers": {
"address": "new.address@example.com"
},
"properties": {
"channel_registered": "true",
"commercial_opted_in": "2018-10-12T12:12:12"
}
},
"type": "COMPLIANCE"
}
An event that occurs for email addresses used as a part of a Create and Send.
OBJECT PROPERTIES- body objectREQUIRED
Contains the event subtype and additional properties about the event.
OBJECT PROPERTIES- event_type stringREQUIRED
Possible values:
create_and_send - identifiers objectREQUIREDOBJECT PROPERTIES
- address stringREQUIRED
The email address a message was sent to using Create and Send.
- properties objectREQUIRED
Properties for an email Create and Send event.
OBJECT PROPERTIES- channel_registered booleanREQUIRED
If true, a new channel was created to represent the identifiers in the event. If false, the address was already registered to Airship.
- commercial_opted_in string
The date and time when the
addressopted into commercial email messages. - transactional_opted_in string
The date and time when the
addressopted into transactional email messages.
- device objectREQUIRED
Holds information about the email
OBJECT PROPERTIESdevice(an individual email channel) the event occurred against.- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address stringREQUIRED
The email address of the channel the event occurred against.
- device_type stringREQUIRED
Email compliance events use the
EMAILdevice type.Possible values:
EMAIL - named_user string
The Named User that the channel is associated with; appears only if the channel is associated with a Named User.
Email registration event
Example email registration event
{
"id": "8058bfd3-9081-4f48-845c-809bf5462ca4",
"offset": "1000000739139",
"occurred": "2018-12-18T21:24:11.836Z",
"processed": "2018-12-18T21:24:12.608Z",
"device": {
"channel": "93f32fb8-0e40-440b-8944-2f9ef933ca88",
"device_type": "EMAIL"
},
"body": {
"event_type": "registration",
"identifiers": {
"address": "new.user@example.com"
},
"properties": {
"commercial_opted_in": "2018-10-20T12:00:00.000Z",
"registration_type": "create"
}
},
"type": "COMPLIANCE"
}
An event that occurs when users register to receive email messages.
OBJECT PROPERTIES- body objectREQUIRED
Contains the event subtype and additional properties about the event.
OBJECT PROPERTIES- event_type stringREQUIRED
Possible values:
registration - identifiers objectREQUIREDOBJECT PROPERTIES
- address string
The email address registered.
- properties objectREQUIREDOBJECT PROPERTIES
- commercial_opted_in string
The date and time when the user opted into commercial email messages.
- registration_type stringREQUIRED
createindicates that a channel was created in Airship.updaterepresents aPUTcall to the email channel registration API.Possible values:
create,update
- device objectREQUIRED
Holds information about the email
OBJECT PROPERTIESdevice(an individual email channel) the event occurred against.- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address stringREQUIRED
The email address of the channel the event occurred against.
- device_type stringREQUIRED
Email compliance events use the
EMAILdevice type.Possible values:
EMAIL - named_user string
The Named User that the channel is associated with; appears only if the channel is associated with a Named User.
Email unsubscribe event
Example email unsubscribe event
{
"id": "bd8c90d6-5704-4438-8075-7530d06c4cba",
"offset": "1000001778792",
"occurred": "2018-11-27T23:47:54.641Z",
"processed": "2018-11-27T23:47:55.516Z",
"device": {
"channel": "b8519372-54ff-456d-9819-7faa92fe8b9d",
"device_type": "EMAIL",
"delivery_address": "former.user@example.com"
},
"body": {
"event_type": "registration",
"properties": {
"message_type": "commercial",
"registration_type": "unsubscribe"
}
},
"type": "COMPLIANCE"
}
A compliance event representing a user who unsubscribed from your email notifications.
OBJECT PROPERTIES- body objectREQUIRED
Contains the event subtype and additional properties about the event.
OBJECT PROPERTIES- event_type stringREQUIRED
Unsubscribe events are considered
registrationevents; theregistration_typeindicates the type of registration occurring.Possible values:
registration - identifiers objectREQUIREDOBJECT PROPERTIES
- address string
The email address registered.
- properties objectREQUIREDOBJECT PROPERTIES
- message_type stringREQUIRED
The message type that the user unsubscribed from.
Possible values:
commercial - registration_type stringREQUIRED
Possible values:
unsubscribe
- device objectREQUIRED
Holds information about the email
OBJECT PROPERTIESdevice(an individual email channel) the event occurred against.- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address stringREQUIRED
The email address of the channel the event occurred against.
- device_type stringREQUIRED
Email compliance events use the
EMAILdevice type.Possible values:
EMAIL - named_user string
The Named User that the channel is associated with; appears only if the channel is associated with a Named User.
User information
Contains information about the user that is associated with a given event.
Contact
Contact information associated with the device at the time the event occurs.
OBJECT PROPERTIES- contact_id stringREQUIRED
The Contact identifier for the device.
User
The current state of the user when the event is emitted, including the contact ID and an optional named user ID.
OBJECT PROPERTIES- contact_id string
The Contact identifier for the device.
- named_user_id string
The Named User identifier for the device.
Custom SMS events
Airship delivers SMS messages through service providers Sinch (formerly known as CLX) and Twilio. Custom SMS events represent events that occur between the service provider and recipient. They do not represent Airship service events.
SMS delivery report
Example SMS delivery report Custom Event
{
"body": {
"interaction_type": "delivery_report",
"name": "dispatched",
"properties": {
"sender": 15551234567,
"vendor": "CLX",
"vendorDeliveryId": "FENhObMKbCjMOwtw"
},
"source": "API",
"triggering_push": {
"campaigns": {
"categories": [
"New Users"
]
},
"push_id": "9323b708-7741-4a85-8b1b-e55ad8ce64fc"
}
},
"device": {
"channel": "db7576c7-6b3d-4f07-b13a-ea3824fea262",
"delivery_address": "15558675309",
"device_type": "SMS"
},
"id": "48af12e8-6920-4e4e-bef8-b5a6918eec35",
"occurred": "2019-01-31T17:45:38.700Z",
"offset": "1000002098217",
"processed": "2019-01-31T17:45:41.285Z",
"type": "CUSTOM"
}
Delivery reports are Custom Events sent from our third-party SMS providers. These events report the status of your message between the provider and your audience up to, and including, delivery.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- interaction_type string
Possible values:
delivery_report - name stringREQUIRED
The name of the delivery report as specified by the vendor. Most events reference the status of the message with reference to the short message service center (SMSC) — the server that receives your message and dispatches it to your audience.
- dispatched — Message has been dispatched and accepted for delivery by the SMSC.
- aborted — Message was aborted before reaching SMSC.
- rejected — Message was rejected by SMSC.
- delivered — Message has been delivered.
- failed — Message failed to be delivered.
- expired — Message expired before delivery to SMSC. This may happen if the expiry time for the message was very short.
- unknown — Message was delivered to SMSC but no Delivery Receipt has been received or a Delivery Receipt that could not be interpreted was received.
- undeliverable — Message cannot be delivered.
- deleted — Message has been deleted.
Possible values:
dispatched,aborted,rejected,delivered,failed,expired,unknown,undeliverable,deleted - properties objectREQUIREDOne of
- SMS Delivery Properties object
A delivery report for SMS.
OBJECT PROPERTIES- error_code string
An error code from the short message service center, if applicable.
- is_rcs boolean
A boolean describing if the message was delivered as RCS or not.
- sender stringREQUIRED
The number or short code that the message originated from.
- vendor stringREQUIRED
The delivery service for the message.
Possible values:
CLX,TWILIO - vendorDeliveryId stringREQUIRED
A unique identifier for the message from the SMS vendor.
- MMS Delivery Properties object
A delivery report for MMS.
OBJECT PROPERTIES- carrier_id string
Identifies the carrier the message was sent through.
- error_code string
An error code from the short message service center, if applicable.
- handset string
The profile of the handset that received the message. This information is only present if the
result_statusisN102. - is_rcs boolean
A boolean describing if the message was delivered as RCS or not.
- result_code stringREQUIRED
A status code from the vendor, if applicable.
Possible values:
N101,N102,E101,E102 - result_status string
Possible values:
Message Sent,Message Sent/Delivered,Message Failed,Message,Sent/Expired,Message Sent/Rejected,Message Sent/Failed,Message Sent/Not Supported - sender stringREQUIRED
The number or short code that the message originated from.
- sent_as string
Indicates whether the MMS was delivered as MMS (binary) or SMS (HTML).
Possible values:
MMS,SMS - tracking_Id string
An ID assigned by the delivery service (CLX only).
- vendor stringREQUIRED
The delivery service for the message.
Possible values:
CLX
- source stringREQUIRED
Possible values:
API - triggering_push object
Identifies the push notification that caused the event.
OBJECT PROPERTIES- campaigns object
An object listing the campaigns a push specification is associated with. The campaigns object includes an array of categories that must have between 1 and 10 elements, each of which is a string with a 64-byte and -character limit.
OBJECT PROPERTIES- categories array[string]
- group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- push_id stringREQUIRED
A unique identifier for a push operation.
- variant_id integer
The ID of the variant that a push is associated with, if the push was a part of an A/B test (experiment).
- device objectREQUIRED
Device properties for Custom Events with the
OBJECT PROPERTIESdelivery_reportinteraction type always specify an SMS device.- channel stringREQUIRED
The unique, platform-agnostic channel identifier for a device.
- delivery_address stringREQUIRED
The phone number associated with the channel.
- device_type stringREQUIRED
Possible values:
SMS
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset stringREQUIRED
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
CUSTOM
RCS read report
Read reports are Custom Events sent when an RCS message is marked as read. These events use the delivery_report interaction type with a name of read. See RCS branded senders.
- body objectREQUIREDOBJECT PROPERTIES
- interaction_type string
Possible values:
delivery_report - name stringREQUIRED
Indicates the event is an RCS read.
Possible values:
read - properties objectREQUIREDOBJECT PROPERTIES
- is_rcs boolean
A boolean describing whether the message was delivered as RCS.
- number_of_message_parts number
The number of message parts delivered.
- recipient_country_code string
The country code of the message recipient.
- sender stringREQUIRED
The number or short code that the message originated from.
- vendor stringREQUIRED
The delivery service for the message.
Possible values:
CLX,TWILIO - vendorDeliveryId stringREQUIRED
A unique identifier for the message from the SMS vendor.
- source stringREQUIRED
Possible values:
API - triggering_push object
Identifies the push notification that caused the event.
OBJECT PROPERTIES- campaigns object
An object listing the campaigns a push specification is associated with. The campaigns object includes an array of categories that must have between 1 and 10 elements, each of which is a string with a 64-byte and -character limit.
OBJECT PROPERTIES- categories array[string]
- group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- push_id stringREQUIRED
A unique identifier for a push operation.
- device objectREQUIRED
Device properties for Custom Events with the
OBJECT PROPERTIESdelivery_reportinteraction type always specify an SMS device.- channel stringREQUIRED
The unique, platform-agnostic channel identifier for a device.
- delivery_address stringREQUIRED
The phone number associated with the channel.
- device_type stringREQUIRED
Possible values:
SMS
- id stringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id,type,occurred,device, andbodyvalues but differentoffsetandprocessedvalues. You should use theidto deduplicate. - occurred stringREQUIRED
When the event occurred.
- offset stringREQUIRED
An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.
- processed stringREQUIRED
When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.
- type stringREQUIRED
Possible values:
CUSTOM
Custom email events
Airship delivers email messages through a provider (SparkPost). Custom email events represent events that occur at the provider level — outside Airship, between the provider and recipient.
Email bounce event
Example email bounce Custom Event
{
"id": "2cf89e3a-2458-4c2d-8fcf-11f593b1b85e",
"offset": "1000001778145",
"occurred": "2019-02-27T23:20:14.000Z",
"processed": "2019-02-27T23:20:49.347Z",
"device": {
"channel": "b8519372-54ff-456d-9819-7faa92fe8b9d",
"device_type": "EMAIL",
"delivery_address": "new.subscriber@example.com"
},
"body": {
"name": "bounce",
"triggering_push": {
"push_id": "bd5b54a8-84bd-40bc-aa84-8315f9300a99",
"campaigns": {
"categories": [
"new",
"Baseball Fan"
]
}
},
"session_id": "19e09be8-a586-4ff8-940f-1a4084d928e9",
"source": "API",
"properties": {
"sender": "baseball@example.com",
"subject": "Baseball Season is Almost Here!",
"email": "new.subscriber@example.com",
"bounce_event_type": "bounce",
"bounce_class": "10",
}
},
"type": "CUSTOM"
}
Occurs when an email could not be delivered to an address. The bounce_class provides additional information about the reason your message bounced. This event occurs in conjunction with a similar COMPLIANCE event.
- body objectREQUIREDOBJECT PROPERTIES
- name stringREQUIRED
Possible values:
bounce - properties objectREQUIREDAll of
- OBJECT PROPERTIES
- email string
The recipient’s email address.
- sender string
The sender of the email specified by the event.
- subject string
The subject line of the email specified by the event.
- OBJECT PROPERTIES
- bounce_class string
A number between 1 and 100 that represents the specific reason the email bounced.
- bounce_event_type string
Possible values:
bounce
- OBJECT PROPERTIES
- session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
- source stringREQUIRED
Possible values:
API The specific
push_idand accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.An associated push object may specify a
time, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_idif the push was sent at a relative time (best_timeorlocal_time) an automation pipeline, or another operation resulting in multiplepush_ids.
- device objectREQUIRED
Holds information about the email
OBJECT PROPERTIESdevice(an individual email channel) the event occurred against.- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address stringREQUIRED
The email address of the channel the event occurred against.
- device_type stringREQUIRED
Email compliance events use the
EMAILdevice type.Possible values:
EMAIL - named_user string
The Named User that the channel is associated with; appears only if the channel is associated with a Named User.
Email click event
Example email click Custom Event
{
"id": "2cf89e3a-2458-4c2d-8fcf-11f593b1b85e",
"offset": "1000001778145",
"occurred": "2019-02-27T23:20:14.000Z",
"processed": "2019-02-27T23:20:49.347Z",
"device": {
"channel": "b8519372-54ff-456d-9819-7faa92fe8b9d",
"device_type": "EMAIL",
"delivery_address": "new.subscriber@example.com"
},
"body": {
"name": "click",
"triggering_push": {
"push_id": "bd5b54a8-84bd-40bc-aa84-8315f9300a99",
"campaigns": {
"categories": [
"new",
"Baseball Fan"
]
}
},
"session_id": "19e09be8-a586-4ff8-940f-1a4084d928e9",
"source": "API",
"properties": {
"sender": "baseball@example.com",
"subject": "Baseball Season is Almost Here!",
"email": "new.subscriber@example.com",
"link_name": "Homepage",
"link_url": "https://www.example.com",
"os_family": "Android",
"is_mobile": "true",
"device_brand": "Motorola",
"os_version": "11",
"device_family": "moto g stylus",
"is_prefetched": "false",
"agent_family": "Chrome"
}
},
"type": "CUSTOM"
}
Occurs when a recipient clicks a tracked link in a message. Tracked links are redirected through the provider’s click-tracking server to record the event. Only HTTP and HTTPS links are tracked. Unsubscribe link clicks do not trigger this event.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- name stringREQUIRED
Possible values:
click - properties objectREQUIREDAll of
- OBJECT PROPERTIES
- email string
The recipient’s email address.
- sender string
The sender of the email specified by the event.
- subject string
The subject line of the email specified by the event.
- OBJECT PROPERTIES
- link_name string
The name of the link, if set.
- link_url string
The URL of the link that the user clicked.
- OBJECT PROPERTIES
- agent_family string
The name of the family of user agent software used to access the email, e.g., WebKit
- device_brand string
The brand of the device that was used to access the user agent software, e.g., Samsung or Apple.
- device_family string
The name of the device used to access the user agent software.
- is_mobile boolean
Indicates whether or not the user agent is from a mobile device.
- is_prefetched boolean
Indicates if this event was likely prefetched, for example through Apple MPP. This field does not apply to clicks. The value returned in click events is always false.
- os_family string
The name of the operating system used to access the user agent software.
- os_version string
The version of the operating system used to access the user agent software.
- OBJECT PROPERTIES
- session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
- source stringREQUIRED
Possible values:
API The specific
push_idand accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.An associated push object may specify a
time, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_idif the push was sent at a relative time (best_timeorlocal_time) an automation pipeline, or another operation resulting in multiplepush_ids.
- device objectREQUIRED
Holds information about the email
OBJECT PROPERTIESdevice(an individual email channel) the event occurred against.- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address stringREQUIRED
The email address of the channel the event occurred against.
- device_type stringREQUIRED
Email compliance events use the
EMAILdevice type.Possible values:
EMAIL - named_user string
The Named User that the channel is associated with; appears only if the channel is associated with a Named User.
Email delay event
Example email delay Custom Event
{
"id": "2cf89e3a-2458-4c2d-8fcf-11f593b1b85e",
"offset": "1000001778145",
"occurred": "2019-02-27T23:20:14.000Z",
"processed": "2019-02-27T23:20:49.347Z",
"device": {
"channel": "b8519372-54ff-456d-9819-7faa92fe8b9d",
"device_type": "EMAIL",
"delivery_address": "addressResponding4xx@example.com"
},
"body": {
"name": "delay",
"triggering_push": {
"push_id": "bd5b54a8-84bd-40bc-aa84-8315f9300a99",
"campaigns": {
"categories": [
"new",
"Baseball Fan"
]
}
},
"session_id": "19e09be8-a586-4ff8-940f-1a4084d928e9",
"source": "API",
"properties": {
"sender": "baseball@example.com",
"subject": "Baseball Season is Almost Here!",
"email": "addressResponding4xx@example.com"
}
},
"type": "CUSTOM"
}
Occurs when a mailbox provider temporarily rejects an email. In general, this event indicates that the provider will attempt to resend the message.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- name stringREQUIRED
Possible values:
delay - properties objectREQUIREDOBJECT PROPERTIES
- email string
The recipient’s email address.
- sender string
The sender of the email specified by the event.
- subject string
The subject line of the email specified by the event.
- session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
- source stringREQUIRED
Possible values:
API The specific
push_idand accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.An associated push object may specify a
time, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_idif the push was sent at a relative time (best_timeorlocal_time) an automation pipeline, or another operation resulting in multiplepush_ids.
- device objectREQUIRED
Holds information about the email
OBJECT PROPERTIESdevice(an individual email channel) the event occurred against.- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address stringREQUIRED
The email address of the channel the event occurred against.
- device_type stringREQUIRED
Email compliance events use the
EMAILdevice type.Possible values:
EMAIL - named_user string
The Named User that the channel is associated with; appears only if the channel is associated with a Named User.
Email delivery event
Example email delivery Custom Event
{
"id": "2cf89e3a-2458-4c2d-8fcf-11f593b1b85e",
"offset": "1000001778145",
"occurred": "2019-02-27T23:20:14.000Z",
"processed": "2019-02-27T23:20:49.347Z",
"device": {
"channel": "b8519372-54ff-456d-9819-7faa92fe8b9d",
"device_type": "EMAIL",
"delivery_address": "new.subscriber@example.com"
},
"body": {
"name": "delivery",
"triggering_push": {
"push_id": "bd5b54a8-84bd-40bc-aa84-8315f9300a99",
"campaigns": {
"categories": [
"new",
"Baseball Fan"
]
}
},
"session_id": "19e09be8-a586-4ff8-940f-1a4084d928e9",
"source": "API",
"properties": {
"sender": "baseball@example.com",
"subject": "Baseball Season is Almost Here!",
"email": "new.subscriber@example.com"
}
},
"type": "CUSTOM"
}
Occurs when the remote MTA (email server) acknowledges receipt of a message.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- name stringREQUIRED
Possible values:
delivery - properties objectREQUIREDOBJECT PROPERTIES
- email string
The recipient’s email address.
- sender string
The sender of the email specified by the event.
- subject string
The subject line of the email specified by the event.
- session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
- source stringREQUIRED
Possible values:
API The specific
push_idand accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.An associated push object may specify a
time, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_idif the push was sent at a relative time (best_timeorlocal_time) an automation pipeline, or another operation resulting in multiplepush_ids.
- device objectREQUIRED
Holds information about the email
OBJECT PROPERTIESdevice(an individual email channel) the event occurred against.- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address stringREQUIRED
The email address of the channel the event occurred against.
- device_type stringREQUIRED
Email compliance events use the
EMAILdevice type.Possible values:
EMAIL - named_user string
The Named User that the channel is associated with; appears only if the channel is associated with a Named User.
Email initial open event
Example email initial_open Custom Event
{
"id": "544da998-9338-4506-8564-8adf7b2597cf",
"offset": "1000032367699",
"occurred": "2020-07-29T20:26:03.000Z",
"processed": "2020-07-29T20:27:47.780Z",
"device": {
"channel": "b8519372-54ff-456d-9819-7faa92fe8b9d",
"device_type": "EMAIL",
"delivery_address": "new.subscriber@example.com",
"named_user_id": "a_person"
},
"body": {
"name": "initial_open",
"triggering_push": {
"push_id": "bd5b54a8-84bd-40bc-aa84-8315f9300a99"
},
"session_id": "19e09be8-a586-4ff8-940f-1a4084d928e9",
"source": "API",
"properties": {
"sender": "baseball@example.com",
"subject": "Baseball Season is Almost Here!",
"email": "new.subscriber@example.com",
"os_family": "Android",
"is_mobile": "true",
"device_brand": "Motorola",
"os_version": "11",
"device_family": "moto g stylus",
"is_prefetched": "false",
"agent_family": "Chrome"
}
},
"type": "CUSTOM"
}
Occurs when a recipient opens an email, rendering a tracking pixel at the top of the email.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- name stringREQUIRED
Possible values:
initial_open - properties objectREQUIREDAll of
- OBJECT PROPERTIES
- email string
The recipient’s email address.
- sender string
The sender of the email specified by the event.
- subject string
The subject line of the email specified by the event.
- OBJECT PROPERTIES
- agent_family string
The name of the family of user agent software used to access the email, e.g., WebKit
- device_brand string
The brand of the device that was used to access the user agent software, e.g., Samsung or Apple.
- device_family string
The name of the device used to access the user agent software.
- is_mobile boolean
Indicates whether or not the user agent is from a mobile device.
- is_prefetched boolean
Indicates if this event was likely prefetched, for example through Apple MPP. This field does not apply to clicks. The value returned in click events is always false.
- os_family string
The name of the operating system used to access the user agent software.
- os_version string
The version of the operating system used to access the user agent software.
- OBJECT PROPERTIES
- session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
- source stringREQUIRED
Possible values:
API The specific
push_idand accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.An associated push object may specify a
time, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_idif the push was sent at a relative time (best_timeorlocal_time) an automation pipeline, or another operation resulting in multiplepush_ids.
- device objectREQUIRED
Holds information about the email
OBJECT PROPERTIESdevice(an individual email channel) the event occurred against.- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address stringREQUIRED
The email address of the channel the event occurred against.
- device_type stringREQUIRED
Email compliance events use the
EMAILdevice type.Possible values:
EMAIL - named_user string
The Named User that the channel is associated with; appears only if the channel is associated with a Named User.
Email injection event
Example email injection Custom Event
{
"id": "2cf89e3a-2458-4c2d-8fcf-11f593b1b85e",
"offset": "1000001778145",
"occurred": "2019-02-27T23:20:14.000Z",
"processed": "2019-02-27T23:20:49.347Z",
"device": {
"channel": "b8519372-54ff-456d-9819-7faa92fe8b9d",
"device_type": "EMAIL",
"delivery_address": "new.subscriber@example.com"
},
"body": {
"name": "injection",
"triggering_push": {
"push_id": "bd5b54a8-84bd-40bc-aa84-8315f9300a99",
"campaigns": {
"categories": [
"new",
"Baseball Fan"
]
}
},
"session_id": "19e09be8-a586-4ff8-940f-1a4084d928e9",
"source": "API",
"properties": {
"sender": "baseball@example.com",
"subject": "Baseball Season is Almost Here!",
"email": "new.subscriber@example.com"
}
},
"type": "CUSTOM"
}
This event occurs when the provider (SparkPost) receives a message — typically when a member of the audience responds to an email.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- name stringREQUIRED
Possible values:
injection - properties objectREQUIREDOBJECT PROPERTIES
- email string
The recipient’s email address.
- sender string
The sender of the email specified by the event.
- subject string
The subject line of the email specified by the event.
- session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
- source stringREQUIRED
Possible values:
API The specific
push_idand accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.An associated push object may specify a
time, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_idif the push was sent at a relative time (best_timeorlocal_time) an automation pipeline, or another operation resulting in multiplepush_ids.
- device objectREQUIRED
Holds information about the email
OBJECT PROPERTIESdevice(an individual email channel) the event occurred against.- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address stringREQUIRED
The email address of the channel the event occurred against.
- device_type stringREQUIRED
Email compliance events use the
EMAILdevice type.Possible values:
EMAIL - named_user string
The Named User that the channel is associated with; appears only if the channel is associated with a Named User.
Email open event
Example email open Custom Event
{
"id": "2cf89e3a-2458-4c2d-8fcf-11f593b1b85e",
"offset": "1000001778145",
"occurred": "2019-02-27T23:20:14.000Z",
"processed": "2019-02-27T23:20:49.347Z",
"device": {
"channel": "b8519372-54ff-456d-9819-7faa92fe8b9d",
"device_type": "EMAIL",
"delivery_address": "new.subscriber@example.com"
},
"body": {
"name": "open",
"triggering_push": {
"push_id": "bd5b54a8-84bd-40bc-aa84-8315f9300a99",
"campaigns": {
"categories": [
"new",
"Baseball Fan"
]
}
},
"session_id": "19e09be8-a586-4ff8-940f-1a4084d928e9",
"source": "API",
"properties": {
"sender": "baseball@example.com",
"subject": "Baseball Season is Almost Here!",
"email": "new.subscriber@example.com",
"os_family": "Android",
"is_mobile": "true",
"device_brand": "Motorola",
"os_version": "11",
"device_family": "moto g stylus",
"is_prefetched": "false",
"agent_family": "Chrome"
}
},
"type": "CUSTOM"
}
Occurs when a recipient opens an email, rendering a tracking pixel at the bottom of the message. If a message is truncated by a client or email provider, a user may have to open it in a separate window to render the tracking pixel (and register this event).
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- name stringREQUIRED
Possible values:
open - properties objectREQUIREDAll of
- OBJECT PROPERTIES
- email string
The recipient’s email address.
- sender string
The sender of the email specified by the event.
- subject string
The subject line of the email specified by the event.
- OBJECT PROPERTIES
- agent_family string
The name of the family of user agent software used to access the email, e.g., WebKit
- device_brand string
The brand of the device that was used to access the user agent software, e.g., Samsung or Apple.
- device_family string
The name of the device used to access the user agent software.
- is_mobile boolean
Indicates whether or not the user agent is from a mobile device.
- is_prefetched boolean
Indicates if this event was likely prefetched, for example through Apple MPP. This field does not apply to clicks. The value returned in click events is always false.
- os_family string
The name of the operating system used to access the user agent software.
- os_version string
The version of the operating system used to access the user agent software.
- OBJECT PROPERTIES
- session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
- source stringREQUIRED
Possible values:
API The specific
push_idand accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.An associated push object may specify a
time, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_idif the push was sent at a relative time (best_timeorlocal_time) an automation pipeline, or another operation resulting in multiplepush_ids.
- device objectREQUIRED
Holds information about the email
OBJECT PROPERTIESdevice(an individual email channel) the event occurred against.- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address stringREQUIRED
The email address of the channel the event occurred against.
- device_type stringREQUIRED
Email compliance events use the
EMAILdevice type.Possible values:
EMAIL - named_user string
The Named User that the channel is associated with; appears only if the channel is associated with a Named User.
Email unsubscribe link event
Example email unsubscribe link Custom Event
{
"id": "2cf89e3a-2458-4c2d-8fcf-11f593b1b85e",
"offset": "1000001778145",
"occurred": "2019-02-27T23:20:14.000Z",
"processed": "2019-02-27T23:20:49.347Z",
"device": {
"channel": "b8519372-54ff-456d-9819-7faa92fe8b9d",
"device_type": "EMAIL",
"delivery_address": "new.subscriber@example.com"
},
"body": {
"name": "unsubscribe",
"triggering_push": {
"push_id": "bd5b54a8-84bd-40bc-aa84-8315f9300a99",
"campaigns": {
"categories": [
"new",
"Baseball Fan"
]
}
},
"session_id": "19e09be8-a586-4ff8-940f-1a4084d928e9",
"source": "API",
"properties": {
"unsubscribe_event_type": "link_unsubscribe"
}
},
"type": "CUSTOM"
}
Occurs when a user clicks an unsubscribe link in an email you sent.
OBJECT PROPERTIES- body objectREQUIREDOBJECT PROPERTIES
- name stringREQUIRED
Possible values:
unsubscribe - properties objectREQUIREDOBJECT PROPERTIES
- unsubscribe_event_type string
Possible values:
link_unsubscribe
- session_id string
Represents the “session” of user activity. Absent if the application was initialized while backgrounded.
- source stringREQUIRED
Possible values:
API The specific
push_idand accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.An associated push object may specify a
time, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_idif the push was sent at a relative time (best_timeorlocal_time) an automation pipeline, or another operation resulting in multiplepush_ids.
- device objectREQUIRED
Holds information about the email
OBJECT PROPERTIESdevice(an individual email channel) the event occurred against.- channel string
The unique, platform-agnostic channel identifier for a device.
- delivery_address stringREQUIRED
The email address of the channel the event occurred against.
- device_type stringREQUIRED
Email compliance events use the
EMAILdevice type.Possible values:
EMAIL - named_user string
The Named User that the channel is associated with; appears only if the channel is associated with a Named User.
Associated push
Push sent to an audience at a defined date-time
{
"push_id": "6e3339ce-529c-42e4-a2f6-7546f81c9828",
"time": "2015-07-30T21:03:37.631Z"
}
The specific push_id and accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.
An associated push object may specify a time, if the push was a singular operation sent at a defined time. Otherwise, the object will include a group_id if the push was sent at a relative time (best_time or local_time) an automation pipeline, or another operation resulting in multiple push_ids.
- campaigns object
An object listing the campaigns a push specification is associated with. The campaigns object includes an array of categories that must have between 1 and 10 elements, each of which is a string with a 64-byte and -character limit.
OBJECT PROPERTIES- categories array[string]
- group_id string
Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.
- push_id stringREQUIRED
A unique identifier for a push operation.
- time string
The UTC time when the push occurred.
- variant_id integer
The ID of the variant that a push is associated with, if the push was a part of an A/B test (experiment).
Compliance request
A request for compliance events is much like a request to /api/events, but has a limited scope.
- filters array
An array of filter objects defining the events you want to appear in the event stream.
- resume_offset string
The offset where the stream should begin. The offset is an identifier relevant only to the data stream. The first event in the stream will be the next element satisfying the filter and subset conditions with an offset field greater than this value. Only specify
resume_offsetifstartis absent. - start string
Specifies that the stream should start at the beginning or the end of the application’s data window. Only specify
startifresume_offsetis absent.Possible values:
EARLIEST,LATEST - subset object<Request subset>
Use subsets to return a proportion of the event stream and not all events meeting your other criteria. The
subsetobject defines the proportion of the event stream that you want to return.
Compliance request filters
Example compliance request filter
{
"device_types": ["email"],
"latency": 120000,
}
- device_types array[string]
Returns events pertaining to devices on the specified platforms.
- latency integer
The number of milliseconds between the current time and when the events you want to return occurred. If an event occurred more than
latencymilliseconds ago, it is filtered out of the event stream.
Events request
The request body defines the events you want to return in the event stream. You can define position, subset and filter specifications in each request submitted to the stream. Filters are positive statements about what events the client should return. The subset specification returns a representative portion of the stream.
OBJECT PROPERTIES- filters object<Request filters>
An array of filter objects defining the events you want to see in the event stream. A filter object defines a function that either passes or fails an event. Events are included in the response if they pass any of the functions defined by the objects in the array.
- resume_offset string
The offset where the stream should begin. The offset is an identifier relevant only to Real-Time Data Streaming. The first event in the stream will be the next element satisfying the filter and subset conditions with an offset field greater than this value. Only specify
resume_offsetifstartis absent. - start string
Specifies that the stream should start at the beginning or the end of the application’s data window. Only specify
startifresume_offsetis absent.Possible values:
EARLIEST,LATEST - subset object<Request subset>
Use subsets to return a proportion of the event stream and not all events meeting your other criteria. The
subsetobject defines the proportion of the event stream that you want to return.
Request filters
Example filter
{
"device_types": ["ios"],
"latency": 120000,
"notifications": {"push_id": "fae0658c-930e-4f66-bc78-80f46222bc8c"},
"types": ["OPEN", "SEND"],
"devices": [{"named_user_id": "VIP Customer"}]
}
{
"device_types": ["ios"],
"latency": 120000,
"notifications": {"push_id": "af03151e-5ad5-4e30-bbd2-bda28312b3c7"},
"types": ["RICH_READ"],
"users": [{"named_user_id": "best_customer"}]
}
{
"device_types": ["ios"],
"latency": 300,
"notifications": {"push_id": "6626393d-5d42-4de5-a31d-e24e819876ac"},
"types": ["CLOSE"],
"users": [{"contact_id": "982B35f2-0375-6384-893e-a19b5cd5R771"}]
}
Example Predicate filter
{
"device_types": ["ios"],
"latency": 120000,
"notifications": {"push_id": "fae0658c-930e-4f66-bc78-80f46222bc8c"},
"types": ["OPEN", "SEND"],
"devices": [{"named_user_id": "VIP Customer"}]
}
{
"device_types": ["ios"],
"latency": 120000,
"notifications": {"push_id": "af03151e-5ad5-4e30-bbd2-bda28312b3c7"},
"types": ["RICH_READ"],
"users": [{"named_user_id": "best_customer"}]
}
{
"device_types": ["ios"],
"latency": 300,
"notifications": {"push_id": "6626393d-5d42-4de5-a31d-e24e819876ac"},
"types": ["CLOSE"],
"users": [{"contact_id": "982B35f2-0375-6384-893e-a19b5cd5R771"}]
}
{
"predicates": [
{
"and": [
{
"key": "type",
"value": {
"equals": "CUSTOM"
}
},
{
"scope": "body",
"key": "name",
"value": {
"equals": "initial_open"
}
}
]
}
]
}
An array of filter objects defining the events you want to see in the event stream. A filter object defines a function that either passes or fails an event. Events are included in the response if they pass any of the functions defined by the objects in the array.
In-app context
Example in-app context
{
"reporting_context": {
"content_types": [
"survey"
]
},
"state": {
"form": {
"form_identifier": "870db95f-3715-4c98-8047-2871c175d003",
"submitted": false,
"type": "nps",
"response_type": "nps"
},
"pager": {
"identifier": "9e051354-185b-4d4d-888a-885def2e6b7a",
"page_identifier": "992e5540-7144-474c-b666-2671814b3b19",
"page_index": 0,
"page_count": 2,
"completed": false
}
}
The context provides the view state when a button, pager, or form interaction occurs.
OBJECT PROPERTIES- reporting_context object
Describes the content types of the in-app automation. Can be expanded to provide any data for reporting.
OBJECT PROPERTIES- content_types array[string]
- state object
Can contain the current view state of pager and form.
OBJECT PROPERTIES- form objectOBJECT PROPERTIES
- form_identifier stringREQUIRED
Is the form controller identifier.
- response_type string
The type survey response type.
Possible values:
nps,user_feedback - submitted booleanREQUIRED
True if the form has been submitted.
- type string
The form type.
Possible values:
nps,form
- pager objectOBJECT PROPERTIES
- completed boolean
True if the user reached the end of the pager.
- identifier stringREQUIRED
Is the pager controller identifier.
- page_count numberREQUIRED
Total number of pages.
- page_identifier stringREQUIRED
The current page identifier.
- page_index numberREQUIRED
Is the current pager index.
Mobile-originated SMS event
Example mobile_originated_sms event body
{
"event_type": "mobile_originated_sms",
"identifiers": {
"sender": "15558675309",
"msisdn": "15558968663"
},
"properties": {
"inbound_message": "join",
"outbound_message": "Thanks for joining!",
"keyword": "join"
}
}
An event that occurs when a user sends a message from an SMS device, i.e., the message originates from a mobile device and not from the server (Airship). This event contains context related to the message’s origin, the incoming message itself, and Airship’s response to the origin.
OBJECT PROPERTIES- event_type stringREQUIRED
The specific
MOBILE_ORIGINATEDevent that occurred.Possible values:
mobile_originated_sms - identifiers objectREQUIRED
Contains the sender and MSISDN for the event.
OBJECT PROPERTIES- msisdn stringREQUIRED
The phone number of the user involved in the compliance event.
- sender stringREQUIRED
The phone number or short code of the sender involved in the compliance event.
- properties objectREQUIRED
Contains the mobile-originated message itself and the response to the message.
OBJECT PROPERTIES- inbound_message stringREQUIRED
The contents of the message received from an SMS device.
- keyword string
The specific keyword used in the inbound message, if recognized; the keyword in the
inbound_messagedetermines theoutbound_messagesent to the device. If a keyword could not be matched in theinbound_message, this field is absent. - outbound_message stringREQUIRED
The response sent to the SMS device, based on the inbound message and keyword.
Request subset
Subset `SAMPLE`
{
"type": "SAMPLE",
"proportion": 0.1
}
Subset `PARTITION`
{
"type": "SAMPLE",
"proportion": 0.1
}
{
"type": "PARTITION",
"count": 10,
"selection": 0
}
Use subsets to return a proportion of the event stream and not all events meeting your other criteria. The subset object defines the proportion of the event stream that you want to return.
- count integer
Required when the
typeisPARTITION. The value is the number of partitions you want to divide the event stream into. - proportion number
Required when the
typeisSAMPLE. Specifies the percentage of events that will appear in the response, chosen randomly. - selection integer
Required when the
typeisPARTITION. The value is the partition that you want to return in the response. Must be less thancount. - type string
The type of partition.
SAMPLEreturns a random sample of events; the sampleproportiondetermines the fraction of total events that Real-Time Data Streaming returns.PARTITIONsegments the event stream into a number of partitions (determined bycount) and returns a single partition in the event stream (determined byselection).
Possible values:
SAMPLE,PARTITION