Favicon

You are here: Home > App Distribution > SDK > SDK Users

SDK Users

Learn about Applivery SDK users, including bound and temporal users, how to bind/unbind them, and authentication enforcement. Track app usage and feedback.

8 min read

TL;DR

Applivery SDK users are automatically created records for devices running apps with the SDK, allowing developers to track usage and enforce authentication.

The Applivery SDK creates and tracks user records automatically for every device that runs an app with the SDK integrated. These records appear in the Applivery Dashboard and allow you to get insights into who installs your apps, who reports feedback, and how builds are adopted across your user base.

SDK users come in two types depending on how they originate: SDK users (bound, named identities) and Temporal SDK users (anonymous, device-based). Both count as employees against your workspace's employee limit.

Note

Both SDK users and Temporal SDK users count toward your workspace's Store Employees quota.


Types of SDK Users

SDK User Temporal SDK User
Origin Created programmatically via bindUser() Created automatically by the SDK on first device launch
Duration Permanent Expires after 30 days of inactivity across all apps in your organization
Identifier Email address you provide. E.g. [email protected] Device ID. E.g. 6effd10a-5b00-45ec-b02d-580b53a5775c
Description Named employees with a known identity, linked to the session via bindUser() Unknown users automatically created to track unique devices. Unique across your workspace based on device ID.
Note

Inactivity is defined as the last time a user opened any app from your organization with the SDK integrated. The 30-day timer resets on each open.


SDK Users (Bound)

When you call bindUser() with an email address, Applivery links the current device session to a named identity. This allows you to:

  • See who downloaded or installed each build.
  • Attribute feedback reports and bug submissions to a specific person.
  • Track update adoption per named user.
  • Control app access by user identity when authentication enforcement is enabled.

Bound users appear with their email address in the Applivery Dashboard, making it easy to correlate SDK activity with your own user base.

Temporal SDK Users (Anonymous)

When a device runs the SDK for the first time without a bindUser() call, Applivery automatically creates a Temporal SDK User record identified by the device's unique ID. These records allow basic device-level analytics (installations, update adoption) even when no named identity is available.

Temporal SDK users expire after 30 days of inactivity. If the same device opens the app again after expiry, a new Temporal SDK User record is created.


Binding a User

Call bindUser after your app's own authentication flow completes, so the identity is known before any Applivery interactions occur.

AppliverySDK.shared.bindUser(
    email: "[email protected]",   // Required
    firstName: "Jane",           // Optional
    lastName: "Doe",             // Optional
    tags: ["beta", "ios-team"]   // Optional — used for filtering in the Dashboard
) {
    // onComplete callback — called when binding is confirmed
}
[[AppliverySDK shared] bindUserWithEmail:@"[email protected]"
                               firstName:@"Jane"
                                lastName:@"Doe"
                                    tags:@[@"beta", @"ios-team"]
                               onComplete:nil];
Applivery.getInstance().bindUser(
    email = "[email protected]",
    firstName = "Jane",
    lastName = "Doe",
    tags = listOf("beta", "android-team")
)

bindUser parameters

Parameter Type Required Description
email String Yes The user's email address. Used as the primary identifier in the Applivery Dashboard.
firstName String No The user's first name. Displayed alongside the email in reports and feedback.
lastName String No The user's last name.
tags Array of Strings No Custom labels for grouping or filtering users in the Dashboard. E.g. ["qa", "ios"].

Unbinding a user

Call unbindUser when your app's user logs out, so subsequent SDK interactions are no longer attributed to that identity.

AppliverySDK.shared.unbindUser {
    // onComplete callback
}
[[AppliverySDK shared] unbindUserWithOnComplete:nil];
Applivery.getInstance().unbindUser()
Note

After unbinding, the SDK session returns to anonymous mode until bindUser is called again.


Retrieving the current user

You can read back the currently bound user's profile at any point:

AppliverySDK.shared.getUser { userInfo in
    // userInfo is an NSDictionary, or nil if no user is bound
    print(userInfo ?? "No user bound")
}
Applivery.getInstance().getUser(object : GetUserCallback {
    override fun onSuccess(user: AppliveryUser?) {
        // user is null if no user is bound
    }
    override fun onError(error: Throwable) { /* handle */ }
})

Authentication enforcement

If your publication requires users to log in before accessing the app, you can enforce this at the SDK level. When enforceAuthentication is set to true in the SDK configuration, users must authenticate via Applivery (or your workspace's SSO) before the app becomes usable.

let config = AppliveryConfiguration(
    enforceAuthentication: true
)
AppliverySDK.shared.start(token: "YOUR_TOKEN", configuration: config)
val config = Configuration(
    enforceAuthentication = true
)
Applivery.start(APPLIVERY_TOKEN, configuration = config)
Note

When enforcement is enabled, and the user has not authenticated, Applivery will present a login prompt. If enforceAuthentication is false (the default), users can dismiss the login prompt and continue using the app anonymously.


User visibility in the Dashboard

SDK users are visible per app in the Applivery Dashboard or in the Directory section under the Settings menu. For each user, you can see:

  • Email address and display name (for bound users).
  • Tags assigned via bindUser.
  • Devices associated with the user.
  • Download history — which builds were installed.
  • Feedback submissions attributed to the user.

Anonymous users appear with a device identifier rather than an email address.


SDK users vs. other user types

Applivery has several distinct user types. Understanding the differences helps avoid confusion:

User Type Who they are How they authenticate Where they appear
Collaborators Team members managing the app (developers, QA leads) Applivery account or SSO Dashboard → Team
Store Employees End users with access to App Store publications Applivery account, SSO, password, or OTP App → Users (Store)
SDK Users Users of an app with the SDK integrated Via bindUser in the app code App → Users (SDK)
OTP Users External users with time-limited publication access One-time password sent by email App → Publication → OTP Allowlist

SDK users are the only type created programmatically from within the app itself. All other types are managed through the Applivery Dashboard or API.

Key Takeaways

  • Applivery SDK automatically tracks users for analytics and feedback.
  • Use `bindUser()` to associate devices with named users.
  • Enforce authentication to control app access.
  • Temporal SDK users provide anonymous device-level analytics.
  • Manage SDK users in the Applivery Dashboard.