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 application 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 application, you can install the updated application 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 application that has the Connect 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 user event (recommended): Let's say you're a customer using a food delivery application 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!
  • On application install (not recommended): Applications using this method ask the user for permission as soon as the user installs and opens the application. 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.

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

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

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

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 Connect SDK even after my application is in the app store?

If you want to disable the Connect SDK in your application after it's live on the app store, please email [email protected] We can disable the API code used in your application using a remote kill switch.