Airship Migration Guide

Easily plan your migration from Airship to OpenBack for push & in-app messaging without interruption.

The base setup steps for adding OpenBack are:

  • Create your OpenBack app on our dashboard.
  • (Recommended) Add your APNs certificate/Firebase Cloud Messaging Key to your OpenBack app.
  • Complete the basic SDK integration for Native Android/iOS or other plugin.

Integrating OpenBack will not interfere with any other services you may have - as such, you can run services alongside each other during migration.

For help with migrating to OpenBack from Airship, feel free to contact the onboarding team onboarding@openback.com and we can help guide you through the process including setting up a simple plan.

1 - Feature Explanations across Platforms

Airship ->OpenBack
Attributes/Tags ->Custom Segments & Attributes
Segment users based on custom in-app information. Send notifications to users within these segments. User properties can be used to personalize the content of a notification.Segment users based on custom in-app information and send notifications to these users. Attributes are used to store clientside information about users that is then used to personalize the content of a notification.
Custom Events ->Goals
Used to track user activities and key conversions.Used to track user activities and the revenue generated by users performing actions. These actions can then be directly attributed to specific push notifications.
Sent/OpensFull Notification Metrics
Airship only offers direct/indirect opens and number of sent messages.OpenBack provides full notification metrics out of the box that range from delivery confirmation to clicks and goal completions.
Location Targeting
OpenBack requires no custom setup or integration to message your users based on location.
Allow/Block - Opt-Out Status
As this is handled on the device side, OpenBack automatically picks up the user's current status without any work required to or migrate or transfer user preferences. Users will NOT be shown the OS permission dialogue again.
Deep Links & Deep Linking
As these are defined by you at an app level, there is no work to migrate across. To make things easier for sending messages, you may want to setup shortcuts in the OpenBack Dashboard under App Settings -more details here

2 - Attributes & Custom Segments

For help with deciding whether your user information should be stored as an Attribute or a Custom Segment, contact onboarding@openback.com anytime.

Attributes

OpenBack uses Attributes to personalize the content of a notification with user information that is stored on the device, such as a user’s first name. When migrating from Airship, any Airship attributes that would have been used to personalize the notification content should be setup as OpenBack Attributes in your mobile app.

To learn more about OpenBack Attributes go here for Android and here for iOS.

Here are examples of your existing Android code for Airship, and also the updated Android code for OpenBack Attributes:

// Airship example code
UAirship.shared().getNamedUser().editAttributes()
.setAttribute("first_name", "Bobby")
.setAttribute("birthday", Date(524300400000))
.apply();
//OpenBack example code
OpenBack.setAttribute("first_name", "Bobby");
OpenBack.setAttribute("birthday", "Date(524300400000)");

Custom Segments

OpenBack uses Custom Segments to store user information in OpenBack on the user’s device which can then be used to target specific segments of users as well as personalizing the content of the messages.

When migrating, any Airship attributes that would have been used to segment your users can be converted to OpenBack Custom Segments.

To learn more about OpenBack Custom Segments go here for Android and here for iOS.

Here are examples of your existing code for Airship, and also the updated code for OpenBack Custom Segments:

// Airship example code
UAirship.shared().getNamedUser().editAttributes()
.setAttribute("first_name", "Bobby")
.setAttribute("birthday", Date(524300400000))
.apply();
//OpenBack example code
OpenBack.setAttribute("first_name", "Bobby");
OpenBack.setAttribute("birthday", "Date(524300400000)");
// OpenBack example
OpenBack.setCustomSegment(OpenBack.CUSTOM_SEGMENT_1, "Bobby");
OpenBack.setCustomSegment(OpenBack.CUSTOM_SEGMENT_2, Date(524300400000));

3 - Notification Handling

The Airship SDK allows for different methods of handling notifications whereas OpenBack handles most of these cases automatically, for further help with notification handling, contact onboarding@openback.com anytime.

To see more about how OpenBack handles notifications, you can go to our Android and iOS docs.

4 - Payloads & App Inbox

Custom payload content can be added to App Inbox messages and then used within your app. Payload content can be any form of text, for example JSON/CSV/XML, as long as your app can read and process it. The payloads are currently for use with our App Inbox feature on both Android and iOS, on Android however, you can also send a payload alongside a Dynamic Push message.

When migrating from Airship, any silent push payload events can be converted to App Inbox payloads for Android and iOS.

To see more about how to use payloads with the App Inbox, you can go to our Android and iOS docs.

Here are examples of your existing code for Airship, and also the updated code for OpenBack Payloads:

// Airship example code
AirshipSDK.setSilentPushListener(new AirshipSilentPushListener() {
@Override
public void onSilentPush(Context context, JSONObject payload) {}
});
// OpenBack example code
private List<AppInboxMessage> messages;
private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String event = intent.getStringExtra(OpenBack.APP_INBOX_EVENT_EXTRA);
if (event != null) {
switch (event) {
case OpenBack.APP_INBOX_MESSAGE_ADDED:
case OpenBack.APP_INBOX_MESSAGE_READ:
case OpenBack.APP_INBOX_MESSAGE_EXPIRED:
messages = OpenBack.getAppInboxMessages();
AppInboxMessage message = messages.get(0);
String payload = message.payload;
break;
}
}
}
};

5 - Importing Push Tokens

This is typically not required as by default the OpenBack SDK handles the user’s push token and syncs the token with the OpenBack Engine (backend), which starts once the OpenBack SDK is included in the app, so importing push tokens is not usually relevant, but can be supported.

A push token is a unique key, created and assigned by Apple(APNs) or Google(FCM) to create a connection between a specific mobile app on a specific iOS or Android device. The push token is then used by conventional platforms when sending push notifications from their backend systems to APNs/FCM who then make efforts to deliver the notification to that device. Push tokens change from time to time, and sometimes go stale. Push tokens are a key source of the deliverability issues which OpenBack resolves, you can read more about that here.

While not strictly necessary, OpenBack recommends setting up APNs/FCM as then a silent push notification is sent out to apps whenever there is updated content & settings for faster updates.

If you have a collection of your user’s push tokens, usually in .CSV format, we can bulk import them for you. Contact onboarding@openback.com to finalize an import plan; and also for help exporting Push Tokens from existing platforms including Airship, Airship and others.

note

Android push tokens are always mixed casing whereas iOS push tokens can sometimes be all lower case or all upper case. If importing existing push tokens into OpenBack, pay attention to the casing of iOS push tokens to avoid duplicate records.

6 - Detailed SDK Comparisons

SDKAirshipOpenBack
Android SizeNot Available230kB
iOS SizeNot Available900kB or less
Unity PluginYesYes
React Native PluginYesYes
Xamarin PluginYesYes
Titanium PluginYesYes
Cordova/Phonegap PluginYesYes
Deliverability OptimisationNot AvailableYes
Moment of Delivery ControlNot AvailableYes
Full Notification MetricsNot AvailableYes
Client-side Real-Time Content PersonalisationNot AvailableYes
Dynamic Push (Auto-Remove/Update)Not AvailableYes
App InboxNot AvailableYes
In-app Video MessageNot AvailableYes