Optimal Send Time

Optimal Send Time is an algorithm that determines the best hour for optimal engagement activity — when each individual member of your audience is most likely to receive and act on your message. iOS, Android, and Amazon platforms only.

"Best Time" is determined from recent engagement history. To start, app opens are localized to the user’s time zone and aggregated to the hour over the last 60 days of app activity. Best hour is determined by striking a balance between the user's engagement patterns and a generalized model of engagement patterns across the app audience. The model also outputs a general best hour which is applied to dormant or low-activity users. The general best hour aggregates opens across app users and selects the best hour based on more frequent opening time for each app platform.

Enable Optimal Send Time

 Note

Optimal Send Time is an add-on predictive feature. Contact Airship Sales to enable predictive features for your account.

Send time prediction supports your production projects only and updates weekly on Wednesdays.

  1. Open your messaging project and go to Settings » Configuration » Predictive AI.
  2. Toggle Optimal Send Time to ON.

Schedule a Message Using Optimal Send Time

In the Delivery step of the Message composer:

  1. Select Optimize.
  2. Enter a date in YYYY-MM-DD format.

Airship recommends scheduling your message at least three days in advance due to the combination of time zones and optimal times. You can reduce the lead time if your audience is more localized, e.g., only in the United States or in a certain European region.

Schedule best_time Messages Using the API

Optimal Send Time is represented as the best time key. To deliver notifications at your users’ optimal times via the API, schedule your message using best_time.

The following example shows two schedules for an upcoming message. The first schedule uses a specific scheduled_time for users with the "earlyBirds" tag, and the second schedule lets the model decide when to send the message, based on the best_time attributed to users with the "normalPeople" tag.

POST /api/schedules HTTP/1.1
Authorization: Basic <master authorization string>
Content-Type: application/json
Accept: application/vnd.urbanairship+json; version=3;

[
	{
		"name": "Morning People",
		"schedule": {
			"scheduled_time": "2018-06-03T09:15:00"
		},
		"push": {
			"audience": {
				"tag": "earlyBirds"
			},
			"notification": {
				"alert": "Good Day Sunshine"
			},
			"device_types": [
				"ios",
				"android",
				"sms",
				"web"
			]
		}
	},
	{
		"name": "Everybody Else",
		"schedule": {
			"best_time": {
				"send_date": "2018-06-03"
			}
		},
		"push": {
			"audience": {
				"tag": "normalPeople"
			},
			"notification": {
				"alert": "Stay Up Late"
			},
			"device_types": [
				"ios",
				"android",
				"sms",
				"web"
			]
		}
	}
]

Look Up a User's Optimal Send Time

You can look up optimal send time for an individual user from the dashboard.

Information about an individual device can be found by looking up a Channel ID An Airship-specific unique identifier used to address a channel instance, e.g., a mobile app, web browser, email address. , Named User A customer-provided identifier used for mapping multiple devices and channels to a particular user. , or Device Token An identifier used to identify an instance of your app running on an iOS device. Device tokens are provided by Apple Push Notification Service (APNs) and must be included in a push notification request targeting the associated device. .

  1. Open your messaging project and go to Audience » Device Lookup.
  2. Enter a device identifier into the search field. Results update as you type. If a valid identifier was entered, information about associated devices is displayed below the search field. This example shows the results for named user ID kristina, including Created and Last Modified dates for the named user itself, as well as information for the device associated with the named user.
  3. Click the device pane to open a modal window containing detail about the device, organized on tabs: Channel Detail, Channel Tags, Device Properties, and Tag Groups.

Click Tag Groups tab to see the UA_SEND_TIME_PREDICTION hour.

In the API, the ua_send_time_prediction tag group represents Optimal Send Time. You can look up a channel or named user and check the ua_send_time_prediction tag group to find the optimal send time for a user. See Channel Lookup and Named User Listing or Lookup in our API documentation.

Observe Optimal Send Time in Performance Analytics

The Performance Analytics Predictive Send Time Optimization dashboard provides a deeper look into the best time model, including a distribution of best hours across your audience, and the generalized best hour for your audience by platform and day of week.

Go to the Predictive Send Time Optimization dashboard:

  1. Open a messaging project and go to Reports » Performance Analytics.
  2. Go to Spaces » Shared » Predictive and select Predictive Send Time Optimization.

Optimal Send Time Events

The ua_send_time_prediction tag group contains the send time prediction for each channel. Changes in a user's ua_send_time_prediction tag appear as Tag Change Events in the event stream.