Events

Contains information about events organized by type. Some events contain additional subtypes or device information.

Attribute 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.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • remove array[object]

      The attributes removed from the device in this event.

    • set array[object]
  • device objectREQUIRED
    One of
    • Information about app users generated by the SDK.

    • Information about web users generated by the SDK.

    • Information about the SMS or email device related to an event.

    • Information about open channel users.

  • id stringREQUIRED

    Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same id, type, occurred, device, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Used in:

Examples

Example Attribute operation event

{
  "id": "00000173-bb88-8804-b6ec-a40f4ae36648",
  "offset": "1000059326194",
  "occurred": "2020-08-04T22:12:33.924Z",
  "processed": "2020-08-04T22:12:37.672Z",
  "device": {
      "android_channel": "b57f0e3c-da10-4a2b-99d2-5fe2cb30cad3",
      "channel": "b57f0e3c-da10-4a2b-99d2-5fe2cb30cad3",
      "device_type": "ANDROID",
      "named_user_id": "cool_user",
      "attributes": {
        "locale_variant": "",
        "app_version": "2020-02-10T222436-staging",
        "device_model": "Pixel 2 XL",
        "app_package_name": "com.company_name.app_name",
        "iana_timezone": "America/Los_Angeles",
        "push_opt_in": "true",
        "locale_country_code": "US",
        "device_os": "10",
        "locale_timezone": "-25200",
        "locale_language_code": "en",
        "location_enabled": "false",
        "background_push_enabled": "true",
        "ua_sdk_version": "12.2.0",
        "location_permission": "NOT_ALLOWED"
      }
  },
  "user": {
    "contact_id": "6b5ca2a2-c1f1-4119-9617-2d5bff0db09d",
    "named_user_id": "cool_user"
  },
  "body": {
      "set": [
        {
            "key": "first_name",
            "value": "Pierre"
        }
      ]
  },
  "type": "ATTRIBUTE_OPERATION"
}

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.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • session_id string

      Represents the “session” of user activity. Absent if the application was initialized while backgrounded.

  • device object<App device information>REQUIRED

    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, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Used in:

Examples

Example close event

{
  "id": "51dd7c1c-5621-11e9-9601-0242539d70ef",
  "offset": "1000022467557",
  "occurred": "2019-03-29T21:42:21.245Z",
  "processed": "2019-04-03T15:10:23.828Z",
  "device": {
    "ios_channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
    "channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
    "device_type": "IOS",
    "named_user_id": "cooluser",
    "identifiers": {
      "com.urbanairship.limited_ad_tracking_enabled": "true",
      "session_id": "B147E0CE-272E-4047-A79C-30D02A2F213D",
      "GA_CID": "a61448e1-be63-43ee-84eb-19446ba743f0",
      "com.urbanairship.idfa": "A76E6F83-4F4A-47E2-BFDD-72BED91D2D1F",
      "com.urbanairship.vendor": "ED496B1A-43F1-45A9-A7C1-80125DE8A5B1"
    },
    "attributes": {
      "locale_variant": "",
      "app_version": "542",
      "device_model": "iPhone7,2",
      "app_package_name": "com.company_name.app_name",
      "iana_timezone": "America/Los_Angeles",
      "push_opt_in": "true",
      "locale_country_code": "US",
      "device_os": "11.4",
      "locale_timezone": "-25200",
      "locale_language_code": "en",
      "location_enabled": "false",
      "background_push_enabled": "true",
      "ua_sdk_version": "10.2.0",
      "location_permission": "ALWAYS_ALLOWED"
    }
  },
  "user": {
    "contact_id": "982B35f2-0375-6384-893e-a19b5cd5R771"
  },
  "body": {
    "session_id": "61acb6c9-527b-4632-b789-a3e6085b094e"
  },
  "type": "CLOSE"
}

Contact change

Occurs when a contact is uninstalled, associated with a channel or Named User, or dissociated from a channel or Named User.

Jump to examples ↓

OBJECT PROPERTIES
  • body object
    OBJECT PROPERTIES
    • change_type string

      Describes the reason the contact change event was emitted.

      • ASSOCIATION: The contact was associated to a channel or Named User.
      • DISSOCIATION: The contact was dissociated from a channel or Named User.
      • UNINSTALL: The contact was uninstalled.

      Possible values: ASSOCIATION, DISSOCIATION, UNINSTALL

    • channel_id string

      The ID of the channel that was associated or dissociated from the contact, depending on the change event type.

    • contact_id string

      The ID of the contact related to the change event.

    • named_user_id string

      An optional string that represents the Named User ID related to the change event.

  • device object<App device information>

    Information about app users generated by the SDK.

  • id string

    Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same id, type, occurred, device, and body values but different offset and processed values. You should use the id 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: CONTACT_CHANGE

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Used in:

Examples

Example contact change event

{
  "id": "fe882bd1-e0b9-11ea-bc35-0242f70dd9ff",
  "offset": "1000076075647",
  "occurred": "2024-09-25T19:03:13.903Z",
  "processed": "2024-09-25T19:03:14.426Z",
  "user": {
    "contact_id": "6b5ca2a2-c1f1-4119-9617-2d5bff0db09d",
    "named_user_id": "mini_me"
  },
  "device": {
    "ios_channel": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
    "channel": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
    "device_type": "IOS"
  },
  "body": {
    "change_type": "DISSOCIATION",
    "contact_id": "6b5ca2a2-c1f1-4119-9617-2d5bff0db09d",
    "named_user_id": "mini_me",
    "channel_id": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
  },
  "type": "CONTACT_CHANGE"
}

Control

Occurs when a device is excluded from a push because it was arbitrarily selected as a member of a control group for a Message A/B test, Sequence A/B test, or Holdout Experiment.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • campaigns object

      An object listing the campaigns a push specification is associated with. The campaigns object includes an array of categories that must have between 1 and 10 elements, each of which is a string with a 64-byte and -character limit.

      OBJECT PROPERTIES
      • categories array[string]
    • experiment_id string

      The unique identifier for the Message A/B test or Holdout Experiment.

    • group_id string

      Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.

    • push_id string

      A unique identifier for a push operation.

  • device objectREQUIRED
    One of
    • Information about app users generated by the SDK.

    • Information about web users generated by the SDK.

  • experiment_id string

    The unique identifier for the Message A/B test or Holdout Experiment.

  • id stringREQUIRED

    Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same id, type, occurred, device, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Used in:

Examples

Example control event

{
  "id" : "ff76bb85-74bc-4511-a3bf-11b6117784db",
  "type": "CONTROL",
  "offset": "MTIzNQ",
  "occurred": "2015-05-03T02:32:12.088Z",
  "processed": "2015-05-03T12:12:43.180Z",
  "device": {
      "channel":"a61448e1-be63-43ee-84eb-19446ba743f0",
      "device_type":"ANDROID",
      "android_channel": "a61448e1-be63-43ee-84eb-19446ba743f0"
    },
  "user": {
      "contact_id": "6b5ca2a2-c1f1-4119-9617-2d5bff0db09d",
      "named_user_id": "mini_me"
    },
  "body:" {
    "push_id": "c91d9e1b-605f-4bad-a45d-cdf3e6e0773f",
    "group_id": "3eec7de4-4b19-436e-ad15-88278f9ddb82"
    }
  }

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 by event_type).

Jump to examples ↓

All of
  • OBJECT PROPERTIES
    • id stringREQUIRED

      Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same id, type, occurred, device, and body values but different offset and processed values. You should use the id 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
    • Occurs when the remote MTA (email server) acknowledges receipt of a message.

    • This event occurs when the provider (SparkPost) receives a message — typically when a member of the audience responds to an email.

    • Occurs when a recipient opens an email, rendering a tracking pixel at the bottom of the message. If a message is truncated by a client or email provider, a user may have to open it in a separate window to render the tracking pixel (and register this event).

    • Occurs when a mailbox provider temporarily rejects an email. In general, this event indicates that the provider will attempt to resend the message.

    • Occurs when an email could not be delivered to an address. The bounce_class provides additional information about the reason your message bounced. This event occurs in conjunction with a similar COMPLIANCE event.

    • Occurs when a recipient clicks a tracked link in a message. Tracked links are redirected through the provider’s click-tracking server to record the event. Only HTTP and HTTPS links are tracked. Unsubscribe link clicks do not trigger this event.

    • Occurs when a user clicks an unsubscribe link in an email you sent.

    • Delivery reports are Custom Events sent from our third-party SMS providers. These events report the status of your message between the provider and your audience up to, and including, delivery.

    • Read reports are Custom Events sent when an RCS message is marked as read. These events use the delivery_report interaction type with a name of read. See RCS branded senders.

    • General Custom Event object
      OBJECT PROPERTIES
      • body objectREQUIRED
        OBJECT PROPERTIES
        • customer_id string

          An external customer-side ID, such as an email address. Absent if empty.

        • interaction_id string

          An Airship identifier uniquely identifying the interaction. May be absent.

        • interaction_type string

          The type of interaction as set by the Airship SDK. Values determine whether the interaction triggered an event from the Message Center (ua_mcrap), a landing page (ua_landing_page), an interactive notification (ua_interactive_notification), or a button tap (ua_button_tap).

          Button tap events with custom names are in the format ua_button_tap-<custom name>. For example, for a button action with custom name Cat socks55, the event name is ua_button_tap-Cat socks55. See Buttons and images: App in Actions in the WYSIWYG editor.

          Possible values: ua_mcrap, ua_landing_page, ua_interactive_notification, ua_button_tap, ua_button_tap-<custom name>

        • last_delivered object

          Identifies the last push notification the audience received before the event. Absent if the last push occurred more than 12 hours ago.

          OBJECT PROPERTIES
          • campaigns object

            An object listing the campaigns a push specification is associated with. The campaigns object includes an array of categories that must have between 1 and 10 elements, each of which is a string with a 64-byte and -character limit.

            OBJECT PROPERTIES
            • categories array[string]
          • group_id string

            Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.

          • push_id stringREQUIRED

            A unique identifier for a push operation.

          • time string

            The UTC time when the push occurred.

          • variant_id integer

            The ID of the variant that a push is associated with, if the push was a part of an A/B test (experiment).

        • name stringREQUIRED

          A plain-text name given to the event.

        • properties object

          Supports up to 100 key/value pairs that describe Custom Event properties. If the event has no custom properties, this field is absent.

        • session_id string

          Represents the “session” of user activity. Absent if the application was initialized while backgrounded.

        • source stringREQUIRED

          The event source. SDK indicates an event sent from the Airship SDK. API indicates an event created by request against the Custom Events API.

          Possible values: SDK, API

        • transaction string

          If the event is one in a series representing a single transaction, use the value in this field to tie events together.

        • triggering_push object<Associated push>

          The push that caused the Custom Event. Absent if a causal relationship to a push cannot be established.

          The specific push_id and accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.

          An associated push object may specify a time, if the push was a singular operation sent at a defined time. Otherwise, the object will include a group_id if the push was sent at a relative time (best_time or local_time) an automation pipeline, or another operation resulting in multiple push_ids.

        • value number

          Populated if the event is associated with a count or amount. Airship treats this field as a representation of money. The value field respects six digits of precision to the right of the decimal point.

      • device objectREQUIRED

        Device information related to the event. Either the channel or named_user_id is required. The named_user_id is required for Custom Events sent via the API, else channel is required.

        OBJECT PROPERTIES
        • channel stringREQUIRED

          The unique, platform-agnostic channel identifier for a device.

        • device_type stringREQUIRED

          The type of device the event was generated from.

          Possible values: OPEN, WEB, ANDROID, IOS, AMAZON, EMAIL, SMS

        • named_user_id string

          The Named User identifier for a device.

Used in:

Examples

Example Custom Event (entire payload on Android channel)

{
  "id": "4f42e8d0-a010-11ee-ae53-000000a91ace",
  "offset": "1009810398823",
  "occurred": "2023-12-21T14:50:35.077Z",
  "processed": "2023-12-21T14:50:40.843Z",
  "device": {
    "android_channel": "ac1960b9-24b6-4851-b907-b9e64f071890",
    "channel": "ac1960b9-24b6-4851-b907-b9e64f071890",
    "device_type": "ANDROID",
    "named_user_id": "c2cbc6e5145763ec58a4d85dfa4323aacc40afea",
    "attributes": {
      "locale_variant": "",
      "device_model": "M2101K9G",
      "app_version": "18.4.2",
      "app_package_name": "com.company_name.app_name",
      "iana_timezone": "Europe/Paris",
      "push_opt_in": "true",
      "locale_country_code": "FR",
      "device_os": "12",
      "locale_timezone": "3600",
      "locale_language_code": "fr",
      "background_push_enabled": "true",
      "ua_sdk_version": "16.9.2"
    }
  },
  "body": {
    "name": "purchased",
    "value": 239.85,
    "transaction": "886f53d4-3e0f-46d7-930e-c2792dac6e0a",
    "interaction_id": "your.store/us/en_us/pd/shoe/pid-11046546/pgid-10978234",
    "interaction_type": "url",
    "properties": {
      "description": "Sneaker purchase",
      "brand": "Victory Sneakers",
      "colors": [
        "red",
        "blue"
      ],
      "items": [
        {
          "text": "New Line Sneakers",
          "price": "$ 79.95"
        },
        {
          "text": "Old Line Sneakers",
          "price": "$ 79.95"
        },
        {
          "text": "Blue Line Sneakers",
          "price": "$ 79.95"
        }
      ],
      "name": "Hugh Manbeing",
      "userLocation": {
        "state": "CO",
        "zip": "80202"
      }
    }
  },
  "session_id": "adc0e12e-dfe8-4375-8121-5b21dbab87f4",
  "source": "SDK",
  "type": "CUSTOM"
}

