Mobile SDK FAQ

How does Connect track uninstalls and revoked permissions?

When a Connect push notification is received by the user's iOS or Android device, the SDK schedules a status check-in for later in the day. When the SDK receives the status check-in, it reports whether the app has been uninstalled or if the user has revoked the push notification permissions. This is how Connect can help you cut back on notifications that might have a negative effect on your users.

Here's the workflow:

image


Can I test push notifications on my iOS or Android device before publishing?

After integrating the SDK in your app, you can install the updated app on your test device and pair the device with your Connect account. Here's how:

  1. In Connect, open your campaign and click Test send to my iOS device (or Android device).
  2. Open the mobile app that has the Outbound SDK installed and initialized.
  3. Hold down 4 fingers for 8 seconds until an admin dialog appears.
  4. Enter the 4-digit pairing code you see into the mobile app.

At this point your device should be paired with the Connect account. You can send yourself test push notifications.

See this quick animated demo.


When should I ask my iOS users for permission to use push notifications?

The following are 2 approaches to when and how to ask users for permission to send push notifications:

  • On app install (not recommended): Apps using this method ask the user for permission as soon as the user installs and opens the app. On average, 30-40% percent of users will grant permissions with this method. But there's a bigger problem. You've asked the user for the ability to talk to them before the user understands why they should let you. It's much better to ask for permission when the user takes a high-value action.

  • On user event (recommended): Let's say you're a customer using a food delivery app you designed. After your first checkout, you're probably more likely to allow push notifications because you want to know the status of your order. This is why Connect lets you ask for permission when the user does a specific event for the first time. The permission rate for this method is usually above 60%. We recommend that you think about the first event a user does in the activation flow when they're eager to hear back form you -- and strike when the iron is hot!

Read this article on TechCrunch for a case study on permission timing.


How do I open a view in my app when a user clicks a push notification?

The Connect SDKs use deep linking to guide the user to the relevant view in your app when they open a push notification. Both iOS and Android recognize the url scheme you set up for your app. For instance, twitter:// will open the Twitter app.

To enable deep linking in iOS:

  1. Go to the Info tab in the Xcode project.

  2. In the URL Types section, click on the + button and add an identifier and a URL scheme.

    Ensure that the identifier and URL scheme you select are unique. Take note of the URL scheme you enter because this is how iOS knows to open a link in your app. In the example below, you entered yourapp:

    image

  3. If you use iOS9+ and SDK v1.0.0+, add the following to your Info.plist file:

    <key>LSApplicationQueriesSchemes</key>
      <array>
      <string>yourapp</string>
    </array>
    
  4. Enter deep linking URLs into iOS push notifications. They'll look like yourapp://foo/bar.

  5. Handle the deep linking urls in AppDelegate.m:

    - (BOOL) application:(UIApplication *) application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
        // This is where you will handle the deeplinks and return whether or not they
        // can handle it.
        return NO;
    }
    

Connect recommends using the same url scheme for Android.

To set up deep linking on Android:

  1. Specify an intent filter in your Android Manifest for deep linking.

    Here's a snippet from the Google Developer docs on deep linking:

    <activity
        android:name="com.example.android.GizmosActivity"
        android:label="@string/title_gizmos" >
        <intent-filter android:label="@string/filter_title_viewgizmos">
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <!-- note that the leading "/" is required for pathPrefix-->
            <!-- Accepts URIs that begin with "yourapp://”
            <data android:scheme="yourapp"
                  android:host="gizmos" />
            -->
        </intent-filter>
    </activity>
    
  2. Enter deep linking URLs into Android push notifications. They look like yourapp://foo/bar.

    image

  3. Read data from the incoming intents which Connect generates for you:

    @Override
    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
    
      Intent intent = getIntent();
      String action = intent.getAction();
      Uri data = intent.getData();
      // Open the right view here.
    }
    


Can I disable the Outbound SDK even after my app is in the app store?

If you want to disable the Outbound SDK in your app after it's live on the app store, please email to support@outbound.io. We can disable the API code in your app using a remote kill switch.