Live Activities Best Practices

The Basics

The best Live Activities provide value to users by escalating relevant information to the home screen. Instead of users constantly going into an app to check for statuses or updates, they can get updates at a glance of their phone.

Live Activities are best for events or tasks with a defined beginning and an end. Do not use a Live Activity to display ads or serve purely promotional purposes. They need to provide user value, or it risks providing a negative user experience and being turned off by the user.

Some other important details about Live Activities:

  • Live Activities has its own on/off toggle within the Settings app, then under the specific app. This means that a user who has opted out of Push Notifications can still receive Live Activities, and that a user who has Live Activities toggled off could still be opted into Push Notifications.
  • The first time a user receives a Live Activity, they will be prompted to either allow or not allow future Live Activities.

Many of the following best practices below are a summary of what Apple recommends in their Live Activities Human Interface Guidelines, along with additional OneSignal recommendations.

Live Activities Checklist

User Experience


  • Live Activity needs to provide user value (typically they provide convenience).
  • Test that deep links go to the right spot in your app.
  • Using multiple channels:
    • Use push to get customers into the app where they can find important information, and then use Live Activities to track additional updates.
    • Use an Alert Notification to get users' attention on Live Activity updates. Don’t use push notifications to alert users about updates. Refer to our API documentation.


  • If you must promote something, ensure it is intrinsically tied to a live event or task. We recommend using gamification to bring value to live updates and to optimize user engagement.

  • Only update a Live Activity when new content is available. Too many updates affects a user's battery life.

  • Avoid displaying sensitive information in a Live Activity.


  • Start a Live Activity when users would expect it to start. Otherwise, it runs a risk of a user going into their settings app and turning off Live Activities from your app.
  • Remove the Live Activity from the Lock Screen shortly after the conclusion of the Live Activity (15-30 min).
  • Ensure a Live Activity is for an event or task that is no longer than 8 hours, and that it is only showing for as long as it is useful to the user.
  • If you must promote something, ensure it is intrinsically tied to a live event or task

User Journey:

Currently, Live Activities only appear when a user has the app open.* Ensure that a Live Activity appears when expected, usually when a user takes an action (e.g. to follow an event) or opens the app to check for updates (e.g. updated delivery time).

  • All users: Live Activities should only appear when a user expects them to. Any user can toggle Live Activities on/off in their Settings app at any time.
  • New users: Ensure a valuable first Live Activity to minimize users unsubscribing from future Live Activities.
    If a user is seeing a Live Activity for the first time, they are prompted to allow or not allow all Live Activities in the future. Therefore, it is critical that the first Live Activity a user sees quickly provides value.

*This will soon change so that users can also receive them while the app is in the background, contact us for more information.

User Interface Design

  • Use a logo mark in each Live Activity and its presentations.
  • Consider each Live Activity presentation - Compact, Minimal, Expanded, Lock Screen code samples of these views.
  • Consider different screen sizes.
  • Prioritize important information to make it easy to understand at a quick glance.
  • Don’t add elements to your app that draw attention to the Dynamic Island.
  • Use margins and maintain space between elements and margins.
  • Design for both Light and Dark mode, or set your Live Activity colors to a dark background tint .activityBackgroundTint( a light foreground color. .activitySystemActionForegroundColor(Color.white)