Example Custom Event from API (shoe sale)

{
  "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
  }
}

Feature Flag interaction event

Occurs when a user interacts with a tracked flagged feature. See Feature Flags. The events have a flag ID and flag name, which identify which flagged feature a user interacted with. They also have a boolean eligible field, which indicates whether or not the user was in the Feature Flag audience and had access to the feature.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • eligible booleanREQUIRED

      Indicates whether or not the user was in the Feature Flag audience and had access to the feature. true means the user was in the Feature Flag audience and had access to the feature.

    • flag_id stringREQUIRED

      A UUID that is associated with a feature flag.

    • flag_name stringREQUIRED

      The name of a feature flag.

    • variant_id string

      The UUID of the A/B test variant, if available.

  • device objectREQUIRED
    One of
    • Information about app users generated by the SDK.

    • Information about web users generated by the SDK.

  • id stringREQUIRED

    Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same id, type, occurred, device, and body values but different offset and processed values. You should use the id 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

Examples

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"
}

First open

This event occurs when a user opens an Airship-integrated app for the first time.

Jump to examples ↓

OBJECT PROPERTIES
  • device objectREQUIRED
    One of
    • Information about app users generated by the SDK.

    • Information about web users generated by the SDK.

  • id stringREQUIRED

    Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same id, type, occurred, device, and body values but different offset and processed values. You should use the id 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

Used in:

Examples

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"
}

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.

Jump to examples ↓

OBJECT PROPERTIES
  • device objectREQUIRED
    One of
  • id stringREQUIRED

    Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same id, type, occurred, device, and body values but different offset and processed values. You should use the id 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

Used in:

Examples

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"
}

In-app button tap

Occurs when a button is tapped within a Scene.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • app_defined_id string

      An identifier defined by the application if the in-app button tap was created by the application logic, not Airship. If this field is present, the event body will not contain push_id, group_id, variant_id, or triggering_push fields.

    • button_id string

      A unique identifier for the button.

    • context object<In-app context>

      The context provides the view state when a button, pager, or form interaction occurs.

    • group_id string

      Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.

    • locale string

      Optional string that defines the country and language this in-app-automation was localized as by remote-config-api. country - (String) An ISO 3166-1 country code, set by device settings. language - (String) The ISO 639-1 two-letter language code reflecting the language the phone is set to.

    • push_id string

      A unique identifier for a push operation.

    • session_id string

      Represents the “session” of user activity. Absent if the application was initialized while backgrounded.

    • time_sent string

      An ISO 8601 date-time indicating when the payload defining the in-app message was sent to the device. May be absent.

    • triggering_push object<Associated push>

      Appears if the user began the current session by opening a push notification.

      The specific push_id and accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.

      An associated push object may specify a time, if the push was a singular operation sent at a defined time. Otherwise, the object will include a group_id if the push was sent at a relative time (best_time or local_time) an automation pipeline, or another operation resulting in multiple push_ids.

  • device object<App device information>REQUIRED

    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, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Used in:

Examples

Example in-app button tap event

{
  "id": "51dd7c1c-5621-11e9-9601-0242539d70ef",
  "offset": "1000022467557",
  "occurred": "2019-03-29T21:42:21.245Z",
  "processed": "2019-04-03T15:10:23.828Z",
  "device": {
    "ios_channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
    "channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
    "device_type": "IOS",
    "named_user_id": "cooluser",
    "identifiers": {
      "com.urbanairship.limited_ad_tracking_enabled": "true",
      "session_id": "B147E0CE-272E-4047-A79C-30D02A2F213D",
      "GA_CID": "a61448e1-be63-43ee-84eb-19446ba743f0",
      "com.urbanairship.idfa": "A76E6F83-4F4A-47E2-BFDD-72BED91D2D1F",
      "com.urbanairship.vendor": "ED496B1A-43F1-45A9-A7C1-80125DE8A5B1"
      },
    "attributes": {
      "locale_variant": "",
      "app_version": "542",
      "device_model": "iPhone7,2",
      "app_package_name": "com.company_name.app_name",
      "iana_timezone": "America/Los_Angeles",
      "push_opt_in": "true",
      "locale_country_code": "US",
      "device_os": "11.4",
      "locale_timezone": "-25200",
      "locale_language_code": "en",
      "location_enabled": "false",
      "background_push_enabled": "true",
      "ua_sdk_version": "10.2.0",
      "location_permission": "ALWAYS_ALLOWED"
      }
    },
    "body": {
      "push_id": "a9a5912c-2526-4383-b516-711c58aff900",
      "group_id": "a9a5912c-2526-4383-b516-711c58aff900",
      "session_id": "94e8caed-9b82-4166-b585-a01eed933855",
      "triggering_push": {
        "push_id": "a183f051-7d69-11ed-86d9-0242dc3f670b",
        "group_id": "8e7cfac3-cfd3-4f4f-a9a1-d766de9b063a",
        "campaigns": {
          "categories": [
            "welcome_series"
          ]
        }
      },
      "context": {
        "reporting_context": {
          "content_types": [
            "survey"
          ]
        },
        "state": {
          "form": {
            "form_identifier": "870db95f-3715-4c98-8047-2871c175d003",
            "submitted": true,
            "type": "nps",
            "response_type": "nps"
          },
          "pager": {
            "identifier": "9e051354-185b-4d4d-888a-885def2e6b7a",
            "page_identifier": "32f4fc47-74ee-41c6-8e16-c9e0aa364101",
            "page_index": 1,
            "page_count": 2,
            "completed": true
          }
        }
      },
      "button_id": "dismiss_button"
    },
  "type": "IN_APP_BUTTON_TAP"
}

In-app experiences

Events that occur related to the display and completion behavior of a Scene. These events are derived from source events generated by the SDK, so a single user action may generate two events: one for the SDK event, one representing the user action as it relates to their actual activity within the app or website.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • app_defined_id string

      An identifier defined by the application if the in-app message was created by the application logic, not Airship. If this field is present, the event body will not contain push_id, group_id, variant_id, or triggering_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 PROPERTIES
      • categories array[string]
    • event_name string

      The name of the event.

      Possible values: scene_displayed, scene_completed, scene_incomplete, survey_displayed, survey_submitted, survey_not_submitted

    • group_id string

      Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.

    • push_id string

      A unique identifier for a push operation.

    • session_id string

      Represents the “session” of user activity. Absent if the application was initialized while backgrounded.

    • survey_type string

      Only present for survey events.

      Possible values: nps, user_feedback

    • time_sent string

      An ISO 8601 date-time, in UTC, when the event occurred. May be absent.

    • triggering_push object<Associated push>

      Present if the user started the current session by opening a push notification.

      The specific push_id and accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.

      An associated push object may specify a time, if the push was a singular operation sent at a defined time. Otherwise, the object will include a group_id if the push was sent at a relative time (best_time or local_time) an automation pipeline, or another operation resulting in multiple push_ids.

    • 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 object<App device information>REQUIRED

    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, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Examples

Example in-app experiences event

{
  "id": "51dd7c1c-5621-11e9-9601-0242539d70ef",
  "offset": "1000022467557",
  "occurred": "2019-03-29T21:42:21.245Z",
  "processed": "2019-04-03T15:10:23.828Z",
  "device": {
    "ios_channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
    "channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
    "device_type": "IOS",
    "named_user_id": "cooluser",
    "identifiers": {
      "com.urbanairship.limited_ad_tracking_enabled": "true",
      "session_id": "B147E0CE-272E-4047-A79C-30D02A2F213D",
      "GA_CID": "a61448e1-be63-43ee-84eb-19446ba743f0",
      "com.urbanairship.idfa": "A76E6F83-4F4A-47E2-BFDD-72BED91D2D1F",
      "com.urbanairship.vendor": "ED496B1A-43F1-45A9-A7C1-80125DE8A5B1"
      },
    "attributes": {
      "locale_variant": "",
      "app_version": "542",
      "device_model": "iPhone7,2",
      "app_package_name": "com.company_name.app_name",
      "iana_timezone": "America/Los_Angeles",
      "push_opt_in": "true",
      "locale_country_code": "US",
      "device_os": "11.4",
      "locale_timezone": "-25200",
      "locale_language_code": "en",
      "location_enabled": "false",
      "background_push_enabled": "true",
      "ua_sdk_version": "10.2.0",
      "location_permission": "ALWAYS_ALLOWED"
      }
    },
    "body": {
      "event_name": "scene_displayed",
      "time_sent": "2022-03-11T08:40:56.592Z",
      "session_id": "20162c5f-36c8-1808-6fc6-8eb836d7f7f2",
      "push_id": "2e12bc7b-04f2-3487-1480-44269b04c131",
      "group_id": "2e12bc7b-04f2-3487-1480-44269b04c131",
      "triggering_push": {
        "push_id": "5cc872d5-708d-dffb-0959-991b014dcd2d",
        "time": "2022-03-11T08:40:56.692Z",
        "campaigns": {
          "categories": [
            "welcome_series"
          ]
        }
      }
    },
  "type": "IN_APP_EXPERIENCES"
}

In-app form display

Occurs when a survey form in a Scene is displayed.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • app_defined_id string

      An identifier defined by the application if the in-app form was created by the application logic, not Airship. If this field is present, the event body will not contain push_id, group_id, variant_id, or triggering_push fields.

    • context object<In-app context>

      The context provides the view state when a button, pager, or form interaction occurs.

    • forms object
      OBJECT PROPERTIES
      • form_id string

        The identifier of the form controller (required).

    • group_id string

      Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.

    • push_id string

      A unique identifier for a push operation.

    • session_id string

      Represents the “session” of user activity. Absent if the application was initialized while backgrounded.

    • time_sent string

      An ISO 8601 date-time indicating when the payload defining the in-app message was sent to the device. May be absent.

    • triggering_push object<Associated push>

      Present if the user started the current session by opening a push notification.

      The specific push_id and accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.

      An associated push object may specify a time, if the push was a singular operation sent at a defined time. Otherwise, the object will include a group_id if the push was sent at a relative time (best_time or local_time) an automation pipeline, or another operation resulting in multiple push_ids.

    • type string

      Required for this type, the value is always DISPLAY.

      Possible values: DISPLAY

  • device object<App device information>REQUIRED

    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, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Examples

Example in-app form display event

{
  "id": "51dd7c1c-5621-11e9-9601-0242539d70ef",
  "offset": "1000022467557",
  "occurred": "2019-03-29T21:42:21.245Z",
  "processed": "2019-04-03T15:10:23.828Z",
  "device": {
    "ios_channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
    "channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
    "device_type": "IOS",
    "named_user_id": "cooluser",
    "identifiers": {
      "com.urbanairship.limited_ad_tracking_enabled": "true",
      "session_id": "B147E0CE-272E-4047-A79C-30D02A2F213D",
      "GA_CID": "a61448e1-be63-43ee-84eb-19446ba743f0",
      "com.urbanairship.idfa": "A76E6F83-4F4A-47E2-BFDD-72BED91D2D1F",
      "com.urbanairship.vendor": "ED496B1A-43F1-45A9-A7C1-80125DE8A5B1"
      },
    "attributes": {
      "locale_variant": "",
      "app_version": "542",
      "device_model": "iPhone7,2",
      "app_package_name": "com.company_name.app_name",
      "iana_timezone": "America/Los_Angeles",
      "push_opt_in": "true",
      "locale_country_code": "US",
      "device_os": "11.4",
      "locale_timezone": "-25200",
      "locale_language_code": "en",
      "location_enabled": "false",
      "background_push_enabled": "true",
      "ua_sdk_version": "10.2.0",
      "location_permission": "ALWAYS_ALLOWED"
      }
    },
    "body": {
      "push_id": "56d72d43-5567-4c94-887a-05b46ca9ef3e",
      "group_id": "56d72d43-5567-4c94-887a-05b46ca9ef3e",
      "session_id": "1347589f-0608-4198-b170-bfb46271877a",
      "triggering_push": {
        "push_id": "a183f051-7d69-11ed-86d9-0242dc3f670b",
        "group_id": "8e7cfac3-cfd3-4f4f-a9a1-d766de9b063a",
        "campaigns": {
          "categories": [
            "welcome_series"
          ]
        }
      },
      "context": {
        "reporting_context": {
          "content_types": [
            "survey"
          ]
        },
        "state": {
          "form": {
            "form_identifier": "434b918f-6a00-496f-963c-f54923a67abf",
            "submitted": false,
            "type": "nps",
            "response_type": "nps"
          }
        }
      },
      "type": "DISPLAY",
      "forms": [
        {
          "form_id": "434b918f-6a00-496f-963c-f54923a67abf"
        }
      ]
    },
  "type": "IN_APP_FORM_DISPLAY"
}

In-app form result

