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.
- The North American base URL for Airship’s Real-Time Data Streaming API
- 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.
HTTP Authentication
Basic Auth (Master)Authorization header containing the wordBasic
followed by a space and a Base64-encoded string generated from your App KeyThe unique identifier for your Airship project. It is used to authenticate the application for API calls. and Master SecretA secret that can be used as the Basic authorization password for any API call. Guard the Master Secret carefully, and never embed it in an application you distribute to users. inappKey:masterSecret
format. For example,Basic YXBwX2tleTptYXN0ZXJfc2VjcmV0
. This security type is only accepted by the Compliance endpoint.HTTP Authentication
Bearer TokenAuthorization header containing the wordBearer
followed 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
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
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
{
"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"
}
POST /api/events
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.
Airship will occasionally add:
New properties to existing objects.
New event types, which will be JSON objects with new values for the type field.
Your integration must be tolerant of these kinds of changes.
Security:
header PARAMETERSX-UA-Appkey : StringREQUIRED
The App Key for the app you want to return events from.
The application key.
Request Body
Content-Type: application/json
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.
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_updates
field in the request istrue
, then instead of a blank line, an event will be written with typeOFFSET_UPDATE
. These events have nobody
ordevice
field, and always haveoccurred
andprocessed
times indicating when they were sent. Theoffset
field 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_UPDATE
events 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 BODYContent-Type: application/vnd.urbanairship+x-ndjson; version=3;
One ofAttribute operation event
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.
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.
Compliance Event
Events relating to regulatory compliance for email and SMS channels.
All ofObject
OBJECT PROPERTIESid : StringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id
,type
,occurred
,device
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
- One of
Email bounce event
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.Email create-and-send event
An event that occurs for email addresses used as a part of a create-and-send message.
Email registration event
An event that occurs when users register to receive email messages.
Email unsubscribe event
A compliance event representing a user who unsubscribed from your email notifications.
SMS API initiated opt-in event
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 achannel_id
, you cannot send messages to this channel until the associated user completes the opt-in process (indicated by amobile_opt_in
event).SMS carrier deactivation event
Occurs when an MSISDN is deactivated by a carrier. This event type does not contain additional
properties
.SMS create-and-send event
An event that occurs for SMS channels used as a part of a create-and-send message.
SMS custom keyword response event
Occurs when a mobile-originated keyword is matched, and elicits a custom response.
SMS mobile create channel event
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.
SMS mobile keyword matched event
Occurs when a mobile-originated message contains a recognized keyword.
SMS mobile keyword unmatched event
Occurs when a mobile-originated message does not contain a recognized keyword.
SMS mobile opt in event
Occurs when a user opts in to text messages via a keyword.
SMS mobile opt out event
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.SMS opted out event
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
.SMS registration event
Occurs when a user opts in to receive SMS messages from you, via a call to the SMS registration API.
SMS update event
When an SMS event update occurs.
SMS uninstalled event
Occurs when the SMS uninstall API is called.
SMS mobile terminated message event
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.
Control
Occurs when a device is excluded from a push because it was arbitrarily selected as a member of a control group. Membership in a control group indicates what would’ve happened if you did not send a message to a user at all. This occurs for A/B Test-related pushes only.
Custom
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 byevent_type
).First open
This event occurs when a user opens an Airship-integrated app for the first time.
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.
In-app button tap
Occurs when a button is tapped within a SceneA single or multi-screen in-app experience cached on users’ devices and displayed when users meet certain conditions in your app or website, such as viewing a particular screen or when a Custom Event occurs. They can be presented in fullscreen, modal, or embedded format using the default swipe/click mode or as a Story. Scenes can also contain survey questions..
In-app message display
Occurs when an In-App AutomationMessages cached on users’ devices and displayed when users meet certain conditions within your app, such as viewing a particular screen or opening the app a certain number of times. or SceneA single or multi-screen in-app experience cached on users’ devices and displayed when users meet certain conditions in your app or website, such as viewing a particular screen or when a Custom Event occurs. They can be presented in fullscreen, modal, or embedded format using the default swipe/click mode or as a Story. Scenes can also contain survey questions. is displayed to a user. Because the event pertains to a specific device, the device information object will be populated.
In-app message expiration
Occurs when a new In-App AutomationMessages cached on users’ devices and displayed when users meet certain conditions within your app, such as viewing a particular screen or opening the app a certain number of times. or SceneA single or multi-screen in-app experience cached on users’ devices and displayed when users meet certain conditions in your app or website, such as viewing a particular screen or when a Custom Event occurs. They can be presented in fullscreen, modal, or embedded format using the default swipe/click mode or as a Story. Scenes can also contain survey questions. 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.
In-app message resolution
Occurs when an In-App AutomationMessages cached on users’ devices and displayed when users meet certain conditions within your app, such as viewing a particular screen or opening the app a certain number of times. or SceneA single or multi-screen in-app experience cached on users’ devices and displayed when users meet certain conditions in your app or website, such as viewing a particular screen or when a Custom Event occurs. They can be presented in fullscreen, modal, or embedded format using the default swipe/click mode or as a Story. Scenes can also contain survey questions. 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.
In-app page swipe
Occurs when a user swipes to the next or previous page (screen) in a pager (specific to ScenesA single or multi-screen in-app experience cached on users’ devices and displayed when users meet certain conditions in your app or website, such as viewing a particular screen or when a Custom Event occurs. They can be presented in fullscreen, modal, or embedded format using the default swipe/click mode or as a Story. Scenes can also contain survey questions.).
In-app page view
Occurs when a page (screen) is displayed within a pager (specific to ScenesA single or multi-screen in-app experience cached on users’ devices and displayed when users meet certain conditions in your app or website, such as viewing a particular screen or when a Custom Event occurs. They can be presented in fullscreen, modal, or embedded format using the default swipe/click mode or as a Story. Scenes can also contain survey questions.).
In-app pager completed
Occurs when the last page (screen) of a pager is viewed for the first time (specific to ScenesA single or multi-screen in-app experience cached on users’ devices and displayed when users meet certain conditions in your app or website, such as viewing a particular screen or when a Custom Event occurs. They can be presented in fullscreen, modal, or embedded format using the default swipe/click mode or as a Story. Scenes can also contain survey questions.).
In-app pager summary
Describes the full path a user took within a pager (specific to ScenesA single or multi-screen in-app experience cached on users’ devices and displayed when users meet certain conditions in your app or website, such as viewing a particular screen or when a Custom Event occurs. They can be presented in fullscreen, modal, or embedded format using the default swipe/click mode or as a Story. Scenes can also contain survey questions.), including the order of pages (screens) visited and time spent per page.
Location
An event declaring the device to be at a particular latitude and longitude.
Mobile originated event
Represents a message action that originated from a user — like an inbound SMS or email.
Open
Occurs when a user opens your app.
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 subsequentpush_body
events for the sequence unless you pause or publish changes to the sequence.Region event
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 theidentifiers
object.Rich control
Occurs when a Message CenterA place in your app where you can display persistent rich messages, including HTML, video, etc. Similar to email, Message Center represents both the medium (the in-app inbox) and the message type (the messages you send to the inbox). message is not delivered to a user because they are in a control group.
Rich delete
Occurs when a user deletes a Message CenterA place in your app where you can display persistent rich messages, including HTML, video, etc. Similar to email, Message Center represents both the medium (the in-app inbox) and the message type (the messages you send to the inbox). message from their inbox.
Rich delivery
Occurs when a Message CenterA place in your app where you can display persistent rich messages, including HTML, video, etc. Similar to email, Message Center represents both the medium (the in-app inbox) and the message type (the messages you send to the inbox). 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.
Rich read
Occurs when a user reads a Message CenterA place in your app where you can display persistent rich messages, including HTML, video, etc. Similar to email, Message Center represents both the medium (the in-app inbox) and the message type (the messages you send to the inbox). message in their inbox.
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.
Send
Occurs whenever a push notification is sent to a device identified in the audience selector of a message.
Send aborted
Occurs when a push is dropped from our system before delivery is attempted. This can happen:
- When using External Data FeedsA connection to an external API. When you send a message, Airship uses a response from that API to personalize messages. to personalize a message and an error was encountered or the feed returned a non-successful response
- When a Message LimitLimits that cap the number of messages you can send within a specified time frame, preventing you from over-messaging your users. They are set at the project level. is met
- When a Ban ListAn externally maintained record of users that should not be included in Airship message audiences. Before sending a message, Airship validates the audience members with the Ban List. Any matching recipients are dropped from the audience before sending the message. webhook issues a
drop
response for a user
Device information for the device that did not receive the push is included with
SEND_ABORTED
events.Send rejected
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.Short link click event
Occurs when a user taps or “clicks” an Airship-shortened link in an SMS or MMS message.
Subscription event
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.Subscription list event
Occurs when subscription list enrollment changes for a device or user.
Tag change
Occurs when tags change for a device.
Uninstall
Occurs when a user uninstalls an Airship-integrated app in response to a push.
Web click event
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.
Web session event
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 UA 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
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
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"
}
POST /api/events/general
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 is uses basic authorization (like API calls to https://go.urbanairship.com/api
)
Security:
header PARAMETERSX-UA-Appkey : StringREQUIRED
The App Key for the app you want to return compliance events for.
The application key.
Request Body
Content-Type: application/json
Compliance request
A 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
compliance
type, 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_updates
field in the request istrue
, then the blank line is replaced with anOFFSET_UPDATE
event. These events have nobody
ordevice
field, and always haveoccurred
andprocessed
times indicating when they were sent. Theoffset
field 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_UPDATE
events 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 BODYContent-Type: application/vnd.urbanairship+x-ndjson; version=3;
Events relating to regulatory compliance for email and SMS channels.
All ofObject
OBJECT PROPERTIESid : StringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id
,type
,occurred
,device
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
- One of
Email bounce event
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.Email create-and-send event
An event that occurs for email addresses used as a part of a create-and-send message.
Email registration event
An event that occurs when users register to receive email messages.
Email unsubscribe event
A compliance event representing a user who unsubscribed from your email notifications.
SMS API initiated opt-in event
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 achannel_id
, you cannot send messages to this channel until the associated user completes the opt-in process (indicated by amobile_opt_in
event).SMS carrier deactivation event
Occurs when an MSISDN is deactivated by a carrier. This event type does not contain additional
properties
.SMS create-and-send event
An event that occurs for SMS channels used as a part of a create-and-send message.
SMS custom keyword response event
Occurs when a mobile-originated keyword is matched, and elicits a custom response.
SMS mobile create channel event
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.
SMS mobile keyword matched event
Occurs when a mobile-originated message contains a recognized keyword.
SMS mobile keyword unmatched event
Occurs when a mobile-originated message does not contain a recognized keyword.
SMS mobile opt in event
Occurs when a user opts in to text messages via a keyword.
SMS mobile opt out event
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.SMS opted out event
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
.SMS registration event
Occurs when a user opts in to receive SMS messages from you, via a call to the SMS registration API.
SMS update event
When an SMS event update occurs.
SMS uninstalled event
Occurs when the SMS uninstall API is called.
SMS mobile terminated message event
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.
Data Formats
Events
Contains information about events organized by type
. Some events contain additional subtypes or device information.
Attribute operation event
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",
"connection_type": "WIFI",
"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"
}
},
"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 PROPERTIESbody : ObjectREQUIRED
Min properties: 1
OBJECT PROPERTIESremove : Array [Object]
The attributes removed from the
ARRAY ITEMdevice
in this event. Min items: 1- OBJECT PROPERTIES
key : StringREQUIRED
The attribute being removed.
- OBJECT PROPERTIES
set : Array [Object]
Min items: 1
ARRAY ITEMThe attributes set on the
OBJECT PROPERTIESdevice
in this event.key : StringREQUIRED
The attribute being set.
value : AnyREQUIRED
The value for the attribute.
One ofString
Number
device : AnyREQUIRED
One ofApp device information
Information about app users generated by the SDK.
Web device information
Information about web users generated by the SDK.
Device information for SMS and email
Information about the SMS or email device related to an event.
Open channel device information
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
Close
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",
"connection_type": "WIFI",
"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",
"carrier": "AT&T",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "10.2.0",
"location_permission": "ALWAYS_ALLOWED"
}
},
"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 PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESsession_id : String
Represents the “session” of user activity. Absent if the application was initialized while backgrounded. Format:
uuid
device : App device informationREQUIRED
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
Control
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"
},
"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. Membership in a control group indicates what would’ve happened if you did not send a message to a user at all. This occurs for A/B Test-related pushes only.
OBJECT PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIEScampaigns : 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 PROPERTIEScategories : 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.
Format:
uuid
push_id : String
A unique identifier for a push operation. Format:
uuid
device : AnyREQUIRED
One ofApp device information
Information about app users generated by the SDK.
Web device information
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
Custom
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": "",
"connection_type": "CELL",
"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",
"carrier": "Orange F",
"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)
{
"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)
{
"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
All ofSDK
or if the event is one of the defined email or SMS events (as defined byevent_type
).Object
OBJECT PROPERTIESid : StringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id
,type
,occurred
,device
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
Email delivery event
Occurs when the remote MTA (email server) acknowledges receipt of a message.
Email injection event
This event occurs when the provider (SparkPost) receives a message — typically when a member of the audience responds to an email.
Email open event
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).
Email delay event
Occurs when a mailbox provider temporarily rejects an email. In general, this event indicates that the provider will attempt to resend the message.
Email bounce event
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 similarCOMPLIANCE
event.Email click event
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.
Email unsubscribe link event
Occurs when a user clicks an unsubscribe link in an email you sent.
SMS delivery report
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.
General Custom Event : Object
OBJECT PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIEScustomer_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 UA 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 PROPERTIEScampaigns : 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 PROPERTIEScategories : 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.
Format:
uuid
push_id : StringREQUIRED
A unique identifier for a push operation. Format:
uuid
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. Max properties: 100
session_id : String
Represents the “session” of user activity. Absent if the application was initialized while backgrounded. Format:
uuid
source : StringREQUIRED
The event source.
SDK
indicates an event sent from the UA SDK.API
indicates 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 : Associated push
The push that caused the Custom Event. Absent if a causal relationship to a push cannot be established.
value : Number
Populated if the event is associated with a count or amount. Airship treats this field as a representation of money. The
value
field respects six digits of precision to the right of the decimal point.
device : ObjectREQUIRED
Device information related to the event. Either the
OBJECT PROPERTIESchannel
ornamed_user_id
is required. Thenamed_user_id
is required for Custom Events sent via the API, elsechannel
is 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 UserA customer-provided identifier used for mapping multiple devices and channels to a specific individual. identifier for a device.
Feature Flag interaction event
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
OBJECT PROPERTIESeligible
field, which indicates whether or not the user was in the Feature Flag audience and had access to the feature.body : ObjectREQUIRED
OBJECT PROPERTIESeligible : BooleanREQUIRED
Indicates whether or not the user was in the Feature Flag audience and had access to the feature.
true
means 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.
device : AnyREQUIRED
One ofApp device information
Information about app users generated by the SDK.
Web device information
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
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 PROPERTIESdevice : AnyREQUIRED
One ofApp device information
Information about app users generated by the SDK.
Web device information
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
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 PROPERTIESdevice : AnyREQUIRED
One ofDevice information for SMS and email
Information about the SMS or email device related to an event.
Open channel device information
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
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",
"connection_type": "WIFI",
"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",
"carrier": "AT&T",
"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 SceneA single or multi-screen in-app experience cached on users’ devices and displayed when users meet certain conditions in your app or website, such as viewing a particular screen or when a Custom Event occurs. They can be presented in fullscreen, modal, or embedded format using the default swipe/click mode or as a Story. Scenes can also contain survey questions..
OBJECT PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESapp_defined_id : String
An identifier defined by the application if the in-app button tap was created by the application logic, not the UA system. If this field is present, the event body will not contain
push_id
,group_id
,variant_id
, ortriggering_push
fields.button_id : String
A unique identifier for the button.
context : 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.
Format:
uuid
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. Format:
uuid
session_id : String
Represents the “session” of user activity. Absent if the application was initialized while backgrounded. Format:
uuid
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 : Associated push
Appears if the user began the current session by opening a push notification.
device : App device informationREQUIRED
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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_BUTTON_TAP
In-app experiences
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",
"connection_type": "WIFI",
"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",
"carrier": "AT&T",
"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 SceneA single or multi-screen in-app experience cached on users’ devices and displayed when users meet certain conditions in your app or website, such as viewing a particular screen or when a Custom Event occurs. They can be presented in fullscreen, modal, or embedded format using the default swipe/click mode or as a Story. Scenes can also contain survey questions.. 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 PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESapp_defined_id : String
An identifier defined by the application if the in-app message was created by the application logic, not the UA system. If this field is present, the event body will not contain
push_id
,group_id
,variant_id
, ortriggering_push
fields.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 PROPERTIEScategories : 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.
Format:
uuid
push_id : String
A unique identifier for a push operation. Format:
uuid
session_id : String
Represents the “session” of user activity. Absent if the application was initialized while backgrounded. Format:
uuid
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 : Associated push
Present if the user started the current session by opening a push notification.
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 : App device informationREQUIRED
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
In-app form display
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",
"connection_type": "WIFI",
"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",
"carrier": "AT&T",
"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 SceneA single or multi-screen in-app experience cached on users’ devices and displayed when users meet certain conditions in your app or website, such as viewing a particular screen or when a Custom Event occurs. They can be presented in fullscreen, modal, or embedded format using the default swipe/click mode or as a Story. Scenes can also contain survey questions. is displayed.
OBJECT PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESapp_defined_id : String
An identifier defined by the application if the in-app form was created by the application logic, not the UA system. If this field is present, the event body will not contain
push_id
,group_id
,variant_id
, ortriggering_push
fields.context : In-app context
The context provides the view state when a button, pager, or form interaction occurs.
forms : Object
OBJECT PROPERTIESform_id : String
The identifier of the form controller (required). Format:
uuid
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.
Format:
uuid
push_id : String
A unique identifier for a push operation. Format:
uuid
session_id : String
Represents the “session” of user activity. Absent if the application was initialized while backgrounded. Format:
uuid
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 : Associated push
Present if the user started the current session by opening a push notification.
type : String
Required for this type, the value is always
DISPLAY
.Possible values:
DISPLAY
device : App device informationREQUIRED
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
In-app form result
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",
"connection_type": "WIFI",
"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",
"carrier": "AT&T",
"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 SceneA single or multi-screen in-app experience cached on users’ devices and displayed when users meet certain conditions in your app or website, such as viewing a particular screen or when a Custom Event occurs. They can be presented in fullscreen, modal, or embedded format using the default swipe/click mode or as a Story. Scenes can also contain survey questions. is submitted.
OBJECT PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESapp_defined_id : String
An identifier defined by the application if the in-app form was created by the application logic, not the UA system. If this field is present, the event body will not contain
push_id
,group_id
,variant_id
, ortriggering_push
fields.context : In-app context
The context provides the view state when a button, pager, or form interaction occurs.
forms : Object
OBJECT PROPERTIESform_id : String
The identifier of the form controller (required). Format:
uuid
nps : Object
OBJECT PROPERTIESaudience_category : StringREQUIRED
The NPS category.
Possible values:
PROMOTER
,PASSIVE
,DETRACTOR
question_id : StringREQUIRED
The question identifier. Format:
uuid
score : NumberREQUIRED
A number between 0 and 10.
response_type : String
The survey response type.
Possible values:
nps
,user_feedback
responses : Object
OBJECT PROPERTIESquestion_id : StringREQUIRED
The question identifier. Format:
uuid
type : StringREQUIRED
The question type.
Possible values:
single_choice
,text_input
,multiple_choice
value : ObjectREQUIRED
Can be UUID if its a
single_choice
ormultiple_choice
question, and text if it’s an input text.
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.
Format:
uuid
push_id : String
A unique identifier for a push operation. Format:
uuid
session_id : String
Represents the “session” of user activity. Absent if the application was initialized while backgrounded. Format:
uuid
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 : Associated push
Present if the user started the current session by opening a push notification.
type : String
Required for this type, the value is always
RESULT
.Possible values:
RESULT
device : App device informationREQUIRED
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
In-app message control
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": "",
"connection_type": "WIFI",
"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 AutomationMessages cached on users’ devices and displayed when users meet certain conditions within your app, such as viewing a particular screen or opening the app a certain number of times. or SceneA single or multi-screen in-app experience cached on users’ devices and displayed when users meet certain conditions in your app or website, such as viewing a particular screen or when a Custom Event occurs. They can be presented in fullscreen, modal, or embedded format using the default swipe/click mode or as a Story. Scenes can also contain survey questions. is not delivered because the targeted user’s contact or Channel ID was part of a control group.
OBJECT PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESapp_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_push
fields.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.
Format:
uuid
push_id : String
A unique identifier for a push operation. Format:
uuid
session_id : String
Represents the “session” of user activity. Absent if the application was initialized while backgrounded. Format:
uuid
time_sent : String
The date-time when the in-app message payload was sent to the device.
triggering_push : Associated push
Appears if the user began the current session by opening a push notification.
type : String
Indicates that the in-app message was never delivered because the user was part of an experiment control group.
CONTROL
indicates 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).
device : App device informationREQUIRED
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
In-app message display
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",
"connection_type": "WIFI",
"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",
"carrier": "AT&T",
"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": "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": "",
"connection_type": "CELL",
"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",
"carrier": "F-Bouygues Telecom",
"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 AutomationMessages cached on users’ devices and displayed when users meet certain conditions within your app, such as viewing a particular screen or opening the app a certain number of times. or SceneA single or multi-screen in-app experience cached on users’ devices and displayed when users meet certain conditions in your app or website, such as viewing a particular screen or when a Custom Event occurs. They can be presented in fullscreen, modal, or embedded format using the default swipe/click mode or as a Story. Scenes can also contain survey questions. is displayed to a user. Because the event pertains to a specific device, the device information object will be populated.
OBJECT PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESapp_defined_id : String
An identifier defined by the application if the in-app message was created by the application logic, not the UA system. If this field is present, the event body will not contain
push_id
,group_id
,variant_id
, ortriggering_push
fields.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 PROPERTIEScategories : Array [String]
context : 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.
Format:
uuid
push_id : String
A unique identifier for a push operation. Format:
uuid
session_id : String
Represents the “session” of user activity. Absent if the application was initialized while backgrounded. Format:
uuid
triggering_push : Associated push
Appears if the user began the current session by opening a push notification.
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 : App device informationREQUIRED
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
In-app message exclusion
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": "",
"connection_type": "WIFI",
"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",
"carrier": "AT&T",
"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 AutomationMessages cached on users’ devices and displayed when users meet certain conditions within your app, such as viewing a particular screen or opening the app a certain number of times. or SceneA single or multi-screen in-app experience cached on users’ devices and displayed when users meet certain conditions in your app or website, such as viewing a particular screen or when a Custom Event occurs. They can be presented in fullscreen, modal, or embedded format using the default swipe/click mode or as a Story. Scenes can also contain survey questions. is not displayed on a device because the user was banned. See Ban ListAn externally maintained record of users that should not be included in Airship message audiences. Before sending a message, Airship validates the audience members with the Ban List. Any matching recipients are dropped from the audience before sending the message..
OBJECT PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESapp_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_push
fields.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.
Format:
uuid
push_id : String
A unique identifier for a push operation. Format:
uuid
session_id : String
Represents the “session” of user activity. Absent if the application was initialized while backgrounded. Format:
uuid
time_sent : String
The date-time when the in-app message payload was sent to the device.
triggering_push : Associated push
Appears if the user began the current session by opening a push notification.
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 ListAn externally maintained record of users that should not be included in Airship message audiences. Before sending a message, Airship validates the audience members with the Ban List. Any matching recipients are dropped from the audience before sending the message.. 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).
device : App device informationREQUIRED
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
In-app message expiration
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",
"connection_type": "WIFI",
"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",
"carrier": "Android",
"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 AutomationMessages cached on users’ devices and displayed when users meet certain conditions within your app, such as viewing a particular screen or opening the app a certain number of times. or SceneA single or multi-screen in-app experience cached on users’ devices and displayed when users meet certain conditions in your app or website, such as viewing a particular screen or when a Custom Event occurs. They can be presented in fullscreen, modal, or embedded format using the default swipe/click mode or as a Story. Scenes can also contain survey questions. 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 PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESapp_defined_id : String
An identifier defined by the application if the in-app message was created by the application logic, not the UA system. If this field is present, the event body will not contain
push_id
,group_id
,variant_id
, ortriggering_push
fields.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.
Format:
uuid
push_id : String
A unique identifier for a push operation. Format:
uuid
replacing_push : Associated push
An associated push object for the in-app message that replaced the message. Present if
type
isREPLACED
.session_id : String
Represents the “session” of user activity. Absent if the application was initialized while backgrounded. Format:
uuid
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 : Associated push
Appears if the user began the current session by opening a push notification.
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_push
key will be present.EXPIRED
: The in-app message exceeded its expiration date. If type isEXPIRED
, then thetime
key 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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
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",
"connection_type": "WIFI",
"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",
"carrier": "Android",
"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": "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": "",
"connection_type": "WIFI",
"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",
"carrier": "AT&T",
"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 AutomationMessages cached on users’ devices and displayed when users meet certain conditions within your app, such as viewing a particular screen or opening the app a certain number of times. or SceneA single or multi-screen in-app experience cached on users’ devices and displayed when users meet certain conditions in your app or website, such as viewing a particular screen or when a Custom Event occurs. They can be presented in fullscreen, modal, or embedded format using the default swipe/click mode or as a Story. Scenes can also contain survey questions. 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 PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESapp_defined_id : String
An identifier defined by the application if the in-app message was created by the application logic, not the UA system. If this field is present, the event body will not contain
push_id
,group_id
,variant_id
, ortriggering_push
fields.button_description : String
The title of the button the user interacted with. Present if
type
is set toBUTTON_CLICK
.button_group : String
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.
button_id : String
A unique identifier for the button. Present if
type
is 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 PROPERTIEScategories : Array [String]
context : 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. Format:
milliseconds
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.
Format:
uuid
push_id : String
A unique identifier for a push operation. Format:
uuid
session_id : String
Represents the “session” of user activity. Absent if the application was initialized while backgrounded. Format:
uuid
time_sent : String
The date-time when the in-app message payload was sent to the device.
triggering_push : Associated push
Appears if the user began the current session by opening a push notification.
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/tappedX
to 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).
device : App device informationREQUIRED
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
In-app page swipe
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",
"connection_type": "WIFI",
"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",
"carrier": "AT&T",
"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 ScenesA single or multi-screen in-app experience cached on users’ devices and displayed when users meet certain conditions in your app or website, such as viewing a particular screen or when a Custom Event occurs. They can be presented in fullscreen, modal, or embedded format using the default swipe/click mode or as a Story. Scenes can also contain survey questions.).
OBJECT PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESapp_defined_id : String
An identifier defined by the application if the in-app pager was created by the application logic, not the UA system. If this field is present, the event body will not contain
push_id
,group_id
,variant_id
, ortriggering_push
fields.context : 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. Format:
uuid
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.
Format:
uuid
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. Format:
uuid
push_id : String
A unique identifier for a push operation. Format:
uuid
session_id : String
Represents the “session” of user activity. Absent if the application was initialized while backgrounded. Format:
uuid
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. Format:
uuid
to_page_index : Number
Is the current page index.
triggering_push : Associated push
Present if the user started the current session by opening a push notification.
device : App device informationREQUIRED
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
In-app page view
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",
"connection_type": "WIFI",
"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",
"carrier": "AT&T",
"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 ScenesA single or multi-screen in-app experience cached on users’ devices and displayed when users meet certain conditions in your app or website, such as viewing a particular screen or when a Custom Event occurs. They can be presented in fullscreen, modal, or embedded format using the default swipe/click mode or as a Story. Scenes can also contain survey questions.).
OBJECT PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESapp_defined_id : String
An identifier defined by the application if the in-app pager was created by the application logic, not the UA system. If this field is present, the event body will not contain
push_id
,group_id
,variant_id
, ortriggering_push
fields.completed : Boolean
True if the user reached the end of the pager.
context : 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.
Format:
uuid
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. Format:
uuid
page_index : Number
Is the current pager index.
pager_identifier : String
Is the pager controller identifier. Format:
uuid
push_id : String
A unique identifier for a push operation. Format:
uuid
session_id : String
Represents the “session” of user activity. Absent if the application was initialized while backgrounded. Format:
uuid
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 : Associated push
Present if the user started the current session by opening a push notification.
viewed_count : Number
Number of times the current page has been viewed.
device : App device informationREQUIRED
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
In-app pager completed
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",
"connection_type": "WIFI",
"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",
"carrier": "AT&T",
"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 ScenesA single or multi-screen in-app experience cached on users’ devices and displayed when users meet certain conditions in your app or website, such as viewing a particular screen or when a Custom Event occurs. They can be presented in fullscreen, modal, or embedded format using the default swipe/click mode or as a Story. Scenes can also contain survey questions.).
OBJECT PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESapp_defined_id : String
An identifier defined by the application if the in-app pager was created by the application logic, not the UA system. If this field is present, the event body will not contain
push_id
,group_id
,variant_id
, ortriggering_push
fields.context : 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.
Format:
uuid
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. Format:
uuid
page_index : Number
Is the current pager index.
pager_identifier : String
Is the pager controller identifier. Format:
uuid
push_id : String
A unique identifier for a push operation. Format:
uuid
session_id : String
Represents the “session” of user activity. Absent if the application was initialized while backgrounded. Format:
uuid
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 : Associated push
Present if the user started the current session by opening a push notification.
device : App device informationREQUIRED
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
In-app pager summary
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",
"connection_type": "WIFI",
"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",
"carrier": "AT&T",
"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 ScenesA single or multi-screen in-app experience cached on users’ devices and displayed when users meet certain conditions in your app or website, such as viewing a particular screen or when a Custom Event occurs. They can be presented in fullscreen, modal, or embedded format using the default swipe/click mode or as a Story. Scenes can also contain survey questions.), including the order of pages (screens) visited and time spent per page.
OBJECT PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESapp_defined_id : String
An identifier defined by the application if the in-app pager was created by the application logic, not the UA system. If this field is present, the event body will not contain
push_id
,group_id
,variant_id
, ortriggering_push
fields.completed : Boolean
True if the user reached the end of the pager.
context : 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.
Format:
uuid
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. Format:
uuid
pager_identifier : String
Is the pager controller identifier. Format:
uuid
push_id : String
A unique identifier for a push operation. Format:
uuid
session_id : String
Represents the “session” of user activity. Absent if the application was initialized while backgrounded. Format:
uuid
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 : Associated push
Present if the user started the current session by opening a push notification.
viewed_pages : Object
OBJECT PROPERTIESdisplay_time_ms : Number
Is how long the page was displayed in milliseconds. Format:
milliseconds
page_identifier : String
The current page identifier. Format:
uuid
page_index : Number
The current page index.
device : App device informationREQUIRED
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
Location
LocationDEPRECATED
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",
"connection_type": "WIFI",
"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",
"carrier": "Android",
"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 PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESforeground : 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. Format:
uuid
device : App device informationREQUIRED
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
Mobile originated event
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 PROPERTIESbody : Mobile-originated SMS eventREQUIRED
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.
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. Format:
msisdn
device_type : StringREQUIRED
SMS compliance events use the
SMS
device type.Possible values:
SMS
identifiers : Object
If present, the
OBJECT PROPERTIESidentifiers
object holds the value for thesender
property.sender : StringREQUIRED
The sender that the
delivery_address
received 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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
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",
"connection_type": "WIFI",
"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",
"carrier": "Android",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "9.7.0",
"location_permission": "ALWAYS_ALLOWED"
}
},
"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 PROPERTIESbody : Object
OBJECT PROPERTIESlast_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 PROPERTIEScampaigns : 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 PROPERTIEScategories : 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.
Format:
uuid
push_id : StringREQUIRED
A unique identifier for a push operation. Format:
uuid
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. Format:
uuid
triggering_push : 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.
device : 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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
Push body
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
OBJECT PROPERTIESpush_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 subsequentpush_body
events for the sequence unless you pause or publish changes to the sequence.body : Object
OBJECT PROPERTIEScampaigns : 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 PROPERTIEScategories : 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.
Format:
uuid
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. Format:
uuid
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
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",
"connection_type": "WIFI",
"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",
"carrier": "Android",
"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
OBJECT PROPERTIEScom.urbanairship.gimbal.aii
within theidentifiers
object.body : ObjectREQUIRED
OBJECT PROPERTIESaction : 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. Format:
uuid
session_id : String
Represents the “session” of user activity. Absent if the application was initialized while backgrounded. Format:
uuid
source_info : ObjectREQUIRED
Information about the source application that generated the event.
OBJECT PROPERTIESregion_id : String
The unique region identifier from the originating system.
source : String
Identifies the system that the event originated from.
device : App device informationREQUIRED
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
Rich control
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"
},
"body" : {
"push_id" : "62fd4bac-a85a-0e18-00b4-9e59339bece5",
"group_id" : "da16d1c2-7d8f-9ade-ff14-05ce696ba042"
},
"type" : "RICH_CONTROL"
}
Occurs when a Message CenterA place in your app where you can display persistent rich messages, including HTML, video, etc. Similar to email, Message Center represents both the medium (the in-app inbox) and the message type (the messages you send to the inbox). message is not delivered to a user because they are in a control group.
OBJECT PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESgroup_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.
Format:
uuid
push_id : String
A unique identifier for a push operation. Format:
uuid
device : App device informationREQUIRED
Information about app users generated by the SDK.
experiment_id : String
ID for the requested experiment. Format:
uuid
id : StringREQUIRED
Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same
id
,type
,occurred
,device
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
Rich delete
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",
"connection_type": "CELL",
"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",
"carrier": "Three",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "10.2.0",
"location_permission": "FOREGROUND_ALLOWED"
}
},
"body": {
"push_id": "1bf2A1a1-4069-11e9-abf1-024297609801"
},
"type": "RICH_DELETE"
}
Occurs when a user deletes a Message CenterA place in your app where you can display persistent rich messages, including HTML, video, etc. Similar to email, Message Center represents both the medium (the in-app inbox) and the message type (the messages you send to the inbox). message from their inbox.
OBJECT PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESgroup_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.
Format:
uuid
push_id : String
A unique identifier for a push operation. Format:
uuid
device : App device informationREQUIRED
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
Rich delivery
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"
},
"body": {
"push_id": "1a7d774c-1659-4104-b594-2f7ec739c92d"
},
"type": "RICH_DELIVERY"
}
Occurs when a Message CenterA place in your app where you can display persistent rich messages, including HTML, video, etc. Similar to email, Message Center represents both the medium (the in-app inbox) and the message type (the messages you send to the inbox). 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 PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESgroup_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.
Format:
uuid
push_id : String
A unique identifier for a push operation. Format:
uuid
device : App device informationREQUIRED
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
Rich read
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",
"connection_type": "CELL",
"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",
"carrier": "Three",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "10.2.0",
"location_permission": "FOREGROUND_ALLOWED"
}
},
"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 CenterA place in your app where you can display persistent rich messages, including HTML, video, etc. Similar to email, Message Center represents both the medium (the in-app inbox) and the message type (the messages you send to the inbox). message in their inbox.
OBJECT PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESgroup_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.
Format:
uuid
push_id : String
A unique identifier for a push operation. Format:
uuid
device : App device informationREQUIRED
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
Screen viewed
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",
"connection_type": "WIFI",
"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 PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESduration : Integer
The number of milliseconds that the user was on the screen. Format:
milliseconds
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. Format:
uuid
viewed_screen : String
The name assigned to the screen that the user left.
device : App device informationREQUIRED
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
Send
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",
"connection_type": "CELL",
"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",
"carrier": "Three",
"locale_language_code": "en",
"location_enabled": "false",
"background_push_enabled": "true",
"ua_sdk_version": "10.2.0",
"location_permission": "FOREGROUND_ALLOWED"
}
},
"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 PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESalerting : 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 PROPERTIEScategories : 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 PROPERTIESevent_uuid : StringREQUIRED
The ID of the Custom Event which triggered the send. Format:
uuid
interaction_id : String
If
interaction_id
was set on the Custom Event body, it will be populated here.transaction : String
If
transaction
was set on the Custom Event body, it will be populated here.triggered_by : StringREQUIRED
The triggering event type.
Possible values:
custom_event
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.
Format:
uuid
open_tracking : Boolean
If true, email open events will be reported.
push_id : StringREQUIRED
A unique identifier for a push operation. Format:
uuid
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 : AnyREQUIRED
One ofApp device information
Information about app users generated by the SDK.
Web device information
Information about web users generated by the SDK.
Device information for SMS and email
Information about the SMS or email device related to an event.
Open channel device information
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
Send aborted
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_BANNED_RESPONSE"
}
}
Occurs when a push is dropped from our system before delivery is attempted. This can happen:
- When using External Data FeedsA connection to an external API. When you send a message, Airship uses a response from that API to personalize messages. to personalize a message and an error was encountered or the feed returned a non-successful response
- When a Message LimitLimits that cap the number of messages you can send within a specified time frame, preventing you from over-messaging your users. They are set at the project level. is met
- When a Ban ListAn externally maintained record of users that should not be included in Airship message audiences. Before sending a message, Airship validates the audience members with the Ban List. Any matching recipients are dropped from the audience before sending the message. webhook issues a
drop
response for a user
Device information for the device that did not receive the push is included with
OBJECT PROPERTIESSEND_ABORTED
events.body : ObjectREQUIRED
OBJECT PROPERTIEScampaigns : 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 PROPERTIEScategories : 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.
Format:
uuid
push_id : StringREQUIRED
A unique identifier for a push operation. Format:
uuid
reason : StringREQUIRED
Describes the reason this push was aborted.
FEED_BANNED_RESPONSE
: The response from the endpoint indicated a channel was banned. See Ban ListAn externally maintained record of users that should not be included in Airship message audiences. Before sending a message, Airship validates the audience members with the Ban List. Any matching recipients are dropped from the audience before sending the message..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 LimitLimits that cap the number of messages you can send within a specified time frame, preventing you from over-messaging your users. They are set at the project level. retrieval failed.FREQUENCY_LIMIT_REACHED
: A Message LimitLimits that cap the number of messages you can send within a specified time frame, preventing you from over-messaging your users. They are set at the project level. 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
device : App device informationREQUIRED
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
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
OBJECT PROPERTIESSEND_REJECTED
events.body : ObjectREQUIRED
OBJECT PROPERTIEScampaigns : 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 PROPERTIEScategories : 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.
Format:
uuid
push_id : StringREQUIRED
A unique identifier for a push operation. Format:
uuid
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).
device : App device informationREQUIRED
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
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 PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIEScampaigns : 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 PROPERTIEScategories : 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.
Format:
uuid
properties : ObjectREQUIRED
OBJECT PROPERTIESoriginal_url : StringREQUIRED
The URL represented by the Airship-shortened link.
push_id : StringREQUIRED
A unique identifier for a push operation. Format:
uuid
device : ObjectREQUIRED
OBJECT PROPERTIESattributes : Object
OBJECT PROPERTIESweb_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 : Object
OBJECT PROPERTIESsender : 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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
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"
}
OBJECT PROPERTIESSUBSCRIPTION
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 : ObjectREQUIRED
OBJECT PROPERTIESevent_type : StringREQUIRED
Determines the source of the subscription event.
registration
andcreate_and_send
events result in changes toopted_in
dates; all other event types containopted_out
dates.registration
: Represents a change to a user’scommercial_opted_in
,transactional_opted_in
,click_tracking_opted_in
, oropen_tracking_opted_in
dates.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 theunsubscribe
button in their email client.link_unsubscribe
: The user clicked anunsubscribe
hyperlink 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_id
specified 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 PROPERTIEScanceled : 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 : Object
OBJECT PROPERTIESclick_tracking_opted_in : String
Format:
date-time
click_tracking_opted_out : String
Format:
date-time
commercial_opted_in : String
Format:
date-time
commercial_opted_out : String
Format:
date-time
open_tracking_opted_in : String
Format:
date-time
open_tracking_opted_out : String
Format:
date-time
transactional_opted_in : String
Format:
date-time
transactional_opted_out : String
Format:
date-time
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
EMAIL
device 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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
Subscription list event
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"
},
"body": {
"enrolled": ["cool_deals"]
},
"type": "SUBSCRIPTION_LIST"
}
Occurs when subscription list enrollment changes for a device or user.
OBJECT PROPERTIESbody : ObjectREQUIRED
Changes to a device or user’s subscription list membership.
OBJECT PROPERTIEScanceled : 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 : AnyREQUIRED
One ofApp device information
Information about app users generated by the SDK.
Web device information without `attributes` : Object
Information about web users in tag change events.
OBJECT PROPERTIESchannel : 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.
Device information for SMS and email
Information about the SMS or email device related to an event.
Open channel device information
Information about open channel users.
Named User
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
Tag change
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",
},
"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 PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESadd : 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 : AnyREQUIRED
One ofApp device information
Information about app users generated by the SDK.
Web device information without `attributes` : Object
Information about web users in tag change events.
OBJECT PROPERTIESchannel : 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.
Device information for SMS and email
Information about the SMS or email device related to an event.
Open channel device information
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
Uninstall
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 PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESdecay : BooleanREQUIRED
If true, Airship recorded an uninstall event due to user inactivity.
device : AnyREQUIRED
One ofApp device information
Information about app users generated by the SDK.
Web device information
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
Web click event
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 PROPERTIESbody : Associated pushREQUIRED
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 agroup_id
if the push was sent at a relative time (best_time
orlocal_time
) an automation pipeline, or another operation resulting in multiplepush_id
s.device : ObjectREQUIRED
Information about web users generated by the SDK.
OBJECT PROPERTIESattributes : Object
OBJECT PROPERTIESiana_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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
Web session event
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 PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESlast_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 PROPERTIEScampaigns : 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 PROPERTIEScategories : 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.
Format:
uuid
push_id : StringREQUIRED
A unique identifier for a push operation. Format:
uuid
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. Format:
uuid
triggering_push : Associated push
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 agroup_id
if the push was sent at a relative time (best_time
orlocal_time
) an automation pipeline, or another operation resulting in multiplepush_id
s.
device : Web device informationREQUIRED
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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
Email compliance events
Contains event body information specific to email compliance events.
Email bounce event
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
OBJECT PROPERTIESbounce_class
can provide more information about why the message bounced.body : ObjectREQUIRED
Contains the event subtype and additional properties about the event.
OBJECT PROPERTIESevent_type : StringREQUIRED
Possible values:
bounce
identifiers : ObjectREQUIRED
OBJECT PROPERTIESaddress : String
The email address registered.
properties : ObjectREQUIRED
OBJECT PROPERTIESbounce_class : Integer
The bounce classification as specified in Sparkpost. Max: 100 Min: 1
bounce_event_type : String
Possible values:
bounce
email : String
The email address that bounced. Format:
email
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
EMAIL
device 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
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 message.
OBJECT PROPERTIESbody : ObjectREQUIRED
Contains the event subtype and additional properties about the event.
OBJECT PROPERTIESevent_type : StringREQUIRED
Possible values:
create_and_send
identifiers : ObjectREQUIRED
OBJECT PROPERTIESaddress : StringREQUIRED
The email address a message was sent to using the create-and-send (inline list) feature.
properties : ObjectREQUIRED
Properties for an email create-and-send event.
OBJECT PROPERTIESchannel_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
address
opted into commercial email messages.transactional_opted_in : String
The date and time when the
address
opted 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
EMAIL
device 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
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 PROPERTIESbody : ObjectREQUIRED
Contains the event subtype and additional properties about the event.
OBJECT PROPERTIESevent_type : StringREQUIRED
Possible values:
registration
identifiers : ObjectREQUIRED
OBJECT PROPERTIESaddress : String
The email address registered.
properties : ObjectREQUIRED
OBJECT PROPERTIEScommercial_opted_in : String
The date and time when the user opted into commercial email messages.
registration_type : StringREQUIRED
create
indicates that a channel was created in Airship.update
represents aPUT
call 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
EMAIL
device 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
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 PROPERTIESbody : ObjectREQUIRED
Contains the event subtype and additional properties about the event.
OBJECT PROPERTIESevent_type : StringREQUIRED
Unsubscribe events are considered
registration
events; theregistration_type
indicates the type of registration occurring.Possible values:
registration
identifiers : ObjectREQUIRED
OBJECT PROPERTIESaddress : String
The email address registered.
properties : ObjectREQUIRED
OBJECT PROPERTIESmessage_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
EMAIL
device 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.
SMS compliance events
Contains event body information specific to SMS compliance events.
SMS API initiated opt-in event
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
OBJECT PROPERTIESopted_in
value — indicating that the user has initiated, but not completed, the registration process. While this event contains achannel_id
, you cannot send messages to this channel until the associated user completes the opt-in process (indicated by amobile_opt_in
event).body : ObjectREQUIRED
Contains the event subtype, identifiers, and additional properties about the event.
OBJECT PROPERTIESevent_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 PROPERTIESmsisdn : 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. Format:
msisdn
device_type : StringREQUIRED
SMS compliance events use the
SMS
device type.Possible values:
SMS
identifiers : Object
If present, the
OBJECT PROPERTIESidentifiers
object holds the value for thesender
property.sender : StringREQUIRED
The sender that the
delivery_address
received a message from.
SMS carrier deactivation event
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
OBJECT PROPERTIESproperties
.body : ObjectREQUIRED
Contains the event subtype, identifiers, and additional properties about the event.
OBJECT PROPERTIESevent_type : StringREQUIRED
The carrier deactivated the address.
Possible values:
carrier_deactivation
identifiers : ObjectREQUIRED
Contains the sender and MSISDN for the event.
OBJECT PROPERTIESmsisdn : 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
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 PROPERTIESbody : ObjectREQUIRED
Contains the event subtype, identifiers, and additional properties about the event.
OBJECT PROPERTIESevent_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 PROPERTIESmsisdn : 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
keyword
if 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. Format:
msisdn
device_type : StringREQUIRED
SMS compliance events use the
SMS
device type.Possible values:
SMS
identifiers : Object
If present, the
OBJECT PROPERTIESidentifiers
object holds the value for thesender
property.sender : StringREQUIRED
The sender that the
delivery_address
received a message from.
SMS mobile create channel event
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 PROPERTIESbody : ObjectREQUIRED
Contains the event subtype, identifiers, and additional properties about the event.
OBJECT PROPERTIESevent_type : StringREQUIRED
Indicates that a channel for the
sms
event type was created.Possible values:
mobile_create_channel
identifiers : ObjectREQUIRED
Contains the sender and MSISDN for the event.
OBJECT PROPERTIESmsisdn : 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. Format:
msisdn
device_type : StringREQUIRED
SMS compliance events use the
SMS
device type.Possible values:
SMS
identifiers : Object
If present, the
OBJECT PROPERTIESidentifiers
object holds the value for thesender
property.sender : StringREQUIRED
The sender that the
delivery_address
received a message from.
SMS mobile keyword matched event
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 PROPERTIESbody : ObjectREQUIRED
Contains the event subtype, identifiers, and additional properties about the event.
OBJECT PROPERTIESevent_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 PROPERTIESmsisdn : 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
keyword
if 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. Format:
msisdn
device_type : StringREQUIRED
SMS compliance events use the
SMS
device type.Possible values:
SMS
identifiers : Object
If present, the
OBJECT PROPERTIESidentifiers
object holds the value for thesender
property.sender : StringREQUIRED
The sender that the
delivery_address
received a message from.
SMS mobile keyword unmatched event
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 PROPERTIESbody : ObjectREQUIRED
Contains the event subtype, identifiers, and additional properties about the event.
OBJECT PROPERTIESevent_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 PROPERTIESmsisdn : 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
keyword
if 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. Format:
msisdn
device_type : StringREQUIRED
SMS compliance events use the
SMS
device type.Possible values:
SMS
identifiers : Object
If present, the
OBJECT PROPERTIESidentifiers
object holds the value for thesender
property.sender : StringREQUIRED
The sender that the
delivery_address
received a message from.
SMS mobile opt in event
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 PROPERTIESbody : ObjectREQUIRED
Contains the event subtype, identifiers, and additional properties about the event.
OBJECT PROPERTIESevent_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 PROPERTIESmsisdn : 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
keyword
if 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. Format:
msisdn
device_type : StringREQUIRED
SMS compliance events use the
SMS
device type.Possible values:
SMS
identifiers : Object
If present, the
OBJECT PROPERTIESidentifiers
object holds the value for thesender
property.sender : StringREQUIRED
The sender that the
delivery_address
received a message from.
SMS mobile opt out event
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
OBJECT PROPERTIESmobile_keyword_matched
event.body : ObjectREQUIRED
Contains the event subtype, identifiers, and additional properties about the event.
OBJECT PROPERTIESevent_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 PROPERTIESmsisdn : 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
keyword
if 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. Format:
msisdn
device_type : StringREQUIRED
SMS compliance events use the
SMS
device type.Possible values:
SMS
identifiers : Object
If present, the
OBJECT PROPERTIESidentifiers
object holds the value for thesender
property.sender : StringREQUIRED
The sender that the
delivery_address
received a message from.
SMS mobile terminated message event
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 PROPERTIESbody : ObjectREQUIRED
Contains the Compliance event subtype and properties specific to the event subtype.
OBJECT PROPERTIESevent_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 PROPERTIESmsisdn : 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. Format:
msisdn
device_type : StringREQUIRED
SMS compliance events use the
SMS
device type.Possible values:
SMS
identifiers : Object
If present, the
OBJECT PROPERTIESidentifiers
object holds the value for thesender
property.sender : StringREQUIRED
The sender that the
delivery_address
received a message from.
SMS opted out event
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
All ofproperties
.Object
OBJECT PROPERTIESdevice : 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. Format:
msisdn
device_type : StringREQUIRED
SMS compliance events use the
SMS
device type.Possible values:
SMS
identifiers : Object
If present, the
OBJECT PROPERTIESidentifiers
object holds the value for thesender
property.sender : StringREQUIRED
The sender that the
delivery_address
received 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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
OBJECT PROPERTIESbody : ObjectREQUIRED
Contains the event subtype, identifiers, and additional properties about the event.
OBJECT PROPERTIESevent_type : StringREQUIRED
The address opted out of notifications.
Possible values:
opted_out
identifiers : ObjectREQUIRED
Contains the sender and MSISDN for the event.
OBJECT PROPERTIESmsisdn : 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
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 message.
OBJECT PROPERTIESbody : ObjectREQUIRED
Contains the event subtype and additional properties about the event.
OBJECT PROPERTIESevent_type : StringREQUIRED
Possible values:
create_and_send
identifiers : ObjectREQUIRED
Contains the sender and MSISDN for the event.
OBJECT PROPERTIESmsisdn : 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 PROPERTIESchannel_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
msisdn
opted 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. Format:
msisdn
device_type : StringREQUIRED
SMS compliance events use the
SMS
device type.Possible values:
SMS
identifiers : Object
If present, the
OBJECT PROPERTIESidentifiers
object holds the value for thesender
property.sender : StringREQUIRED
The sender that the
delivery_address
received a message from.
SMS registration event
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 PROPERTIESbody : ObjectREQUIRED
Contains the event subtype, identifiers, and additional properties about the event.
OBJECT PROPERTIESevent_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 PROPERTIESmsisdn : 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. Format:
msisdn
device_type : StringREQUIRED
SMS compliance events use the
SMS
device type.Possible values:
SMS
identifiers : Object
If present, the
OBJECT PROPERTIESidentifiers
object holds the value for thesender
property.sender : StringREQUIRED
The sender that the
delivery_address
received a message from.
SMS update event
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 PROPERTIESbody : ObjectREQUIRED
Contains the event subtype, identifiers, and additional properties about the event.
OBJECT PROPERTIESevent_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 PROPERTIESmsisdn : 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. Format:
msisdn
device_type : StringREQUIRED
SMS compliance events use the
SMS
device type.Possible values:
SMS
identifiers : Object
If present, the
OBJECT PROPERTIESidentifiers
object holds the value for thesender
property.sender : StringREQUIRED
The sender that the
delivery_address
received a message from.
SMS uninstalled event
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 PROPERTIESbody : ObjectREQUIRED
Contains the event subtype, identifiers, and additional properties about the event.
OBJECT PROPERTIESevent_type : StringREQUIRED
The address was uninstalled.
Possible values:
uninstall
identifiers : ObjectREQUIRED
Contains the sender and MSISDN for the event.
OBJECT PROPERTIESmsisdn : 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. Format:
msisdn
device_type : StringREQUIRED
SMS compliance events use the
SMS
device type.Possible values:
SMS
identifiers : Object
If present, the
OBJECT PROPERTIESidentifiers
object holds the value for thesender
property.sender : StringREQUIRED
The sender that the
delivery_address
received a message from.
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
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
OBJECT PROPERTIESbounce_class
provides additional information about the reason your message bounced. This event occurs in conjunction with a similarCOMPLIANCE
event.body : ObjectREQUIRED
OBJECT PROPERTIESname : StringREQUIRED
Possible values:
bounce
properties : ObjectREQUIRED
All ofObject
OBJECT PROPERTIESemail : 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
OBJECT PROPERTIESbounce_class : String
A number between 1 and 100 that represents the specific reason the email bounced. Format:
(100)|[1-9]\d?
bounce_event_type : String
Possible values:
bounce
session_id : String
Represents the “session” of user activity. Absent if the application was initialized while backgrounded. Format:
uuid
source : StringREQUIRED
Possible values:
API
triggering_push : Associated pushREQUIRED
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 agroup_id
if the push was sent at a relative time (best_time
orlocal_time
) an automation pipeline, or another operation resulting in multiplepush_id
s.
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
EMAIL
device 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
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 PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESname : StringREQUIRED
Possible values:
click
properties : ObjectREQUIRED
All ofObject
OBJECT PROPERTIESemail : 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
OBJECT PROPERTIESlink_name : String
The name of the link, if set.
link_url : String
The URL of the link that the user clicked.
Object
OBJECT PROPERTIESagent_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.
session_id : String
Represents the “session” of user activity. Absent if the application was initialized while backgrounded. Format:
uuid
source : StringREQUIRED
Possible values:
API
triggering_push : Associated pushREQUIRED
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 agroup_id
if the push was sent at a relative time (best_time
orlocal_time
) an automation pipeline, or another operation resulting in multiplepush_id
s.
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
EMAIL
device 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
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 PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESname : StringREQUIRED
Possible values:
delay
properties : ObjectREQUIRED
OBJECT PROPERTIESemail : 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. Format:
uuid
source : StringREQUIRED
Possible values:
API
triggering_push : Associated pushREQUIRED
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 agroup_id
if the push was sent at a relative time (best_time
orlocal_time
) an automation pipeline, or another operation resulting in multiplepush_id
s.
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
EMAIL
device 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
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 PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESname : StringREQUIRED
Possible values:
delivery
properties : ObjectREQUIRED
OBJECT PROPERTIESemail : 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. Format:
uuid
source : StringREQUIRED
Possible values:
API
triggering_push : Associated pushREQUIRED
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 agroup_id
if the push was sent at a relative time (best_time
orlocal_time
) an automation pipeline, or another operation resulting in multiplepush_id
s.
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
EMAIL
device 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
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 PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESname : StringREQUIRED
Possible values:
initial_open
properties : ObjectREQUIRED
All ofObject
OBJECT PROPERTIESemail : 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
OBJECT PROPERTIESagent_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.
session_id : String
Represents the “session” of user activity. Absent if the application was initialized while backgrounded. Format:
uuid
source : StringREQUIRED
Possible values:
API
triggering_push : Associated pushREQUIRED
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 agroup_id
if the push was sent at a relative time (best_time
orlocal_time
) an automation pipeline, or another operation resulting in multiplepush_id
s.
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
EMAIL
device 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
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 PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESname : StringREQUIRED
Possible values:
injection
properties : ObjectREQUIRED
OBJECT PROPERTIESemail : 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. Format:
uuid
source : StringREQUIRED
Possible values:
API
triggering_push : Associated pushREQUIRED
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 agroup_id
if the push was sent at a relative time (best_time
orlocal_time
) an automation pipeline, or another operation resulting in multiplepush_id
s.
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
EMAIL
device 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
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 PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESname : StringREQUIRED
Possible values:
open
properties : ObjectREQUIRED
All ofObject
OBJECT PROPERTIESemail : 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
OBJECT PROPERTIESagent_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.
session_id : String
Represents the “session” of user activity. Absent if the application was initialized while backgrounded. Format:
uuid
source : StringREQUIRED
Possible values:
API
triggering_push : Associated pushREQUIRED
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 agroup_id
if the push was sent at a relative time (best_time
orlocal_time
) an automation pipeline, or another operation resulting in multiplepush_id
s.
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
EMAIL
device 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
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 PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESname : StringREQUIRED
Possible values:
unsubscribe
properties : ObjectREQUIRED
OBJECT PROPERTIESunsubscribe_event_type : String
Possible values:
link_unsubscribe
session_id : String
Represents the “session” of user activity. Absent if the application was initialized while backgrounded. Format:
uuid
source : StringREQUIRED
Possible values:
API
triggering_push : Associated pushREQUIRED
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 agroup_id
if the push was sent at a relative time (best_time
orlocal_time
) an automation pipeline, or another operation resulting in multiplepush_id
s.
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
EMAIL
device 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.
Device information
Events are ascribed to devices. App, web, SMS, email, and open channel devices
return different information.
App device 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": "9D55CAC8-79E3-4567-8A99-8465B7A12868",
"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 PROPERTIESamazon_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 PROPERTIESapp_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 : String
The wireless carrier used by the device.
connection_type : String
The internet connection type used by the device.
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_DISABLED
Location is disabled in system settingsNOT_ALLOWED
Android: missing manifest permissions, iOS: opted outALWAYS_ALLOWED
Android: has manifest permissions, iOS: opted in background and foregroundFOREGROUND_ALLOWED
iOS 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 PROPERTIEScom.urbanairship.aaid : String
Android/Fire OS ad identifier Format:
uuid
com.urbanairship.gimbal.aii : String
Gimbal application instance identifier Format:
uuid
com.urbanairship.idfa : String
Apple ad identifier Format:
uuid
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 Format:
uuid
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
Named User
User information for events which occur at the user level.
OBJECT PROPERTIESnamed_user_id : StringREQUIRED
The Named User identifier for the device.
Open channel device information
Open channel device information
Information about open channel users.
OBJECT PROPERTIESchannel : 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_type
is set toOPEN
, this field shows the full name of the platform.
Device information for SMS and email
Device information for SMS and email
Information about the SMS or email device related to an event.
OBJECT PROPERTIESchannel : StringREQUIRED
The channel identifier.
delivery_address : String
- If
device_type
isSMS
, this field shows the MSISDN. - If
device_type
isEMAIL
, 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
Web device information
Information about web users generated by the SDK.
OBJECT PROPERTIESattributes : Object
OBJECT PROPERTIESiana_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.
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
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 PROPERTIESbody : ObjectREQUIRED
OBJECT PROPERTIESinteraction_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 : AnyREQUIRED
One ofSMS Delivery Properties : Object
A delivery report for SMS.
OBJECT PROPERTIESerror_code : String
An error code from the short message service center, if applicable.
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 PROPERTIEScarrier_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_status
isN102
.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 PROPERTIEScampaigns : 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 PROPERTIEScategories : 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.
Format:
uuid
push_id : StringREQUIRED
A unique identifier for a push operation. Format:
uuid
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_report
interaction 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
, andbody
values but differentoffset
andprocessed
values. You should use theid
to 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
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
OBJECT PROPERTIEStime
, if the push was a singular operation sent at a defined time. Otherwise, the object will include agroup_id
if the push was sent at a relative time (best_time
orlocal_time
) an automation pipeline, or another operation resulting in multiplepush_id
s.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 PROPERTIEScategories : 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.
Format:
uuid
push_id : StringREQUIRED
A unique identifier for a push operation. Format:
uuid
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
OBJECT PROPERTIES/api/events
, but has a limited scope.filters : Array [Compliance request filters]
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_offset
ifstart
is absent.start : String
Specifies that the stream should start at the beginning or the end of the application’s data window. Only specify
start
ifresume_offset
is absent.Possible values:
EARLIEST
,LATEST
subset : Request subset
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.
Compliance request filters
Example compliance request filter
{
"device_types": ["email"],
"latency": 120000,
}
- OBJECT PROPERTIES
device_types : Array [String]
Returns events pertaining to devices on the specified platforms.
ARRAY ITEMPossible values:
email
,sms
latency : Integer
The number of milliseconds between the current time and when the event(s) you want to return occurred. If an event occurred more than
latency
milliseconds ago, it is filtered out of the event stream. Format:milliseconds
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 PROPERTIESfilters : 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_offset
ifstart
is absent.start : String
Specifies that the stream should start at the beginning or the end of the application’s data window. Only specify
start
ifresume_offset
is absent.Possible values:
EARLIEST
,LATEST
subset : Request subset
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.
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"}]
}
Example Predicate filter
{
"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.
ARRAY ITEM- OBJECT PROPERTIES
device_types : Array [String]
Returns events pertaining to devices on the specified platforms.
ARRAY ITEMPossible values:
android
,ios
,amazon
,web
,email
,sms
,open
devices : Array [Any]
Limits the stream to events relating to specific device attributes.
ARRAY ITEM- Any of
Object
OBJECT PROPERTIESchannel : String
The unique, platform-agnostic channel identifier for a device.
Object
OBJECT PROPERTIESnamed_user_id : String
The Named User for a device. The event stream will return events pertaining to the Named User.
- Any of
latency : Integer
The number of milliseconds between the current time and when the event(s) you want to return occurred. If an event occurred more than
latency
milliseconds ago, it is filtered out of the event stream. Format:milliseconds
notifications : Any
Limits the stream to events related to one or more specific pushes. This allows you to easily track the events generated by a given push or pipeline. In this object, you should only specify one of
One ofpush_id
orgroup_id
. Child pushes may be included in the returned stream. If they are, they will have a Group ID relating them back to the push to local time or automation specification that spawned them.Push ID : Object
OBJECT PROPERTIESpush_id : String
The push you want to return events for.
Group ID : Object
OBJECT PROPERTIESgroup_id : String
The group you want to return events for.
predicates : Array [JSON Predicate]
Limits events to a subset of the event payload.
types : Array [String]
Specifies the event types you want to return in the event stream.
ARRAY ITEMPossible values:
ATTRIBUTE_OPERATION
,CLOSE
,COMPLIANCE
,CONTROL
,CUSTOM
,FEATURE_FLAG_INTERACTION
,FIRST_OPEN
,FIRST_OPT_IN
,IN_APP_BUTTON_TAP
,IN_APP_EXPERIENCES
,IN_APP_FORM_DISPLAY
,IN_APP_FORM_RESULT
,IN_APP_MESSAGE_CONTROL
,IN_APP_MESSAGE_DISPLAY
,IN_APP_MESSAGE_EXCLUSION
,IN_APP_MESSAGE_EXPIRATION
,IN_APP_MESSAGE_RESOLUTION
,IN_APP_PAGE_SWIPE
,IN_APP_PAGE_VIEW
,IN_APP_PAGER_COMPLETED
,IN_APP_PAGER_SUMMARY
,LOCATION
,MOBILE_ORIGINATED
,OPEN
,PUSH_BODY
,REGION
,RICH_CONTROL
,RICH_DELETE
,RICH_DELIVERY
,RICH_READ
,SCREEN_VIEWED
,SEND
,SEND_ABORTED
,SEND_REJECTED
,SHORT_LINK_CLICK
,SUBSCRIPTION
,SUBSCRIPTION_LIST
,TAG_CHANGE
,UNINSTALL
,WEB_CLICK
,WEB_SESSION
- OBJECT PROPERTIES
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 PROPERTIESreporting_context : Object
Describes the content types of the in-app automation. Can be expanded to provide any data for reporting.
OBJECT PROPERTIEScontent_types : Array [String]
ARRAY ITEMPossible values:
scene
,survey
state : Object
Can contain the current view state of pager and form.
OBJECT PROPERTIESform : Object
OBJECT PROPERTIESform_identifier : StringREQUIRED
Is the form controller identifier. Format:
uuid
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 : Object
OBJECT PROPERTIEScompleted : Boolean
True if the user reached the end of the pager.
identifier : StringREQUIRED
Is the pager controller identifier. Format:
uuid
page_count : NumberREQUIRED
Total number of pages.
page_identifier : StringREQUIRED
The current page identifier. Format:
uuid
page_index : NumberREQUIRED
Is the current pager index.
JSON Predicate
An object that will either match against a given JSON object or fail to match.
One ofAnd : Object
OBJECT PROPERTIESand : Array [JSON Predicate]
Or : Object
OBJECT PROPERTIESor : Array [JSON Predicate]
Not : Object
OBJECT PROPERTIESnot : JSON Predicate
An object that will either match against a given JSON object or fail to match.
Value : Object
OBJECT PROPERTIESkey : StringREQUIRED
The name of the value being matched.
scope : Any
The path into a JSON object.
One ofString
Array [String]
ARRAY ITEM
value : AnyREQUIRED
This object is part of the JSON Predicate.
One ofString
OBJECT PROPERTIESequals : String
A string that the value must match.
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 PROPERTIESevent_type : StringREQUIRED
The specific
MOBILE_ORIGINATED
event that occurred.Possible values:
mobile_originated_sms
identifiers : ObjectREQUIRED
Contains the sender and MSISDN for the event.
OBJECT PROPERTIESmsisdn : 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 PROPERTIESinbound_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_message
determines theoutbound_message
sent 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": "PARTITION",
"count": 10,
"selection": 0
}
Use subsets to return a proportion of the event stream and not all events meeting your other criteria. The
OBJECT PROPERTIESsubset
object defines the proportion of the event stream that you want to return.count : Integer
Required when the
type
isPARTITION
. The value is the number of partitions you want to divide the event stream into.proportion : Number
Required when the
type
isSAMPLE
. Specifies the percentage of events that will appear in the response, chosen randomly. Format:float
Max: 1selection : Integer
Required when the
type
isPARTITION
. The value is the partition that you want to return in the response. Must be less thancount
.type : String
The type of partition.
SAMPLE
returns a random sample of events; the sampleproportion
determines the fraction of total events that Real-Time Data Streaming returns.PARTITION
segments 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
Categories