Browse docsOverview
Get started

Quickstart — your first install in 10 minutes

Drop the SDK in, paste three keys from your admin panel, ship a build, see your first app_install event land. That's the whole flow — worked through below on Unity, which is the same flow on every platform.

Pick your platform

This page uses Unity as the worked example. The steps are identical everywhere — install the SDK, paste your keys, initialize once at startup — because all of the mobile SDKs run on the same shared native core. If you are not on Unity, use the platform page instead and come back here for step 2 (keys) and step 5 (events):

Before you begin

  • A Reflect account — invite-only during beta. Email [email protected] if you don’t have one yet.
  • Unity 2021.3 LTS or newer.
  • An Android (API 21+) or iOS (13+) build target. iOS builds also need EDM4U (External Dependency Manager for Unity) installed — see Installation.

Step 1 — install the Unity SDK

In Unity, open Window → Package Manager, click +, choose Add package from git URL…, and paste:

https://github.com/bablu147/reflect-sdk.git#v2.4.4

Unity downloads, compiles, and adds the package. See Installation for Asset Store and manual options.

Step 2 — grab your keys

Sign into the admin panel:

  1. Go to Settings → copy your CompanyKey (looks like co_live_…).
  2. Go to Apps → register the app (one row per platform) if you haven’t already.
  3. At the moment you create it, the panel reveals the AppKey (app_live_…) and the SigningSecret together. Copy the SigningSecret then — it is shown exactly once. Paste it straight into your secret manager or CI secret store.
  4. The AppKey is not a secret: it stays visible in the Apps table, so you can copy it again any time.
iOS and Android need different keys.

CompanyKey is shared (it identifies your tenant). But AppKey + SigningSecret are per-app — register one app row for iOS and one for Android, and use each platform's pair in the matching build. Mixing them up returns 401 app_company_mismatch. See Keys & IDs for the full table.

Keep the SigningSecret out of source control.

Use a build-time secret injection mechanism (env var, scriptable object set in CI). Never commit it. And store it the moment it is shown: there is no second reveal. If it is lost or leaked, open Apps in the console and press Rotate secret on that app's row — the new secret is revealed once, right there, and the old one keeps signing valid requests for 48 hours so the builds already on devices keep working while you ship one carrying the new value. Only one rotation can be in flight per app: the next is available once that 48-hour window closes.

Step 3 — initialize in your first scene

In your first scene’s Awake():

using Reflect;
using UnityEngine;

public class ReflectBootstrap : MonoBehaviour
{
    void Awake()
    {
        DontDestroyOnLoad(gameObject);

        ReflectSDK.Initialize(new ReflectConfig {
            BaseUrl       = "https://api.reflect.cloud",
            CompanyKey    = "co_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            #if UNITY_IOS
            AppKey        = "app_live_<ios-key>",
            SigningSecret = "<ios-signing-secret>",
            #else                                      // Android, Editor, etc.
            AppKey        = "app_live_<android-key>",
            SigningSecret = "<android-signing-secret>",
            #endif
            EnableLogging = Debug.isDebugBuild,
        });

        // Tag the install with anything you want segmented in reports.
        ReflectSDK.SetGlobalProperty("user_tier", "free");
    }
}

Step 4 — ship a build, watch it arrive

The SDK fires app_install automatically on the first launch of the app on a device. You don’t need to call anything.

Open the Testing console — in the admin panel, AppsTesting console (/explorer/live). It streams every event your SDK sends as it lands, with the arrival lag, SDK version, and device info beside each row, so you can tell a working integration from a broken one in seconds. Use it rather than the Dashboard for this first check: report rollups run hourly, so a brand-new install can take up to an hour to show up there. Full walkthrough: Test your integration.

Step 5 — track your first custom event

Anywhere in your game:

// One-shot event
ReflectSDK.TrackEvent("level_started", new Dictionary<string, object> {
    { "level", 1 },
});

// Or use a typed standard helper — same wire format, less typing
ReflectStandardEvents.LevelStarted(1);

// Revenue
ReflectSDK.TrackPurchase(
    productId:    "sku_pro_pack",
    price:        9.99,
    currencyCode: "USD",
    transactionId: "txn_abc123"
);
That’s the whole integration.
Every event shows up in the Testing console seconds after it is sent; installs, sessions, and revenue reach the admin Reports after the next hourly rollup. Next: configure tracking links so you can attribute paid UA spend.

Where to next