Occurs when a survey form in a Scene is submitted.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • app_defined_id string

      An identifier defined by the application if the in-app form was created by the application logic, not Airship. If this field is present, the event body will not contain push_id, group_id, variant_id, or triggering_push fields.

    • context object<In-app context>

      The context provides the view state when a button, pager, or form interaction occurs.

    • forms object
      OBJECT PROPERTIES
      • form_id string

        The identifier of the form controller (required).

      • nps object
        OBJECT PROPERTIES
        • audience_category stringREQUIRED

          The NPS category.

          Possible values: PROMOTER, PASSIVE, DETRACTOR

        • question_id stringREQUIRED

          The question identifier.

        • score numberREQUIRED

          A number between 0 and 10.

      • response_type string

        The survey response type.

        Possible values: nps, user_feedback

      • responses object
        OBJECT PROPERTIES
        • question_id stringREQUIRED

          The question identifier.

        • type stringREQUIRED

          The question type.

          Possible values: single_choice, multiple_choice, text_input, email_input

        • value objectREQUIRED

          The choice type identifier for single_choice or multiple_choice questions, or user-provided text for text_input or email_input fields.

      • type string

        The form type.

        Possible values: nps, form

    • group_id string

      Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.

    • push_id string

      A unique identifier for a push operation.

    • session_id string

      Represents the “session” of user activity. Absent if the application was initialized while backgrounded.

    • time_sent string

      An ISO 8601 date-time indicating when the payload defining the in-app message was sent to the device. May be absent.

    • triggering_push object<Associated push>

      Present if the user started the current session by opening a push notification.

      The specific push_id and accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.

      An associated push object may specify a time, if the push was a singular operation sent at a defined time. Otherwise, the object will include a group_id if the push was sent at a relative time (best_time or local_time) an automation pipeline, or another operation resulting in multiple push_ids.

    • type string

      Required for this type, the value is always RESULT.

      Possible values: RESULT

  • device object<App device information>REQUIRED

    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, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Examples

Example in-app form result event

{
  "id": "51dd7c1c-5621-11e9-9601-0242539d70ef",
  "offset": "1000022467557",
  "occurred": "2019-03-29T21:42:21.245Z",
  "processed": "2019-04-03T15:10:23.828Z",
  "device": {
    "ios_channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
    "channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
    "device_type": "IOS",
    "named_user_id": "cooluser",
    "identifiers": {
      "com.urbanairship.limited_ad_tracking_enabled": "true",
      "session_id": "B147E0CE-272E-4047-A79C-30D02A2F213D",
      "GA_CID": "a61448e1-be63-43ee-84eb-19446ba743f0",
      "com.urbanairship.idfa": "A76E6F83-4F4A-47E2-BFDD-72BED91D2D1F",
      "com.urbanairship.vendor": "ED496B1A-43F1-45A9-A7C1-80125DE8A5B1"
      },
    "attributes": {
      "locale_variant": "",
      "app_version": "542",
      "device_model": "iPhone7,2",
      "app_package_name": "com.company_name.app_name",
      "iana_timezone": "America/Los_Angeles",
      "push_opt_in": "true",
      "locale_country_code": "US",
      "device_os": "11.4",
      "locale_timezone": "-25200",
      "locale_language_code": "en",
      "location_enabled": "false",
      "background_push_enabled": "true",
      "ua_sdk_version": "10.2.0",
      "location_permission": "ALWAYS_ALLOWED"
      }
    },
    "body": {
      "push_id": "683b395d-7abf-40f9-be49-4b64debfbd22",
      "group_id": "683b395d-7abf-40f9-be49-4b64debfbd22",
      "session_id": "d05323b3-8176-406d-aff5-5194341f4a5c",
      "triggering_push": {
        "push_id": "a183f051-7d69-11ed-86d9-0242dc3f670b",
        "group_id": "8e7cfac3-cfd3-4f4f-a9a1-d766de9b063a",
        "campaigns": {
          "categories": [
            "welcome_series"
          ]
        }
      },
      "context": {
        "reporting_context": {
          "content_types": [
            "survey"
          ]
        },
        "state": {
          "form": {
            "form_identifier": "316e8ed4-277e-408b-9c47-a6bd7a4251c5",
            "submitted": false,
            "type": "nps",
            "response_type": "nps"
          }
        }
      },
      "type": "RESULT",
      "forms": [
        {
          "form_id": "316e8ed4-277e-408b-9c47-a6bd7a4251c5",
          "type": "nps",
          "response_type": "nps",
          "nps": {
            "question_id": "b6563a26-a927-4ff2-af8a-08d94d8b84a3",
            "score": 9,
            "audience_category": "PROMOTER"
          },
          "responses": [
            {
              "question_id": "b6563a26-a927-4ff2-af8a-08d94d8b84a3",
              "type": "score",
              "value": "9"
            },
            {
              "question_id": "c867cf61-398f-443c-b991-443fa8aff4b9",
              "type": "text_input",
              "value": "Hello, world"
            }
          ]
        }
      ]
    },
  "type": "IN_APP_FORM_RESULT"
}

In-app message control

Occurs when an In-App Automation or Scene is not delivered because the targeted user’s contact or Channel ID was part of a control group for a Holdout Experiment.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • app_defined_id string

      An identifier defined by the application if the in-app message was created by the application logic, not the Airship system. If this field is present, the event body will not contain push_id, group_id, variant_id, or triggering_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.

    • push_id string

      A unique identifier for a push operation.

    • session_id string

      Represents the “session” of user activity. Absent if the application was initialized while backgrounded.

    • time_sent string

      The date-time when the in-app message payload was sent to the device.

    • triggering_push object<Associated push>

      Appears if the user began the current session by opening a push notification.

      The specific push_id and accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.

      An associated push object may specify a time, if the push was a singular operation sent at a defined time. Otherwise, the object will include a group_id if the push was sent at a relative time (best_time or local_time) an automation pipeline, or another operation resulting in multiple push_ids.

    • 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 object<App device information>REQUIRED

    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, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Examples

Example in-app message control event

{
  "id": "e9e281d0-2b39-11ee-ac42-00000a91ace1",
  "offset": "1000194023208",
  "occurred": "2023-07-25T22:22:40.262Z",
  "processed": "2023-07-25T22:23:43.464Z",
  "device": {
    "ios_channel": "414a7c7c-c3c5-4a9f-b1de-ebd5a85104e0",
    "channel": "414a7c7c-c3c5-4a9f-b1de-ebd5a85104e0",
    "device_type": "IOS",
    "attributes": {
      "locale_variant": "",
      "device_model": "arm64",
      "app_version": "1.0",
      "app_package_name": "com.company_name.app_name",
      "iana_timezone": "America/Los_Angeles",
      "push_opt_in": "true",
      "locale_country_code": "US",
      "device_os": "17.0",
      "locale_timezone": "-25200",
      "locale_language_code": "en",
      "background_push_enabled": "true",
      "ua_sdk_version": "17.1.0"
    }
  },
  "body": {
    "push_id": "6fc3b3a7-d860-4acd-b80d-82af02b5b0fa",
    "group_id": "6fc3b3a7-d860-4acd-b80d-82af02b5b0fa",
    "session_id": "f31c3769-8517-402a-8ae6-cdb323f5ec22",
    "context": {
      "reporting_context": {
        "content_types": [
          "scene"
        ]
      }
    },
    "type": "CONTROL"
  },
  "type": "IN_APP_MESSAGE_CONTROL"
}

In-app message display

Occurs when an In-App Automation or Scene is displayed to a user. Because the event pertains to a specific device, the device information object will be populated.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • app_defined_id string

      An identifier defined by the application if the in-app message was created by the application logic, not Airship. If this field is present, the event body will not contain push_id, group_id, variant_id, or triggering_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 PROPERTIES
      • categories array[string]
    • context object<In-app context>

      The context provides the view state when a button, pager, or form interaction occurs.

    • group_id string

      Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.

    • push_id string

      A unique identifier for a push operation.

    • session_id string

      Represents the “session” of user activity. Absent if the application was initialized while backgrounded.

    • triggering_push object<Associated push>

      Appears if the user began the current session by opening a push notification.

      The specific push_id and accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.

      An associated push object may specify a time, if the push was a singular operation sent at a defined time. Otherwise, the object will include a group_id if the push was sent at a relative time (best_time or local_time) an automation pipeline, or another operation resulting in multiple push_ids.

    • 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 object<App device information>REQUIRED

    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, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Used in:

Examples

Example in-app message display event

{
  "id": "51dd7c1c-5621-11e9-9601-0242539d70ef",
  "offset": "1000022467557",
  "occurred": "2019-03-29T21:42:21.245Z",
  "processed": "2019-04-03T15:10:23.828Z",
  "device": {
    "ios_channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
    "channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
    "device_type": "IOS",
    "named_user_id": "cooluser",
    "identifiers": {
      "com.urbanairship.limited_ad_tracking_enabled": "true",
      "session_id": "B147E0CE-272E-4047-A79C-30D02A2F213D",
      "GA_CID": "a61448e1-be63-43ee-84eb-19446ba743f0",
      "com.urbanairship.idfa": "A76E6F83-4F4A-47E2-BFDD-72BED91D2D1F",
      "com.urbanairship.vendor": "ED496B1A-43F1-45A9-A7C1-80125DE8A5B1"
      },
    "attributes": {
      "locale_variant": "",
      "app_version": "542",
      "device_model": "iPhone7,2",
      "app_package_name": "com.company_name.app_name",
      "iana_timezone": "America/Los_Angeles",
      "push_opt_in": "true",
      "locale_country_code": "US",
      "device_os": "11.4",
      "locale_timezone": "-25200",
      "locale_language_code": "en",
      "location_enabled": "false",
      "background_push_enabled": "true",
      "ua_sdk_version": "10.2.0",
      "location_permission": "ALWAYS_ALLOWED"
      }
    },
    "body": {
      "push_id": "68be9eba-3f3e-4763-bbd1-c921a164af1b",
      "group_id": "49e59f68-d58c-4a2f-86ab-112f52e3c5d2",
      "variant_id": 5,
      "session_id": "cfe467a6-ca70-40dd-8c1f-07b2f644935e",
      "triggering_push": {
        "push_id": "18c0f649-2330-4fb0-a9fa-ad029f5f4e0e",
        "group_id": "c4c89025-0d25-434c-8040-283990585f01",
        "campaigns": {
          "categories": [
            "welcome_series"
          ]
        }
      }
    },
  "type": "IN_APP_MESSAGE_DISPLAY"
}

Example in-app message display event with context

{
    "id": "c7b97941-5d1d-11ee-b7be-00000a91ace6",
    "offset": "1004335885834",
    "occurred": "2023-09-27T10:08:14.965Z",
    "processed": "2023-09-27T10:08:18.230Z",
    "device":
    {
        "android_channel": "3e75f0be-f312-413f-90c0-81d628410514",
        "channel": "3e75f0be-f312-413f-90c0-81d628410514",
        "device_type": "ANDROID",
        "named_user_id": "exampleuser",
        "attributes":
        {
            "locale_variant": "",
            "device_model": "SM-G981B",
            "app_version": "13.13.3",
            "app_package_name": "com.company_name.app_name",
            "iana_timezone": "Europe/Paris",
            "push_opt_in": "true",
            "locale_country_code": "FR",
            "device_os": "13",
            "locale_timezone": "7200",
            "locale_language_code": "fr",
            "background_push_enabled": "true",
            "ua_sdk_version": "16.4.0"
        }
    },
    "body":
    {
        "push_id": "0390bd82-c28f-44cb-98d9-3f9b7eef939d",
        "group_id": "0390bd82-c28f-44cb-98d9-3f9b7eef939d",
        "campaigns":
        {
            "categories":
            [
                "WELCOME_SERIES"
            ]
        },
        "context": {
          "reporting_context": {
            "content_types": [
              "scene"
            ]
          }
        },
        "session_id": "6e11b019-4da0-4c66-8063-92ec2ce4ee36"
    },
    "type": "IN_APP_MESSAGE_DISPLAY"
}

In-app message exclusion

Occurs when an In-App Automation or Scene is not displayed on a device because the user was banned. See Ban Lists.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • app_defined_id string

      An identifier defined by the application if the in-app message was created by the application logic, not the Airship system. If this field is present, the event body will not contain push_id, group_id, variant_id, or triggering_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.

    • push_id string

      A unique identifier for a push operation.

    • session_id string

      Represents the “session” of user activity. Absent if the application was initialized while backgrounded.

    • time_sent string

      The date-time when the in-app message payload was sent to the device.

    • triggering_push object<Associated push>

      Appears if the user began the current session by opening a push notification.

      The specific push_id and accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.

      An associated push object may specify a time, if the push was a singular operation sent at a defined time. Otherwise, the object will include a group_id if the push was sent at a relative time (best_time or local_time) an automation pipeline, or another operation resulting in multiple push_ids.

    • type string

      Indicates that the in-app message was not displayed on a device because the channel or Named User was excluded from the push. The only possible value is AUDIENCE_CHECK_EXCLUDED, which indicates that the message was not displayed because the channel or Named User is on a project’s Ban List. This is also reported when a 400- or 500-level error resolving the user’s status on a Ban List occurs.

      Possible values: AUDIENCE_CHECK_EXCLUDED

    • variant_id integer

      The ID of the variant that a push is associated with, if the push was a part of an A/B test (experiment).

  • device object<App device information>REQUIRED

    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, and body values but different offset and processed values. You should use the id to deduplicate.

  • occurred stringREQUIRED

    When the event occurred.

  • offset string

    An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.

  • processed stringREQUIRED

    When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.

  • type stringREQUIRED

    Possible values: IN_APP_MESSAGE_EXCLUSION

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Examples

