LaunchKit SDK for Developers

All about the LaunchKit SDK and Super User tracking, technically speaking.


We built LaunchKit as a result of building and iterating on a whole bunch of iOS and Android apps, so we know that installing an SDK is a big deal.

In an effort to be as transparent as possible, we’ve tried to document exactly how our SDK works, what kind of information is sent, and our commitment to production service.

If you have any additional questions about the content of this page, or any feedback about the content here, please contact us directly at

About the LaunchKit iOS SDK

A simple, lightweight, open source project

The full iOS project is available on GitHub, and the project can be easily incorporated through CocoaPods or Carthage.

We have tried to keep the project extremely resource efficient, and only occasionally send data to LaunchKit servers in a minimal format.

What exactly does it do?

Here’s a list of exactly, exclusively what the SDK does in your iOS app:

  • On app startup, the SDK sends an initial request to get LaunchKit configuration
  • If any hosted UI products are enabled
  • In the background, we periodically inspect the app’s UIViewController hierarchy, in order to determine the current screen visible to the user.
  • The SDK also adds a listener for taps, so we can tell how many times the user has tapped on the screen while using the app.
  • Later, using a low-priority NSURLSession, the SDK periodically sends these events up to LaunchKit servers in a minimal, batched JSON representation.

That’s it. See the code here.

How does tracking work?

Tracking is based exclusively on a random identifier. LaunchKit servers generate this identifer the first time the app starts, and the SDK persists the identifer across requests to our API.

We don’t ’fingerprint” users for tracking, or attempt to do any advertising-related targeting at all. We just make a random ID and store it in a .plist file.

Identifying the same user across devices

If your app has logged in user accounts, and you want to find Super Users who use your service across multiple devices, that’s fully supported!

In that case, you can provide us a unique ID when calling setUserInfo: when the user logs in. No need to include any other information — name and email address are optional.

Providing a unique ID in this way will associate multiple end-user sessions with the same unique “user” in LaunchKit’s Super User database.

Reliable & Production-Ready

We built LaunchKit because we needed it ourselves. As a result, we’ve been using the LaunchKit SDK in all of our own iOS apps, live in the App Store for most of 2015.

We’ve tracked many millions of events for our own users with this SDK. We’ve found many bugs in doing so, and we’re very confident that this SDK will cause no problems for you in production.

That being said…

In the event of catastrophe — or a canceled user account — the SDK will not crash or degrade your app’s performance. If the LaunchKit API is unreachable, the SDK will just stop sending us data, silently.

(In this case, the app might generate a failing web request per app session, but that should be the extent of the impact.)


Try it for free. No credit card required.

  • LaunchKit SDK
    10,000 Users Free
    Then $0.001/mo for every active user
    Up to 1M Active Users
    Affordable People Analytics
    Nothing to Configure
    Identify Your Best Users
    Target Super Users In-App