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 100GB worth of data, whichever comes first.
Base URL
Select the domain (.com or .eu/asnapieu.com) 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
HTTP Authentication
Basic AuthAuthorization header containing the wordBasic
followed by a space and a Base64-encoded string generated from your app key and master secret, e.g.,Basic YXBwX2tleTptYXN0ZXJfc2VjcmV0
. This security type is only accepted by the compliance endpoint.HTTP Authentication
Bearer AuthThe authorization header containing your Bearer token, which can be obtained from Airship when configuring a direct integration. Tokens may be revoked at will.
Event Stream
Opens an event stream to your filter specifications.
Open an Event Stream
Connect 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"
}
}
Example 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"}
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 Body
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 an in-app button is tapped within a scene or survey.
In-App Message Display
Occurs when an in-app message 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 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 Message 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 (currently specific to Scenes).
In-App Page View
Occurs when a page (screen) is displayed within a pager (currently specific to Scenes & Surveys).
In-App Pager Completed
Occurs when the last page (screen) of a pager is viewed for the first time (currently specific to Scenes & Surveys).
In-App Pager Summary
Describes the full path a user took within a pager (currently specific to Scenes and Surveys), 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 Delete
Occurs when a user deletes a rich message from their inbox.
Rich Delivery
Occurs when a rich 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 rich 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 if you are using External Data Feeds to personalize a message and an error was encountered or the feed returned a non-successful response, or when reaching a Message Limit.
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
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
}
Example 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 Body
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
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
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
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
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. 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
), or an interactive notification (ua_interactive_notification
).Possible values:
ua_mcrap
,ua_landing_page
,ua_interactive_notification
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 [Server Side Custom Events API]/api/ua/#server-side-custom-events.Possible values:
SDK
,API
transaction : String
If the event is one in a series representing a single transaction, use the value in this field to tie events together.
triggering_push : Object
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).
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
OBJECT PROPERTIESchannel : 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
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 feature flag. Feature Flag Interaction events have a flag ID and flag name, which provide information about the feature flag that a user interacted with. The event also has an
OBJECT PROPERTIESeligible
field, which indicates whether or not the user was eligible for a feature flag.body : ObjectREQUIRED
OBJECT PROPERTIESeligible : BooleanREQUIRED
Indicates whether or not a user was eligible for a feature flag.
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
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
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
Example In-App Button Tap
{
"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 an in-app button is tapped within a scene or survey.
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 : Object
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).
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 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]
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
Current possible values are
nps
oruser_feedback
.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.
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 scene or survey.
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
Name of experiences 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 : Object
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).
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
Example In-App Form Display
{
"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 an in-app form (currently specific to surveys) 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 : Object
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).
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
Example In-App Form Result
{
"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 an in-app form (currently specific to surveys) 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
Current possible values are
PROMOTER
,PASSIVE
, orDETRACTOR
.Possible values:
PROMOTER
,PASSIVE
,DETRACTOR
question_id : StringREQUIRED
The question identifier. Format:
uuid
score : NumberREQUIRED
A number between 0 and 10.
response_type : String
Current possible values are
nps
oruser_feedback
.Possible values:
nps
,user_feedback
responses : Object
OBJECT PROPERTIESquestion_id : StringREQUIRED
The question identifier. Format:
uuid
type : StringREQUIRED
Current possible values are
single_choice
,text_input
, ormultiple_choice
.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. Either
nps
orform
.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 : Object
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).
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
Example In-App Control
{
"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.urbanairship.richpush",
"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 a message 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 : Object
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).
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
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 message 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 : Object
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).
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 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 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 : Object
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).
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 : Object
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).
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
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 Message 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 : Object
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).
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
Example In-App Page Swipe
{
"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 (currently specific to Scenes).
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 : Object
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).
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
Example In-App Page View
{
"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 (currently specific to Scenes & Surveys).
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 : Object
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).
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
Example In-App Pager Completed
{
"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 (currently specific to Scenes & Surveys).
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 : Object
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).
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
Example In-App Pager Summary
{
"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 (currently specific to Scenes and Surveys), 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 : Object
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).
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
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
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 : ObjectREQUIRED
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.
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 list 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
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 : Object
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).
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
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
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
Occurs when a rich 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
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.
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
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 rich 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
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:
RICH_DELETE
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 rich 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
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:
RICH_DELIVERY
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 rich 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
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:
RICH_READ
Screen Viewed
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": {
"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
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.
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
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"
}
}
Occurs when a push is dropped from our system before delivery is attempted. This can happen if you are using External Data Feeds to personalize a message and an error was encountered or the feed returned a non-successful response, or when reaching a Message Limit.
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.
Possible values:
FEED_RESOLVE_FAILURE
,FEED_REQUEST_REJECTED
,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
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
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
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
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
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
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
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 : ObjectREQUIRED
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).
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
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 : Object
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).
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
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 Body
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
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
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
Example 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 list 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
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
Example 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 list 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
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 list 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
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 list 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
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 list 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
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 list 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
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 list 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
Example 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 list 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
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 list 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
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 list 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
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 list 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
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 list 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
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 list 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
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 : ObjectREQUIRED
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).
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
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": "Click here for baseball updates",
"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. 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 link text that the user clicked.
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 : ObjectREQUIRED
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).
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
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": "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 : ObjectREQUIRED
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).
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
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 : ObjectREQUIRED
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).
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
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 : ObjectREQUIRED
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).
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
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 : ObjectREQUIRED
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).
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
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 : ObjectREQUIRED
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).
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
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 : ObjectREQUIRED
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).
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
Information about app users generated by the SDK.
OBJECT PROPERTIESamazon_channel : String
The identifier for an Amazon 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 PROPERTIES