Example in-app message exclusion event

{
  "id": "7fff2560-1d33-11ef-b484-0000a91acec5",
  "offset":"1000215341033",
  "occurred":"2024-05-28T20:47:20.183Z",
  "processed":"2024-05-28T20:47:31.090Z",
  "device": {
    "android_channel": "88663749-a19d-4daf-8d4c-09fc4cf03a12",
    "channel":"87663620-a99d-4daf-8f4c-88fc4cf03af4",
    "device_type": "ANDROID",
    "named_user_id": "cool_named_user",
    "attributes": {
      "locale_variant": "",
      "device_model": "DE2123",
      "app_version": "2024-05-25T040548",
      "app_package_name": "com.package.example",
      "iana_timezone": "America/Los_Angeles",
      "push_opt_in": "true",
      "locale_country_code": "US",
      "device_os": "120",
      "locale_timezone": "-27000",
      "locale_language_code": "en",
      "background_push_enabled": "false",
      "ua_sdk_version":"18.0.0"
    }
  },
  "body": {
    "push_id": "be711edb-d16d-465e-8091-a831041e2e53",
    "group_id":"be711edb-d16d-465e-8091-a831041e2e53",
    "session_id":"e8e72fa2-bfbc-405d-af85-8b428c8e38d9",
    "context": {
    },
    "type":"AUDIENCE_CHECK_EXCLUDED"
  },
  "type":"IN_APP_MESSAGE_EXCLUSION"
}

In-app message expiration

Occurs when a new In-App Automation or Scene message has taken the place of another message, a message has passed its expiration, or because displaying the message in-app would be redundant. This event type may be latent. It is not emitted until the app becomes active.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • app_defined_id string

      An identifier defined by the application if the in-app message was created by the application logic, not Airship. If this field is present, the event body will not contain push_id, group_id, variant_id, or triggering_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.

    • push_id string

      A unique identifier for a push operation.

    • replacing_push object<Associated push>

      An associated push object for the in-app message that replaced the message. Present if type is REPLACED.

      The specific push_id and accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.

      An associated push object may specify a time, if the push was a singular operation sent at a defined time. Otherwise, the object will include a group_id if the push was sent at a relative time (best_time or local_time) an automation pipeline, or another operation resulting in multiple push_ids.

    • session_id string

      Represents the “session” of user activity. Absent if the application was initialized while backgrounded.

    • time_expired string

      The date-time when the message was set to expire.

    • time_sent string

      The date-time when the in-app message payload was sent to the device.

    • triggering_push object<Associated push>

      Appears if the user began the current session by opening a push notification.

      The specific push_id and accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.

      An associated push object may specify a time, if the push was a singular operation sent at a defined time. Otherwise, the object will include a group_id if the push was sent at a relative time (best_time or local_time) an automation pipeline, or another operation resulting in multiple push_ids.

    • type string

      Indicates how the in-app message expired.

      • REPLACED: The in-app message was replaced by a more current one. If type is REPLACED, the replacing_push key will be present.
      • EXPIRED: The in-app message exceeded its expiration date. If type is EXPIRED, then the time 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, and body values but different offset and processed values. You should use the id 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

Used in:

Examples

Example in-app message expiration event

{
  "id": "910fea50-5d42-1159-b702-024288f4e1d3",
  "offset": "1000022468589",
  "occurred": "2019-04-03T18:59:02.246Z",
  "processed": "2019-04-03T19:10:26.301Z",
  "device": {
    "android_channel": "364a4e3f-170a-4f26-b0a1-11b280377dfe",
    "channel": "364a4e3f-170a-4f26-b0a1-11b280377dfe",
    "device_type": "ANDROID",
    "identifiers": {
      "com.urbanairship.gimbal.aii": "2471037d-71d8-4229-a40f-df719f1af914",
      "session_id": "54204a73-7a95-4ffc-8051-bf230d086e19",
      "GA_CID": "90d56c80-f31f-49fd-87b0-20deb3d2602a"
    },
    "attributes": {
      "locale_variant": "",
      "app_version": "dev",
      "device_model": "Android SDK built for x86",
      "app_package_name": "com.company_name.app_name",
      "iana_timezone": "America/Los_Angeles",
      "push_opt_in": "true",
      "locale_country_code": "US",
      "device_os": "9",
      "locale_timezone": "-25200",
      "locale_language_code": "en",
      "location_enabled": "false",
      "background_push_enabled": "true",
      "ua_sdk_version": "9.7.0",
      "location_permission": "NOT_ALLOWED"
    }
  },
  "body": {
    "push_id": "a1fe5f2a-1d51-4f3a-a77b-35018031741d",
    "session_id": "3514bd74-bfa8-149e-9c12-a44794994ca8",
    "triggering_push": {
      "push_id": "a183f051-7d69-11ed-86d9-0242dc3f670b",
      "group_id": "8e7cfac3-cfd3-4f4f-a9a1-d766de9b063a",
      "campaigns": {
        "categories": [
          "welcome_series"
        ]
      }
    },
    "type": "EXPIRED",
    "time_expired": "1970-01-01T00:00:00.000Z"
  },
  "type": "IN_APP_MESSAGE_EXPIRATION"
}

In-app message resolution

Occurs when an In-App Automation or Scene is cleared from the display, either by user action or timeout. Because this event pertains to an individual device, the device information object will be present.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • app_defined_id string

      An identifier defined by the application if the in-app message was created by the application logic, not Airship. If this field is present, the event body will not contain push_id, group_id, variant_id, or triggering_push fields.

    • button_description string

      The title of the button the user interacted with. Present if type is set to BUTTON_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 to BUTTON_CLICK.

    • campaigns object

      An object listing the campaigns a push specification is associated with. The campaigns object includes an array of categories that must have between 1 and 10 elements, each of which is a string with a 64-byte and -character limit.

      OBJECT PROPERTIES
      • categories array[string]
    • context object<In-app context>

      The context provides the view state when a button, pager, or form interaction occurs.

    • duration integer

      The number of milliseconds that the user was on the screen.

    • group_id string

      Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.

    • push_id string

      A unique identifier for a push operation.

    • session_id string

      Represents the “session” of user activity. Absent if the application was initialized while backgrounded.

    • time_sent string

      The date-time when the in-app message payload was sent to the device.

    • triggering_push object<Associated push>

      Appears if the user began the current session by opening a push notification.

      The specific push_id and accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.

      An associated push object may specify a time, if the push was a singular operation sent at a defined time. Otherwise, the object will include a group_id if the push was sent at a relative time (best_time or local_time) an automation pipeline, or another operation resulting in multiple push_ids.

    • 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/tapped X 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 object<App device information>REQUIRED

    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, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Used in:

Examples

Example in-app message resolution event

{
  "id": "910fea50-5d42-1159-b702-024288f4e1d3",
  "offset": "1000022468589",
  "occurred": "2019-04-03T18:59:02.246Z",
  "processed": "2019-04-03T19:10:26.301Z",
  "device": {
    "android_channel": "364a4e3f-170a-4f26-b0a1-11b280377dfe",
    "channel": "364a4e3f-170a-4f26-b0a1-11b280377dfe",
    "device_type": "ANDROID",
    "identifiers": {
      "com.urbanairship.gimbal.aii": "2471037d-71d8-4229-a40f-df719f1af914",
      "session_id": "54204a73-7a95-4ffc-8051-bf230d086e19",
      "GA_CID": "90d56c80-f31f-49fd-87b0-20deb3d2602a"
    },
    "attributes": {
      "locale_variant": "",
      "app_version": "dev",
      "device_model": "Android SDK built for x86",
      "app_package_name": "com.company_name.app_name",
      "iana_timezone": "America/Los_Angeles",
      "push_opt_in": "true",
      "locale_country_code": "US",
      "device_os": "9",
      "locale_timezone": "-25200",
      "locale_language_code": "en",
      "location_enabled": "false",
      "background_push_enabled": "true",
      "ua_sdk_version": "9.7.0",
      "location_permission": "NOT_ALLOWED"
    }
  },
  "body": {
    "push_id": "86ee0a6e-a46a-4bbe-a3d1-804891baaee4",
    "group_id": "68991b8d-0d6b-4e05-bc62-2cdec2085c18",
    "triggering_push": {
      "push_id": "a183f051-7d69-11ed-86d9-0242dc3f670b",
      "group_id": "8e7cfac3-cfd3-4f4f-a9a1-d766de9b063a",
      "campaigns": {
        "categories": [
          "welcome_series"
        ]
      }
    },
    "time_sent": "2019-03-03T19:10:26.301Z",
    "type": "BUTTON_CLICK",
    "button_id": "yes",
    "button_group": "",
    "button_description": "Yes",
    "duration": 10000000000
  },
  "type": "IN_APP_MESSAGE_RESOLUTION"
}

Example in-app message resolution event with context

{
    "id": "a0bc5c50-6d34-11ee-95dc-0000a91aced1",
    "offset": "1064988067725",
    "occurred": "2023-10-17T21:32:01.243Z",
    "processed": "2023-10-17T21:32:10.638Z",
    "device":
    {
        "ios_channel": "870c200f-d0e7-4e45-bd99-5b290c80b6a7",
        "channel": "870c200f-d0e7-4e45-bd99-5b290c80b6a7",
        "device_type": "IOS",
        "named_user_id": "exampleuser",
        "attributes":
        {
            "locale_variant": "",
            "device_model": "iPhone15,2",
            "app_version": "15.8.1",
            "app_package_name": "com.company_name.app_name",
            "iana_timezone": "America/New_York",
            "push_opt_in": "false",
            "locale_country_code": "US",
            "device_os": "16.6.1",
            "locale_timezone": "-14400",
            "locale_language_code": "en",
            "background_push_enabled": "true",
            "ua_sdk_version": "16.12.0"
        }
    },
    "body":
    {
        "push_id": "4015241b-2e71-43d8-85a0-cd500e97c15d",
        "group_id": "4015241b-2e71-43d8-85a0-cd500e97c15d",
        "campaigns":
        {
            "categories":
            [
                "OfferLevel45",
                "VIP_OFFER"
            ]
        },
        "context": {
          "reporting_context": {
            "content_types": [
              "scene"
            ]
          }
        },
        "session_id": "832e65de-453e-426d-a4a3-bd70ab0f827e",
        "type": "USER_DISMISSED",
        "duration": 2503
    },
    "type": "IN_APP_MESSAGE_RESOLUTION"
}

In-app page swipe

Occurs when a user swipes to the next or previous page (screen) in a pager (specific to Scenes).

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • app_defined_id string

      An identifier defined by the application if the in-app pager was created by the application logic, not Airship. If this field is present, the event body will not contain push_id, group_id, variant_id, or triggering_push fields.

    • context object<In-app context>

      The context provides the view state when a button, pager, or form interaction occurs.

    • from_page_index number

      Is the previous page index.

    • from_pager_identifier string

      Is the previous page identifier.

    • group_id string

      Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.

    • locale string

      Optional string that defines the country and language this in-app-automation was localized as by remote-config-api. country - (String) An ISO 3166-1 country code, set by device settings. language - (String) The ISO 639-1 two-letter language code reflecting the language the phone is set to.

    • pager_identifier string

      Is the pager controller identifier.

    • push_id string

      A unique identifier for a push operation.

    • session_id string

      Represents the “session” of user activity. Absent if the application was initialized while backgrounded.

    • time_sent string

      An ISO 8601 date-time indicating when the payload defining the in-app pager was sent to the device. May be absent.

    • to_page_identifier string

      Is the current page identifier.

    • to_page_index number

      Is the current page index.

    • triggering_push object<Associated push>

      Present if the user started the current session by opening a push notification.

      The specific push_id and accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.

      An associated push object may specify a time, if the push was a singular operation sent at a defined time. Otherwise, the object will include a group_id if the push was sent at a relative time (best_time or local_time) an automation pipeline, or another operation resulting in multiple push_ids.

  • device object<App device information>REQUIRED

    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, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Used in:

Examples

Example in-app page swipe event

