Skip to content

App setup

Quickstart ​

Use these six steps to add Linkrunner to your app and check your first install. Marketers can follow along. Your developer can copy the platform examples below.

6 steps · iOS · Android · Cross-platform · Web

Create a project and get your token ​

Sign in to the dashboard and create a project. You will use its project token when you start the SDK.

  1. Sign in to the Linkrunner Dashboard.
  2. Create a new project, or open an existing one.
  3. Copy your Project Token from the SDK Console.
  4. Optional, recommended for production: copy your Secret Key and Key ID from Dashboard → Settings → SDK Signing to turn on request signing.

Install the SDK ​

Choose your app platform. The full SDK guide covers native setup, permissions and release checks.

Building a website rather than an app? The web uses its own token, which Linkrunner sends you, and a script tag instead of a package. Follow the Web SDK guide.

Prefer an AI coding agent? Let it add the SDK for you

Install the Linkrunner skill for your platform and let Claude Code, Cursor, Copilot or Windsurf add the SDK and deep links for you:

bash
npx @linkrunner/skills list           # see all platforms
npx @linkrunner/skills add flutter    # e.g. Flutter

Then ask your agent to "integrate Linkrunner". See Linkrunner Agent Skills.

bash
npm install rn-linkrunner
# or
yarn add rn-linkrunner

Full React Native guide

Initialize the SDK ​

Start Linkrunner as soon as your app opens, so every install is counted. This is required.

Call init as early as possible in your app's startup, usually in your root component, Application class or AppDelegate. Pass the optional secretKey and keyId if you set them up in step 1.

Using Expo, Capacitor, Cordova or Unity? This step is in your platform guide: Expo, Capacitor, Cordova or Unity. The Web tab uses your Web SDK token, not the project token.

javascript
import linkrunner from "rn-linkrunner";

await linkrunner.init(
    "YOUR_PROJECT_TOKEN",
    "YOUR_SECRET_KEY", // Optional
    "YOUR_KEY_ID",     // Optional
);

Identify the user ​

Link the install to your app's user ID after they sign up or log in. This connects later events and revenue to the same person, and it is required.

Call signup once, as soon as the user is identified, whether through signup or login.

Using Expo, Capacitor, Cordova or Unity? This step is in your platform guide: Expo, Capacitor, Cordova or Unity.

javascript
await linkrunner.signup({
    user_data: {
        id: "user_123",        // Required
        name: "Jane Doe",      // Optional
        email: "jane@example.com",
        phone: "9876543210",
        is_first_time_user: true,
    },
});

signup is required. setUserData is optional and does not replace signup. Call it later only when you have more user details, for example when the user adds a phone number or completes their profile.

Send users to the right screen when they open your app from a link. This also unlocks remarketing and deferred deep linking.

Forward incoming deep link URLs to Linkrunner. Each SDK has a handleDeeplink (or equivalent) method. See your SDK guide for the cold-start and warm-start hooks on your platform.

Verify your setup ​

Use a test device to check the click, install, app open, events and postbacks before you launch.

For mobile SDKs, register a test device in SDK Console, then check that the SDK starts, check attribution data, and test signup, custom events and revenue events.

For normal testing, registering the device in SDK Console is enough. Set debug = true in SDK init only if GAID collection is turned off on Android, or the ATT prompt is turned off on iOS so IDFA is not available. Remove debug = true before production.

What to set up next ​

Need help? ​

Email support@linkrunner.io. We usually reply within a few hours during business hours.