{
  "id": "51dd7c1c-5621-11e9-9601-0242539d70ef",
  "offset": "1000022467557",
  "occurred": "2019-03-29T21:42:21.245Z",
  "processed": "2019-04-03T15:10:23.828Z",
  "device": {
    "ios_channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
    "channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
    "device_type": "IOS",
    "named_user_id": "cooluser",
    "identifiers": {
      "com.urbanairship.limited_ad_tracking_enabled": "true",
      "session_id": "B147E0CE-272E-4047-A79C-30D02A2F213D",
      "GA_CID": "a61448e1-be63-43ee-84eb-19446ba743f0",
      "com.urbanairship.idfa": "A76E6F83-4F4A-47E2-BFDD-72BED91D2D1F",
      "com.urbanairship.vendor": "ED496B1A-43F1-45A9-A7C1-80125DE8A5B1"
      },
    "attributes": {
      "locale_variant": "",
      "app_version": "542",
      "device_model": "iPhone7,2",
      "app_package_name": "com.company_name.app_name",
      "iana_timezone": "America/Los_Angeles",
      "push_opt_in": "true",
      "locale_country_code": "US",
      "device_os": "11.4",
      "locale_timezone": "-25200",
      "locale_language_code": "en",
      "location_enabled": "false",
      "background_push_enabled": "true",
      "ua_sdk_version": "10.2.0",
      "location_permission": "ALWAYS_ALLOWED"
      }
    },
    "body": {
      "push_id": "91baacc8-1ebf-411d-a77a-ee036c44e7ce",
      "group_id": "91baacc8-1ebf-411d-a77a-ee036c44e7ce",
      "session_id": "a135087c-ba97-4b87-ac1d-a216f2cccb7c",
      "triggering_push": {
        "push_id": "a183f051-7d69-11ed-86d9-0242dc3f670b",
        "group_id": "8e7cfac3-cfd3-4f4f-a9a1-d766de9b063a",
        "campaigns": {
          "categories": [
            "welcome_series"
          ]
        }
      },
      "context": {
        "reporting_context": {
          "content_types": [
            "scene"
          ]
        },
        "state": {
          "pager": {
            "identifier": "302e80f2-1f9d-4e0d-890d-ff54196189d9",
            "page_identifier": "c3c6fe17-1c47-4f52-bff9-f95ed8a14072",
            "page_index": 1,
            "page_count": 3,
            "completed": true
          }
        }
      },
      "pager_identifier": "302e80f2-1f9d-4e0d-890d-ff54196189d9",
      "from_page_identifier": "c3c6fe17-1c47-4f52-bff9-f95ed8a14072",
      "from_page_index": 1,
      "to_page_identifier": "2ecb1788-30b9-4d8f-a267-38f687fc6e8b",
      "to_page_index": 0
    },
  "type": "IN_APP_PAGE_SWIPE"
}

In-app page view

Occurs when a page (screen) is displayed within a pager (specific to Scenes).

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • app_defined_id string

      An identifier defined by the application if the in-app pager was created by the application logic, not Airship. If this field is present, the event body will not contain push_id, group_id, variant_id, or triggering_push fields.

    • completed boolean

      True if the user reached the end of the pager.

    • context object<In-app context>

      The context provides the view state when a button, pager, or form interaction occurs.

    • group_id string

      Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.

    • locale string

      Optional string that defines the country and language this in-app-automation was localized as by remote-config-api. country - (String) An ISO 3166-1 country code, set by device settings. language - (String) The ISO 639-1 two-letter language code reflecting the language the phone is set to.

    • page_count number

      Total number of pages.

    • page_identifier string

      The current page identifier.

    • page_index number

      Is the current pager index.

    • pager_identifier string

      Is the pager controller identifier.

    • push_id string

      A unique identifier for a push operation.

    • session_id string

      Represents the “session” of user activity. Absent if the application was initialized while backgrounded.

    • time_sent string

      An ISO 8601 date-time indicating when the payload defining the in-app message was sent to the device. May be absent.

    • triggering_push object<Associated push>

      Present if the user started the current session by opening a push notification.

      The specific push_id and accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.

      An associated push object may specify a time, if the push was a singular operation sent at a defined time. Otherwise, the object will include a group_id if the push was sent at a relative time (best_time or local_time) an automation pipeline, or another operation resulting in multiple push_ids.

    • viewed_count number

      Number of times the current page has been viewed.

  • device object<App device information>REQUIRED

    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, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Used in:

Examples

Example in-app page view event

{
  "id": "51dd7c1c-5621-11e9-9601-0242539d70ef",
  "offset": "1000022467557",
  "occurred": "2019-03-29T21:42:21.245Z",
  "processed": "2019-04-03T15:10:23.828Z",
  "device": {
    "ios_channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
    "channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
    "device_type": "IOS",
    "named_user_id": "cooluser",
    "identifiers": {
      "com.urbanairship.limited_ad_tracking_enabled": "true",
      "session_id": "B147E0CE-272E-4047-A79C-30D02A2F213D",
      "GA_CID": "a61448e1-be63-43ee-84eb-19446ba743f0",
      "com.urbanairship.idfa": "A76E6F83-4F4A-47E2-BFDD-72BED91D2D1F",
      "com.urbanairship.vendor": "ED496B1A-43F1-45A9-A7C1-80125DE8A5B1"
      },
    "attributes": {
      "locale_variant": "",
      "app_version": "542",
      "device_model": "iPhone7,2",
      "app_package_name": "com.company_name.app_name",
      "iana_timezone": "America/Los_Angeles",
      "push_opt_in": "true",
      "locale_country_code": "US",
      "device_os": "11.4",
      "locale_timezone": "-25200",
      "locale_language_code": "en",
      "location_enabled": "false",
      "background_push_enabled": "true",
      "ua_sdk_version": "10.2.0",
      "location_permission": "ALWAYS_ALLOWED"
      }
    },
    "body": {
      "push_id": "d2482092-a0f5-4ec0-bf0a-f17a1657d1b0",
      "group_id": "d2482092-a0f5-4ec0-bf0a-f17a1657d1b0",
      "session_id": "65be61ee-dc60-47ec-b9d3-ebc469e0523b",
      "triggering_push": {
        "push_id": "a183f051-7d69-11ed-86d9-0242dc3f670b",
        "group_id": "8e7cfac3-cfd3-4f4f-a9a1-d766de9b063a",
        "campaigns": {
          "categories": [
            "welcome_series"
          ]
        }
      },
      "context": {
        "reporting_context": {
          "content_types": [
            "scene"
          ]
        },
        "state": {
          "pager": {
            "identifier": "f4d3d085-010b-4c2b-9e4d-574112b892ed",
            "page_identifier": "e55e6d8e-f04d-43f1-939c-822a1dd5a5e3",
            "page_index": 0,
            "page_count": 1,
            "completed": true
          }
        }
      },
      "pager_identifier": "f4d3d085-010b-4c2b-9e4d-574112b892ed",
      "page_identifier": "e55e6d8e-f04d-43f1-939c-822a1dd5a5e3",
      "page_index": 0,
      "page_count": 1,
      "viewed_count": 1,
      "completed": true
    },
  "type": "IN_APP_PAGE_VIEW"
}

In-app pager completed

Occurs when the last page (screen) of a pager is viewed for the first time (specific to Scenes).

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • app_defined_id string

      An identifier defined by the application if the in-app pager was created by the application logic, not Airship. If this field is present, the event body will not contain push_id, group_id, variant_id, or triggering_push fields.

    • context object<In-app context>

      The context provides the view state when a button, pager, or form interaction occurs.

    • group_id string

      Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.

    • locale string

      Optional string that defines the country and language this in-app-automation was localized as by remote-config-api. country - (String) An ISO 3166-1 country code, set by device settings. language - (String) The ISO 639-1 two-letter language code reflecting the language the phone is set to.

    • page_count number

      Total number of pages.

    • page_identifier string

      The current page identifier.

    • page_index number

      Is the current pager index.

    • pager_identifier string

      Is the pager controller identifier.

    • push_id string

      A unique identifier for a push operation.

    • session_id string

      Represents the “session” of user activity. Absent if the application was initialized while backgrounded.

    • time_sent string

      An ISO 8601 date-time indicating when the payload defining the in-app message was sent to the device. May be absent.

    • triggering_push object<Associated push>

      Present if the user started the current session by opening a push notification.

      The specific push_id and accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.

      An associated push object may specify a time, if the push was a singular operation sent at a defined time. Otherwise, the object will include a group_id if the push was sent at a relative time (best_time or local_time) an automation pipeline, or another operation resulting in multiple push_ids.

  • device object<App device information>REQUIRED

    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, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Used in:

Examples

Example in-app pager completed event

{
  "id": "51dd7c1c-5621-11e9-9601-0242539d70ef",
  "offset": "1000022467557",
  "occurred": "2019-03-29T21:42:21.245Z",
  "processed": "2019-04-03T15:10:23.828Z",
  "device": {
    "ios_channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
    "channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
    "device_type": "IOS",
    "named_user_id": "cooluser",
    "identifiers": {
      "com.urbanairship.limited_ad_tracking_enabled": "true",
      "session_id": "B147E0CE-272E-4047-A79C-30D02A2F213D",
      "GA_CID": "a61448e1-be63-43ee-84eb-19446ba743f0",
      "com.urbanairship.idfa": "A76E6F83-4F4A-47E2-BFDD-72BED91D2D1F",
      "com.urbanairship.vendor": "ED496B1A-43F1-45A9-A7C1-80125DE8A5B1"
      },
    "attributes": {
      "locale_variant": "",
      "app_version": "542",
      "device_model": "iPhone7,2",
      "app_package_name": "com.company_name.app_name",
      "iana_timezone": "America/Los_Angeles",
      "push_opt_in": "true",
      "locale_country_code": "US",
      "device_os": "11.4",
      "locale_timezone": "-25200",
      "locale_language_code": "en",
      "location_enabled": "false",
      "background_push_enabled": "true",
      "ua_sdk_version": "10.2.0",
      "location_permission": "ALWAYS_ALLOWED"
      }
    },
    "body": {
      "push_id": "a9a5912c-2526-4383-b516-711c58aff900",
      "group_id": "a9a5912c-2526-4383-b516-711c58aff900",
      "session_id": "94e8caed-9b82-4166-b585-a01eed933855",
      "triggering_push": {
        "push_id": "a183f051-7d69-11ed-86d9-0242dc3f670b",
        "group_id": "8e7cfac3-cfd3-4f4f-a9a1-d766de9b063a",
        "campaigns": {
          "categories": [
            "welcome_series"
          ]
        }
      },
      "context": {
        "reporting_context": {
          "content_types": [
            "survey"
          ]
        },
        "state": {
          "form": {
            "form_identifier": "870db95f-3715-4c98-8047-2871c175d003",
            "submitted": true,
            "type": "nps",
            "response_type": "nps"
          },
          "pager": {
            "identifier": "9e051354-185b-4d4d-888a-885def2e6b7a",
            "page_identifier": "32f4fc47-74ee-41c6-8e16-c9e0aa364101",
            "page_index": 1,
            "page_count": 2,
            "completed": true
          }
        }
      },
      "pager_identifier": "9e051354-185b-4d4d-888a-885def2e6b7a",
      "page_identifier": "32f4fc47-74ee-41c6-8e16-c9e0aa364101",
      "page_index": 1,
      "page_count": 2
    },
  "type": "IN_APP_PAGER_COMPLETED"
}

In-app pager summary

Describes the full path a user took within a pager (specific to Scenes), including the order of pages (screens) visited and time spent per page.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • app_defined_id string

      An identifier defined by the application if the in-app pager was created by the application logic, not Airship. If this field is present, the event body will not contain push_id, group_id, variant_id, or triggering_push fields.

    • completed boolean

      True if the user reached the end of the pager.

    • context object<In-app context>

      The context provides the view state when a button, pager, or form interaction occurs.

    • group_id string

      Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.

    • locale string

      Optional string that defines the country and language this in-app-automation was localized as by remote-config-api. country - (String) An ISO 3166-1 country code, set by device settings. language - (String) The ISO 639-1 two-letter language code reflecting the language the phone is set to.

    • page_count number

      Total number of pages.

    • page_identifier string

      The current page identifier.

    • pager_identifier string

      Is the pager controller identifier.

    • push_id string

      A unique identifier for a push operation.

    • session_id string

      Represents the “session” of user activity. Absent if the application was initialized while backgrounded.

    • time_sent string

      An ISO 8601 date-time indicating when the payload defining the in-app message was sent to the device. May be absent.

    • triggering_push object<Associated push>

      Present if the user started the current session by opening a push notification.

      The specific push_id and accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.

      An associated push object may specify a time, if the push was a singular operation sent at a defined time. Otherwise, the object will include a group_id if the push was sent at a relative time (best_time or local_time) an automation pipeline, or another operation resulting in multiple push_ids.

    • viewed_pages object
      OBJECT PROPERTIES
      • display_time_ms number

        Is how long the page was displayed in milliseconds.

      • page_identifier string

        The current page identifier.

      • page_index number

        The current page index.

  • device object<App device information>REQUIRED

    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, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Used in:

Examples

Example in-app pager summary event

{
  "id": "51dd7c1c-5621-11e9-9601-0242539d70ef",
  "offset": "1000022467557",
  "occurred": "2019-03-29T21:42:21.245Z",
  "processed": "2019-04-03T15:10:23.828Z",
  "device": {
    "ios_channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
    "channel": "a61448e1-be63-43ee-84eb-19446ba743f0",
    "device_type": "IOS",
    "named_user_id": "cooluser",
    "identifiers": {
      "com.urbanairship.limited_ad_tracking_enabled": "true",
      "session_id": "B147E0CE-272E-4047-A79C-30D02A2F213D",
      "GA_CID": "a61448e1-be63-43ee-84eb-19446ba743f0",
      "com.urbanairship.idfa": "A76E6F83-4F4A-47E2-BFDD-72BED91D2D1F",
      "com.urbanairship.vendor": "ED496B1A-43F1-45A9-A7C1-80125DE8A5B1"
      },
    "attributes": {
      "locale_variant": "",
      "app_version": "542",
      "device_model": "iPhone7,2",
      "app_package_name": "com.company_name.app_name",
      "iana_timezone": "America/Los_Angeles",
      "push_opt_in": "true",
      "locale_country_code": "US",
      "device_os": "11.4",
      "locale_timezone": "-25200",
      "locale_language_code": "en",
      "location_enabled": "false",
      "background_push_enabled": "true",
      "ua_sdk_version": "10.2.0",
      "location_permission": "ALWAYS_ALLOWED"
      }
    },
    "body": {
      "push_id": "898c0cde-02d8-4674-8c3a-91183aab8b7b",
      "group_id": "898c0cde-02d8-4674-8c3a-91183aab8b7b",
      "session_id": "393ae595-bb43-48a2-9878-996e11581754",
      "triggering_push": {
        "push_id": "a183f051-7d69-11ed-86d9-0242dc3f670b",
        "group_id": "8e7cfac3-cfd3-4f4f-a9a1-d766de9b063a",
        "campaigns": {
          "categories": [
            "welcome_series"
          ]
        }
      },                    
      "context": {
        "reporting_context": {
          "content_types": [
            "scene"
          ]
        },
        "state": {
          "pager": {
            "identifier": "7cb3bd21-060c-46d6-9e88-fb0b5376897e",
            "page_identifier": "7888b6dd-0a33-420d-a596-1342dca84fcf",
            "page_index": 0,
            "page_count": 1,
            "completed": false
          }
        }
      },
      "pager_identifier": "7cb3bd21-060c-46d6-9e88-fb0b5376897e",
      "page_count": 1,
      "completed": false,
      "viewed_pages": [
        {
          "page_identifier": "7888b6dd-0a33-420d-a596-1342dca84fcf",
          "page_index": 0,
          "display_time_ms": 33019
        }
      ]
    },
  "type": "IN_APP_PAGER_SUMMARY"
}

Label event

Occurs when you update a Scene screen name.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • group_id string

      Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.

    • labels array[object]REQUIRED

      Page list

    • push_id stringREQUIRED

      A unique identifier for a push operation.

  • id stringREQUIRED

    Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same id, type, occurred, and body values but different offset and processed values. Use the id 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: LABEL_EVENT

Used in:

Examples

Example label event

{
  "id":"00000199-2eb3-7fdc-b598-bf7930422ef4",
  "offset":"1000232372984",
  "occurred":"2025-09-09T13:38:59.676Z",
  "processed":"2025-09-09T13:38:59.808Z",
  "body":{
    "push_id":"f9dde97e-e0f7-47f8-928b-08ebd761a1ea",
    "labels":[
      {
        "id":"81f5e794-9a81-418a-b625-6affd0f99f34",
        "label":"Screen 1"
      },
      {
        "id":"8011912d-26bf-4163-b545-e047165cf0a9",
        "label":"Screen 2"
      },
      {
        "id":"3142620e-844e-461e-bc4f-4a706d2bcbe2",
        "label":"Screen 3"
      }
    ]
  },
  "type":"LABEL_EVENT"
}

Location

An event declaring the device to be at a particular latitude and longitude.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • foreground booleanREQUIRED

      If true, the application was foregrounded when the event occurred.

    • latitude stringREQUIRED

      The latitude where the event occurred.

    • longitude stringREQUIRED

      The longitude where the event occurred.

    • session_id string

      Represents the “session” of user activity. Absent if the application was initialized while backgrounded.

  • device object<App device information>REQUIRED

    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, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Used in:

Examples

Example location event

{
  "id": "910fea50-5d42-1159-b702-024288f4e1d3",
  "offset": "1000022468589",
  "occurred": "2019-04-03T18:59:02.246Z",
  "processed": "2019-04-03T19:10:26.301Z",
  "device": {
    "android_channel": "364a4e3f-170a-4f26-b0a1-11b280377dfe",
    "channel": "364a4e3f-170a-4f26-b0a1-11b280377dfe",
    "device_type": "ANDROID",
    "identifiers": {
      "com.urbanairship.gimbal.aii": "2471037d-71d8-4229-a40f-df719f1af914",
      "session_id": "54204a73-7a95-4ffc-8051-bf230d086e19",
      "GA_CID": "90d56c80-f31f-49fd-87b0-20deb3d2602a"
    },
    "attributes": {
      "locale_variant": "",
      "app_version": "dev",
      "device_model": "Android SDK built for x86",
      "app_package_name": "com.company_name.app_name",
      "iana_timezone": "America/Los_Angeles",
      "push_opt_in": "true",
      "locale_country_code": "US",
      "device_os": "9",
      "locale_timezone": "-25200",
      "locale_language_code": "en",
      "location_enabled": "false",
      "background_push_enabled": "true",
      "ua_sdk_version": "9.7.0",
      "location_permission": "ALWAYS_ALLOWED"
    }
  },
  "body": {
    "latitude": "51.5033630",
    "longitude": "-0.1276250",
    "foreground": true,
    "session_id": "ecd3741d-92c4-469b-b42c-888e40a121d3"
  },
  "type": "LOCATION"
}

Mobile originated event

Represents a message action that originated from a user — like an inbound SMS or email.

Jump to examples ↓

OBJECT PROPERTIES
  • body object<Mobile-originated SMS event>REQUIRED

    An event that occurs when a user sends a message from an SMS device, i.e., the message originates from a mobile device and not from the server (Airship). This event contains context related to the message’s origin, the incoming message itself, and Airship’s response to the origin.

  • device objectREQUIRED

    Holds information about an SMS device (an individual SMS channel).

    OBJECT PROPERTIES
    • channel string

      The unique, platform-agnostic channel identifier for a device.

    • delivery_address string

      The phone number for the channel.

    • device_type stringREQUIRED

      SMS compliance events use the SMS device type.

      Possible values: SMS

    • identifiers object

      If present, the identifiers object holds the value for the sender property.

      OBJECT PROPERTIES
      • 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, and body values but different offset and processed values. You should use the id 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

Used in:

Examples

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"
}

Open

Occurs when a user opens your app.

Jump to examples ↓

OBJECT PROPERTIES
  • body object
    OBJECT PROPERTIES
    • last_delivered object

      Identifies the last push notification the audience received before the event. Absent if the last push occurred more than 12 hours ago.

      OBJECT PROPERTIES
      • campaigns object

        An object listing the campaigns a push specification is associated with. The campaigns object includes an array of categories that must have between 1 and 10 elements, each of which is a string with a 64-byte and -character limit.

        OBJECT PROPERTIES
        • categories array[string]
      • group_id string

        Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.

      • push_id stringREQUIRED

        A unique identifier for a push operation.

      • time string

        The UTC time when the push occurred.

      • variant_id integer

        The ID of the variant that a push is associated with, if the push was a part of an A/B test (experiment).

    • session_id string

      Represents the “session” of user activity. Absent if the application was initialized while backgrounded.

    • triggering_push object<Associated push>

      An associated push object, establishing a causal relationship between a push and the Open event. Absent if a causal relationship to a push cannot be established.

      The specific push_id and accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.

      An associated push object may specify a time, if the push was a singular operation sent at a defined time. Otherwise, the object will include a group_id if the push was sent at a relative time (best_time or local_time) an automation pipeline, or another operation resulting in multiple push_ids.

  • device object<App device information>

    Information about app users generated by the SDK.

  • id string

    Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same id, type, occurred, device, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Used in:

Examples

Example open event

{
  "id": "910fea50-5d42-1159-b702-024288f4e1d3",
  "offset": "1000022468589",
  "occurred": "2019-04-03T18:59:02.246Z",
  "processed": "2019-04-03T19:10:26.301Z",
  "device": {
    "android_channel": "364a4e3f-170a-4f26-b0a1-11b280377dfe",
    "channel": "364a4e3f-170a-4f26-b0a1-11b280377dfe",
    "device_type": "ANDROID",
    "identifiers": {
      "com.urbanairship.gimbal.aii": "2471037d-71d8-4229-a40f-df719f1af914",
      "session_id": "54204a73-7a95-4ffc-8051-bf230d086e19",
      "GA_CID": "90d56c80-f31f-49fd-87b0-20deb3d2602a"
    },
    "attributes": {
      "locale_variant": "",
      "app_version": "1037.04c13d-master",
      "device_model": "Nokia 6.1",
      "app_package_name": "com.company_name.app_name",
      "iana_timezone": "America/Los_Angeles",
      "push_opt_in": "true",
      "locale_country_code": "US",
      "device_os": "9",
      "locale_timezone": "-25200",
      "locale_language_code": "en",
      "location_enabled": "false",
      "background_push_enabled": "true",
      "ua_sdk_version": "9.7.0",
      "location_permission": "ALWAYS_ALLOWED"
      }
    },
  "user": {
      "contact_id": "982B35f2-0375-6384-893e-a19b5cd5R771"
    },
  "body": {
    "last_delivered": {
        "push_id": "6e3339ce-529c-42e4-a2f6-7546f81c9828",
        "time": "2015-07-30T21:03:37.631Z"
    },
    "triggering_push": {
        "push_id": "c2f6c5c5-f353-49c0-b5f7-6e87cf9b1a06",
        "group_id": "8ea2abd6-dbc7-475a-9c57-fb31c7e2999b",
        "variant_id": 1
    },
    "session_id": "ad4ad05a-17f4-4eab-9c6f-d3f7fbf3cc25"
  },
  "type": "OPEN"
}

Push body

Occurs when you initiate a push, automation, or sequence.

Airship fulfills delivery over a time interval with a number of child pushes, each with a unique Push ID and a common Group ID. There is no guarantee that push body events (defined in Push Body Event) for the child pushes fulfilling a group will appear in the stream.

Note: When you start, pause, or publish a sequence, Airship emits a push_body event for the sequence itself, and each message contained within the sequence (i.e., messages +1). After you start a sequence, Airship does not issue subsequent push_body events for the sequence unless you pause or publish changes to the sequence.

Jump to examples ↓

OBJECT PROPERTIES
  • body object
    OBJECT PROPERTIES
    • campaigns object

      An object listing the campaigns a push specification is associated with. The campaigns object includes an array of categories that must have between 1 and 10 elements, each of which is a string with a 64-byte and -character limit.

      OBJECT PROPERTIES
      • categories array[string]
    • group_id string

      Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.

    • payload stringREQUIRED

      The specification of the push as sent via the API, a Base64 encoded JSON value.

    • push_id string

      A unique identifier for a push operation.

    • resource stringREQUIRED

      Describes the type of push, helping you interpret the JSON response. Values pertain to the push type.

      Possible values: PIPELINES, SCHEDULES, PUSH, EXPERIMENTS, IN_APP_AUTOMATION

    • trimmed booleanREQUIRED

      If true, the push payload was trimmed from the event body.

  • id string

    Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same id, type, occurred, device, and body values but different offset and processed values. You should use the id 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

Used in:

Examples

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"
}

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 the identifiers object.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • action stringREQUIRED

      Indicates whether the event was the result of a user entering or exiting the region.

      Possible values: enter, exit

    • name string

      A friendly name for the event; may be retrieved from a third-party.

    • region_id stringREQUIRED

      The identifier for the region in Airship.

    • session_id string

      Represents the “session” of user activity. Absent if the application was initialized while backgrounded.

    • source_info objectREQUIRED

      Information about the source application that generated the event.

      OBJECT PROPERTIES
      • region_id string

        The unique region identifier from the originating system.

      • source string

        Identifies the system that the event originated from.

  • device object<App device information>REQUIRED

    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, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Used in:

Examples

Example region event

{
  "id": "910fea50-5d42-1159-b702-024288f4e1d3",
  "offset": "1000022468589",
  "occurred": "2019-04-03T18:59:02.246Z",
  "processed": "2019-04-03T19:10:26.301Z",
  "device": {
    "android_channel": "364a4e3f-170a-4f26-b0a1-11b280377dfe",
    "channel": "364a4e3f-170a-4f26-b0a1-11b280377dfe",
    "device_type": "ANDROID",
    "identifiers": {
      "com.urbanairship.gimbal.aii": "2471037d-71d8-4229-a40f-df719f1af914",
      "session_id": "54204a73-7a95-4ffc-8051-bf230d086e19",
      "GA_CID": "90d56c80-f31f-49fd-87b0-20deb3d2602a"
    },
    "attributes": {
      "locale_variant": "",
      "app_version": "dev",
      "device_model": "Android SDK built for x86",
      "app_package_name": "com.company_name.app_name",
      "iana_timezone": "America/Los_Angeles",
      "push_opt_in": "true",
      "locale_country_code": "US",
      "device_os": "9",
      "locale_timezone": "-25200",
      "locale_language_code": "en",
      "location_enabled": "false",
      "background_push_enabled": "true",
      "ua_sdk_version": "9.7.0",
      "location_permission": "ALWAYS_ALLOWED"
    }
  },
  "body":{
    "action": "enter",
    "region_id": "fb542343-9a43-450a-be7f-43bed95057ff",
    "session_id": "0a50fdb9-dfa9-4e0e-8373-4f0c5c7137c7",
    "name": "Coolest Place",
    "source_info": {
        "source": "Gimbal",
        "region_id": "a vendor identifier"
    }
  },
  "type": "REGION"
}

Rich control

Occurs when a Message Center message is not delivered to a user because they are in a control group for a Sequence A/B test or Holdout Experiment.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • group_id string

      Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.

    • push_id string

      A unique identifier for a push operation.

  • device object<App device information>REQUIRED

    Information about app users generated by the SDK.

  • experiment_id string

    ID for the requested experiment.

  • id stringREQUIRED

    Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same id, type, occurred, device, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Used in:

Examples

Example event body - message not delivered due to user being in a control group

{
  "id" : "e97ef291-eb48-6614-a9f4-9138244a9144",
  "offset" : "-1099401623",
  "occurred" : "2024-11-05T23:47:55.473Z",
  "processed" : "2024-11-05T23:47:55.473Z",
  "device" : {
    "ios_channel" : "564f958c-806f-bdaf-340b-1a25867d1c6a",
    "channel" : "564f958c-806f-bdaf-340b-1a25867d1c6a",
    "device_type" : "IOS"
  },
  "user": {
    "contact_id": "6b5ca2a2-c1f1-4119-9617-2d5bff0db09d",
    "named_user_id": "mini_me"
  },
  "body" : {
    "push_id" : "62fd4bac-a85a-0e18-00b4-9e59339bece5",
    "group_id" : "da16d1c2-7d8f-9ade-ff14-05ce696ba042"
  },
  "type" : "RICH_CONTROL"
}

Rich delete

Occurs when a user deletes a Message Center message from their inbox.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • group_id string

      Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.

    • push_id string

      A unique identifier for a push operation.

  • device object<App device information>REQUIRED

    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, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Used in:

Examples

Example event body - indicates the `push_id` that was deleted

{
  "id": "ca2948b0-56ea-11e9-88dc-a142740a77e1",
  "offset": "1000022469540",
  "occurred": "2019-04-04T15:03:22.545Z",
  "processed": "2019-04-04T15:12:54.657Z",
  "device": {
    "ios_channel": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
    "channel": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
    "device_type": "IOS",
    "named_user_id": "coolusername",
    "identifiers": {
      "com.urbanairship.limited_ad_tracking_enabled": "true",
      "session_id": "837645C4-BD17-455C-96A3-999E1290EFA7",
      "GA_CID": "d12b5b66-d0c6-40f6-923f-ea039e3e8297",
      "com.urbanairship.idfa": "9610438A-6AEF-4113-BB99-2F64CB56ED2F",
      "com.urbanairship.vendor": "F2519C6C-A724-4343-80C7-1F1E42C53DFF"
    },
    "attributes": {
      "locale_variant": "",
      "app_version": "542",
      "device_model": "iPhone8,1",
      "app_package_name": "com.company_name.app_name",
      "iana_timezone": "Europe/London",
      "push_opt_in": "true",
      "locale_country_code": "GB",
      "device_os": "12.1.4",
      "locale_timezone": "3600",
      "locale_language_code": "en",
      "location_enabled": "false",
      "background_push_enabled": "true",
      "ua_sdk_version": "10.2.0",
      "location_permission": "FOREGROUND_ALLOWED"
    }
  },
  "user": {
      "named_user_id": "coolusername",
      "contact_id": "982B35f2-0375-6384-893e-a19b5cd5R771"
    },
  "body": {
    "push_id": "1bf2A1a1-4069-11e9-abf1-024297609801"
  },
  "type": "RICH_DELETE"
}

Rich delivery

Occurs when a Message Center message is delivered to a user’s inbox.

Even though rich push deliveries may or may not cause an alert on the user’s lock screen, they are always associated with a push identifier in the Airship system.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • group_id string

      Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.

    • push_id string

      A unique identifier for a push operation.

  • device object<App device information>REQUIRED

    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, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Used in:

Examples

Example event body — indicates the `push_id` that reached the user

{
  "id": "83848900-54ac-11e9-a132-024278224c1c",
  "offset": "1000022466003",
  "occurred": "2019-04-01T18:32:32.912Z",
  "processed": "2019-04-01T18:32:33.031Z",
  "device": {
    "android_channel": "1de67612-94bc-4d02-85b0-37ede154a9d7",
    "channel": "1de67612-94bc-4d02-85b0-37ede154a9d7",
    "device_type": "ANDROID"
  },
  "user": {
    "contact_id": "982B35f2-0375-6384-893e-a19b5cd5R771"
  },
  "body": {
    "push_id": "1a7d774c-1659-4104-b594-2f7ec739c92d"
  },
  "type": "RICH_DELIVERY"
}

Rich read

Occurs when a user reads a Message Center message in their inbox.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • group_id string

      Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.

    • push_id string

      A unique identifier for a push operation.

  • device object<App device information>REQUIRED

    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, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Used in:

Examples

Example event body — indicates the `push_id` that the user read

{
  "id": "ca2948b0-56ea-11e9-88dc-a142740a77e1",
  "offset": "1000022469540",
  "occurred": "2019-04-04T15:03:22.545Z",
  "processed": "2019-04-04T15:12:54.657Z",
  "device": {
    "ios_channel": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
    "channel": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
    "device_type": "IOS",
    "named_user_id": "coolusername",
    "identifiers": {
      "com.urbanairship.limited_ad_tracking_enabled": "true",
      "session_id": "837645C4-BD17-455C-96A3-999E1290EFA7",
      "GA_CID": "d12b5b66-d0c6-40f6-923f-ea039e3e8297",
      "com.urbanairship.idfa": "9610438A-6AEF-4113-BB99-2F64CB56ED2F",
      "com.urbanairship.vendor": "F2519C6C-A724-4343-80C7-1F1E42C53DFF"
    },
    "attributes": {
      "locale_variant": "",
      "app_version": "542",
      "device_model": "iPhone8,1",
      "app_package_name": "com.company_name.app_name",
      "iana_timezone": "Europe/London",
      "push_opt_in": "true",
      "locale_country_code": "GB",
      "device_os": "12.1.4",
      "locale_timezone": "3600",
      "locale_language_code": "en",
      "location_enabled": "false",
      "background_push_enabled": "true",
      "ua_sdk_version": "10.2.0",
      "location_permission": "FOREGROUND_ALLOWED"
    }
  },
  "user": {
    "named_user_id": "coolusername",
    "contact_id": "982B35f2-0375-6384-893e-a19b5cd5R771"
  },
  "body": {
    "push_id": "1bf2A1a1-4069-11e9-abf1-024297609801",
    "time": "2019-03-04T15:12:54.657Z"
  },
  "type": "RICH_READ"
}

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.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • duration integer

      The number of milliseconds that the user was on the screen.

    • previous_screen string

      The name assigned to the screen the user was on prior to the viewed_screen.

    • session_id string

      Represents the “session” of user activity. Absent if the application was initialized while backgrounded.

    • viewed_screen string

      The name assigned to the screen that the user left.

  • device object<App device information>REQUIRED

    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, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Used in:

Examples

Example screen viewed event

{
  "id": "a7086338-0473-46fe-8d9b-cb61305c3c0d",
  "offset": "1000000701505",
  "occurred": "2018-12-03T19:31:10.000Z",
  "processed": "2018-12-03T19:31:11.302Z",
  "device": {
    "ios_channel": "c1ca5af6-b014-46f9-8566-33f5f52c7b19",
    "channel": "c9cb18f7-b814-40f9-8566-33f5f52c7c48",
    "device_type": "IOS",
    "identifiers": {
      "com.urbanairship.limited_ad_tracking_enabled": "true",
      "session_id": "B1E00276-98BE-4B38-9077-FB2E90EFBE1B",
      "GA_CID": "1fa021e7-8298-4f92-bee0-07cb95eecfdd",
      "com.urbanairship.idfa": "1821a235-CD43-4ED8-8633-3BD3B991FA25",
      "com.urbanairship.vendor": "164d552C-F5F0-4C83-B529-321667C8E48A"
    },
    "attributes": {
      "locale_variant": "",
      "app_version": "550",
      "device_model": "iPhone9,1",
      "app_package_name": "com.company_name.app_name",
      "iana_timezone": "Europe/Berlin",
      "push_opt_in": "true",
      "locale_country_code": "US",
      "device_os": "12.2",
      "locale_timezone": "7200",
      "locale_language_code": "en",
      "location_enabled": "false",
      "background_push_enabled": "true",
      "ua_sdk_version": "10.2.2",
      "location_permission": "FOREGROUND_ALLOWED"
    }
  },
  "body": {
    "duration": 13933,
    "viewed_screen": "home",
    "previous_screen": "message_center",
    "session_id": "a26102f9-7fb2-451d-a65c-56e9394cf726"
  },
  "type": "SCREEN_VIEWED"
}

Send

Occurs whenever a push notification is sent to a device identified in the audience selector of a message.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • alerting boolean

      If true, the send event was alerting. Alerting send event has notification text, badge, or sound.

    • campaigns object

      An object listing the campaigns a push specification is associated with. The campaigns object includes an array of categories that must have between 1 and 10 elements, each of which is a string with a 64-byte and -character limit.

      OBJECT PROPERTIES
      • categories array[string]
    • click_tracking boolean

      If true, email click events will be reported. Only HTTP and HTTPS links are tracked.

    • context object

      An object that establishes a relationship between a push and the origin of the message. Only messages triggered by a Custom Event will include the context.

      OBJECT PROPERTIES
      • event_uuid stringREQUIRED

        The ID of the Custom Event which triggered the send.

      • interaction_id string

        If interaction_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

    • experiment_id string

      The unique identifier for the Message A/B test or Holdout Experiment.

    • group_id string

      Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.

    • open_tracking boolean

      If true, email open events will be reported.

    • push_id stringREQUIRED

      A unique identifier for a push operation.

    • variant_id integer

      The ID of the variant that a push is associated with, if the push was a part of an A/B test (experiment).

  • device objectREQUIRED
    One of
    • Information about app users generated by the SDK.

    • Information about web users generated by the SDK.

    • Information about the SMS or email device related to an event.

    • Information about open channel users.

  • experiments object

    An object listing the details of the Message A/B test or Holdout Experiment, if the send includes either.

    OBJECT PROPERTIES
    • experiment_id string

      The unique identifier for the Message A/B test or Holdout Experiment.

    • type string

      The type of experiment. GLOBAL is for A/B tests, EXP_GROUP is for Holdout Experiments.

      Possible values: EXP_GROUP, GLOBAL

    • variant_id string

      For A/B tests, the string ID of the message variant.

  • id stringREQUIRED

    Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same id, type, occurred, device, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Used in:

Examples

Example send event

{
  "id": "ca2948b0-56ea-11e9-88dc-a142740a77e1",
  "offset": "1000022469540",
  "occurred": "2019-04-04T15:03:22.545Z",
  "processed": "2019-04-04T15:12:54.657Z",
  "device": {
    "ios_channel": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
    "channel": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
    "device_type": "IOS",
    "named_user_id": "coolusername",
    "attributes": {
      "locale_variant": "",
      "app_version": "542",
      "device_model": "iPhone8,1",
      "app_package_name": "com.company_name.app_name",
      "iana_timezone": "Europe/London",
      "push_opt_in": "true",
      "locale_country_code": "GB",
      "device_os": "12.1.4",
      "locale_timezone": "3600",
      "locale_language_code": "en",
      "location_enabled": "false",
      "background_push_enabled": "true",
      "ua_sdk_version": "10.2.0",
      "location_permission": "FOREGROUND_ALLOWED"
    }
  },
  "user": {
    "contact_id": "6b5ca2a2-c1f1-4119-9617-2d5bff0db09d",
    "named_user_id": "coolusername"
  },
  "body": {
    "variant_id": 1,
    "push_id": "0c173744-dd35-4b5e-9f7f-2b7e0ce0e36e",
    "alerting": true,
    "campaigns": {
        "categories": [
          "hello",
          "numberwang",
          "first message"
        ]
      },
    "context": {
      "triggered_by": "custom_event",
      "event_uuid": "03669090-f934-45e2-a443-c75f6304ae6c",
      "transaction": "886f53d4-3e0f-46d7-930e-c2792dac6e0a",
      "interaction_id": "hello"
      }
    },
  "type": "SEND"
}

Send aborted

Occurs when a push is dropped from our system before delivery is attempted. This can happen:

  • When using External Data Feeds to personalize a message and an error was encountered or the feed returned a non-successful response
  • When a Message Limit is met
  • When a Ban List webhook issues a drop response for a user

Device information for the device that did not receive the push is included with SEND_ABORTED events.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • campaigns object

      An object listing the campaigns a push specification is associated with. The campaigns object includes an array of categories that must have between 1 and 10 elements, each of which is a string with a 64-byte and -character limit.

      OBJECT PROPERTIES
      • categories array[string]
    • group_id string

      Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.

    • push_id stringREQUIRED

      A unique identifier for a push operation.

    • reason stringREQUIRED

      Describes the reason this push was aborted.

      • FEED_BANNED_RESPONSE: The response from the endpoint indicated a channel was banned. See Ban Lists.
      • FEED_REQUEST_REJECTED: The request to the specified server was rejected. Occurs when a 4xx HTTP response code is returned when Airship calls the webhook.
      • FEED_RESOLVE_FAILURE: The URI of the feed could not be resolved.
      • FREQUENCY_LIMIT_FAILURE: A Message Limit retrieval failed.
      • FREQUENCY_LIMIT_REACHED: A Message Limit was exceeded.
      • UNKNOWN: The error occurred due to another problem.

      Possible values: FEED_BANNED_RESPONSE, FEED_REQUEST_REJECTED, FEED_RESOLVE_FAILURE, FREQUENCY_LIMIT_FAILURE, FREQUENCY_LIMIT_REACHED, UNKNOWN

  • device object<App device information>REQUIRED

    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, and body values but different offset and processed values. You should use the id 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

Used in:

Examples

Example send aborted event

{
  "id": "fc06bf54-619b-4fda-9345-d8f9f8e891ef",
  "occurred": "2021-02-26T20:50:21.12Z",
  "offset": "1000001215643",
  "processed": "2021-02-26T20:50:49.64Z",
  "type": "SEND_ABORTED",
  "device": {
    "android_channel": "e664fb42-d1a7-4956-9907-88c49394ae70",
    "channel": "e664fb42-d1a7-4956-9907-88c49394ae70",
    "device_type": "ANDROID",
    },
  "body": {
    "push_id": "26ea5408-a1ec-4771-b4f0-e86d45c03f8a",
    "group_id": "3795a26d-2d74-462b-b228-ca3ed31ef7b1",
    "reason": "FEED_RESOLVE_FAILURE"
  }
}

Example send aborted event due to Ban List

{
  "id": "fc06bf54-619b-4fda-9345-d8f9f8e891ef",
  "occurred": "2021-02-26T20:50:21.12Z",
  "offset": "1000001215643",
  "processed": "2021-02-26T20:50:49.64Z",
  "type": "SEND_ABORTED",
  "device": {
    "android_channel": "e664fb42-d1a7-4956-9907-88c49394ae70",
    "channel": "e664fb42-d1a7-4956-9907-88c49394ae70",
    "device_type": "ANDROID",
    },
  "body": {
    "push_id": "26ea5408-a1ec-4771-b4f0-e86d45c03f8a",
    "group_id": "3795a26d-2d74-462b-b228-ca3ed31ef7b1",
    "reason": "FEED_BANNED_RESPONSE"
  }
}

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.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • campaigns object

      An object listing the campaigns a push specification is associated with. The campaigns object includes an array of categories that must have between 1 and 10 elements, each of which is a string with a 64-byte and -character limit.

      OBJECT PROPERTIES
      • categories array[string]
    • group_id string

      Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.

    • push_id stringREQUIRED

      A unique identifier for a push operation.

    • 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 object<App device information>REQUIRED

    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, and body values but different offset and processed values. You should use the id 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

Used in:

Examples

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 user taps or “clicks” an Airship-shortened link in an SMS or MMS message.

Jump to examples ↓

OBJECT PROPERTIES
  • OBJECT PROPERTIES
    • campaigns object

      An object listing the campaigns a push specification is associated with. The campaigns object includes an array of categories that must have between 1 and 10 elements, each of which is a string with a 64-byte and -character limit.

      OBJECT PROPERTIES
      • categories array[string]
    • group_id string

      Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.

    • properties objectREQUIRED
      OBJECT PROPERTIES
      • original_url stringREQUIRED

        The URL represented by the Airship-shortened link.

    • push_id stringREQUIRED

      A unique identifier for a push operation.

  • OBJECT PROPERTIES
    • attributes object
      OBJECT PROPERTIES
      • web_user_agent_string string

        Describes the web user agent for the audience member who used the link.

    • channel stringREQUIRED

      The unique, platform-agnostic channel identifier for a device.

    • delivery_address string

      The MSISDN of the audience member who clicked the link.

    • device_type stringREQUIRED

      Possible values: SMS

    • identifiers object
      OBJECT PROPERTIES
      • sender stringREQUIRED

        The sender of the message.

  • Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same id, type, occurred, device, and body values but different offset and processed values. You should use the id to deduplicate.

  • When the event occurred.

  • An identifier of a location in the stream; used to resume the stream after severing a connection. If you open a stream using the offset value, the stream will resume with the next element in the stream. You should store this value as a string so that you can easily resume the stream if it ends for any reason.

  • When the event was ingested by Airship. There may be some latency between when the event occurred, and when it was processed.

  • Possible values: SHORT_LINK_CLICK

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": "api/connect#schemas-short_link_click"
        }
    },
    "type": "SHORT_LINK_CLICK"
}

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.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • event_type stringREQUIRED

      Determines the source of the subscription event. registration and create_and_send events result in changes to opted_in dates; all other event types contain opted_out dates.

      • registration: Represents a change to a user’s commercial_opted_in, transactional_opted_in, click_tracking_opted_in, or open_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 the unsubscribe button in their email client.
      • link_unsubscribe: The user clicked an unsubscribe 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 channel_id specified in the event.

      OBJECT PROPERTIES
      • address string

        The email address representing the change.

      • subscription_lists object

        Changes to a device or user’s subscription list membership.

        OBJECT PROPERTIES
        • canceled array[string]

          An array of subscription list IDs which were canceled. Present only when a cancellation occurred.

        • enrolled array[string]

          An array of subscription list IDs which were enrolled. Present only when an enrollment occurred.

        • scope string

          The scope at which the operation was performed; only present on events which target a Named User.

          Possible values: app, web, email, sms

    • properties object
      OBJECT PROPERTIES
      • click_tracking_opted_in string
      • click_tracking_opted_out string
      • commercial_opted_in string
      • commercial_opted_out string
      • open_tracking_opted_in string
      • open_tracking_opted_out string
      • transactional_opted_in string
      • transactional_opted_out string
  • device objectREQUIRED

    Holds information about the email device (an individual email channel) the event occurred against.

    OBJECT PROPERTIES
    • 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, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Used in:

Examples

Example subscription event

{
  "id": "62f3b7ac-4048-4f22-a0b5-22c01ef172a9",
  "offset": "1000022265027",
  "occurred": "2019-04-01T13:00:23.186Z",
  "processed": "2019-04-01T13:00:23.456Z",
  "device": {
    "channel": "6b46c724-494b-4491-9fe7-1b903d266110",
    "device_type": "EMAIL",
    "delivery_address": "user+43679@urbanairship.com.sink.sparkpostmail.com"
  },
  "body": {
    "event_type":"registration",
    "identifiers": {
      "address":"new.subscription@example.com"
    },
    "properties":{
      "commercial_opted_in":"2019-01-04T20:56:00.000Z",
      "transactional_opted_in":"2019-01-04T20:56:00.000Z",
      "click_tracking_opted_out":"2019-01-04T20:56:00.000Z",
      "open_tracking_opted_out":"2019-01-04T20:56:00.000Z"
      }
  },
  "type": "SUBSCRIPTION"
}

Subscription list event

Occurs when subscription list enrollment changes for a device or user.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED

    Changes to a device or user’s subscription list membership.

    OBJECT PROPERTIES
    • canceled array[string]

      An array of subscription list IDs which were canceled. Present only when a cancellation occurred.

    • enrolled array[string]

      An array of subscription list IDs which were enrolled. Present only when an enrollment occurred.

    • scope string

      The scope at which the operation was performed; only present on events which target a Named User.

      Possible values: app, web, email, sms

  • device objectREQUIRED
    One of
    • Information about app users generated by the SDK.

    • Web device information without `attributes` object

      Information about web users in tag change events.

      OBJECT PROPERTIES
      • channel stringREQUIRED

        The unique, platform-agnostic channel identifier for a device.

      • device_type stringREQUIRED

        The platform that the channel is on.

        Possible values: WEB

      • named_user_id string

        The Named User identifier for the device.

    • Information about the SMS or email device related to an event.

    • Information about open channel users.

    • User information for events which occur at the user level.

  • id stringREQUIRED

    Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same id, type, occurred, device, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Used in:

Examples

Example Subscription List event

{
  "id": "62f3b7ac-4048-4f22-a0b5-22c01ef172a9",
  "offset": "1000022265027",
  "occurred": "2019-04-01T13:00:23.186Z",
  "processed": "2019-04-01T13:00:23.456Z",
  "device": {
    "channel": "6b46c724-494b-4491-9fe7-1b903d266110",
    "device_type": "EMAIL",
    "delivery_address": "user+43679@urbanairship.com.sink.sparkpostmail.com"
  },
  "user": {
    "contact_id": "6b5ca2a2-c1f1-4119-9617-2d5bff0db09d",
    "named_user_id": "mini_me"
  },
  "body": {
    "enrolled": ["cool_deals"]
  },
  "type": "SUBSCRIPTION_LIST"
}

Tag change

Occurs when tags change for a device.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • add object

      Tag group/tag pairs added to the device. Each tag group is an array containing one or more tags within this object.

    • current object

      The total set/state of tag group/tag pairs associated with the device after the tag change. Each tag group is an array containing one or more tags within this object.

    • remove object

      Tag group/tag pairs removed from the device. Each tag group is an array containing one or more tags within this object.

  • device objectREQUIRED
    One of
    • Information about app users generated by the SDK.

    • Web device information without `attributes` object

      Information about web users in tag change events.

      OBJECT PROPERTIES
      • channel stringREQUIRED

        The unique, platform-agnostic channel identifier for a device.

      • device_type stringREQUIRED

        The platform that the channel is on.

        Possible values: WEB

      • named_user_id string

        The Named User identifier for the device.

    • Information about the SMS or email device related to an event.

    • Information about open channel users.

  • id stringREQUIRED

    Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same id, type, occurred, device, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Used in:

Examples

Example tag change event

{
  "id": "00000169-4a14-67b2-1ddd-d9e733622c3a",
  "occurred": "2019-03-04T19:00:45.106Z",
  "offset": "1000001260057",
  "processed": "2019-03-04T19:00:47.094Z",
  "device": {
    "ios_channel": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
    "channel": "1ef235f0-03d5-1384-893e-a19b5cd0d110",
    "device_type": "IOS",
    },
  "user": {
    "contact_id": "6b5ca2a2-c1f1-4119-9617-2d5bff0db09d",
    "named_user_id": "mini_me"
  },
  "body":{
    "add": {
        "crm": [
          "partner",
          "active"
        ],
        "loyalty": [
          "silver_member"
        ]
    },
    "remove": {
        "device": [
          "shoe_buyer"
        ]
    },
    "current": {
        "crm": [
          "partner",
          "active",
          "new_user"
        ],
        "loyalty": [
          "silver_member",
          "special_offers"
        ],
        "device": [
          "san_francisco",
          "sports"
        ]
      }
    },
  "type": "TAG_CHANGE"
}

Uninstall

Occurs when a user uninstalls an Airship-integrated app in response to a push.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • decay booleanREQUIRED

      If true, Airship recorded an uninstall event due to user inactivity.

  • device objectREQUIRED
    One of
    • Information about app users generated by the SDK.

    • Information about web users generated by the SDK.

  • id stringREQUIRED

    Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same id, type, occurred, device, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Used in:

Examples

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"
}

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.

Jump to examples ↓

OBJECT PROPERTIES
  • body object<Associated push>REQUIRED

    The specific push_id and accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.

    An associated push object may specify a time, if the push was a singular operation sent at a defined time. Otherwise, the object will include a group_id if the push was sent at a relative time (best_time or local_time) an automation pipeline, or another operation resulting in multiple push_ids.

  • device objectREQUIRED

    Information about web users generated by the SDK.

    OBJECT PROPERTIES
    • attributes object
      OBJECT PROPERTIES
      • iana_timezone string

        The time zone of the device.

      • push_opt_in stringREQUIRED

        Indicates whether or not the device is opted into push notifications.

      • ua_sdk_version stringREQUIRED

        The version of the Airship SDK used in the app.

      • web_browser_name stringREQUIRED

        The name of the browser running the SDK.

      • web_browser_type stringREQUIRED

        Indicates whether the browser was running on a desktop or mobile device.

      • web_browser_version stringREQUIRED

        The version of the browser.

      • web_user_agent_string stringREQUIRED

        The user agent reported by the browser.

    • channel stringREQUIRED

      The unique, platform-agnostic channel identifier for a device.

    • device_type stringREQUIRED

      The platform that the channel is on.

      Possible values: WEB

    • named_user_id string

      The Named User identifier for the device.

  • id stringREQUIRED

    Uniquely identifies an event. The data stream will occasionally send duplicate events. Duplicate events will have the same id, type, occurred, device, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Used in:

Examples

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"
}

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.

Jump to examples ↓

OBJECT PROPERTIES
  • body objectREQUIRED
    OBJECT PROPERTIES
    • last_delivered object

      Identifies the last push notification the audience received before the event. Absent if the last push occurred more than 12 hours ago.

      OBJECT PROPERTIES
      • campaigns object

        An object listing the campaigns a push specification is associated with. The campaigns object includes an array of categories that must have between 1 and 10 elements, each of which is a string with a 64-byte and -character limit.

        OBJECT PROPERTIES
        • categories array[string]
      • group_id string

        Identifies a push specification delivered over an interval of time, e.g., multiple push_ids as part of the fulfillment of an automation pipeline or a push-to-local-time specification.

      • push_id stringREQUIRED

        A unique identifier for a push operation.

      • time string

        The UTC time when the push occurred.

      • variant_id integer

        The ID of the variant that a push is associated with, if the push was a part of an A/B test (experiment).

    • session_id string

      Represents the “session” of user activity. Absent if the application was initialized while backgrounded.

    • triggering_push object<Associated push>

      The specific push_id and accompanying identifiers associated with an event. An associated push helps you trace an event to the original notification or operation.

      An associated push object may specify a time, if the push was a singular operation sent at a defined time. Otherwise, the object will include a group_id if the push was sent at a relative time (best_time or local_time) an automation pipeline, or another operation resulting in multiple push_ids.

  • device object<Web device information>REQUIRED

    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, and body values but different offset and processed values. You should use the id 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

  • user object<User>

    The current state of the user when the event is emitted, including the contact ID and an optional named user ID.

Used in:

Examples

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"
}