Skip to main content

Insights Quickstart

Get Insights events flowing from your app in minutes. Choose your development environment below.

1) Install

  • Add the AbxrLib Unity package (via UPM or local package).
  • Ensure your Android/Gradle toolchain is compatible.

2) Required Configuration

Default integrations use App Token and Org Token (JWTs from the ArborXR portal or your distribution channel). For Unity and Unreal, AbxrLib usually generates or resolves the org token at runtime when the device or ArborXR client provides org context, so you often set App Token only and leave Org Token empty in project settings. For local development in the Editor, you can paste your App Token into the Org Token field when you need both fields populated.

  1. Open Analytics for XR > Configuration in the Unity Editor.
  2. Use App Tokens defaults to enabled in the AbxrLib configuration asset; keep it on for JWT authentication.
  3. Set App Token (required): JWT for your app from Content LibraryManaged app → Insights Hub (or your channel).
  4. Org Token: Leave empty to use dynamic org token when the headset or ArborXR runtime supplies org context. For Editor testing, you may paste the same value as App Token into Org Token if your workflow needs both fields filled.
  5. Production / wide distribution: Prefer App Token plus dynamic org token (empty org token) where supported. Single-customer or production_custom builds may require an explicit org token—follow your distribution guidelines.

Additional authentication options and credential flows are documented in Full documentation → Configuration.

Security

Avoid embedding long-lived org tokens or other embedded authentication secrets in builds intended for broad third-party distribution. Reserve embedded org credentials for single-customer deployments; for general distribution, use ArborXR-managed devices and runtime-supplied tokens.

3) Initialize

In Unity the Abxr object will automatically be available. Skip to the next section.

4) Essential Event Tracking (Required)

Assessment events are required to activate grading dashboards and LMS integration. Send these events to track training completion, scores, and pass/fail status.

// When training starts
Abxr.EventAssessmentStart("safety_training");

// When training completes
Abxr.EventAssessmentComplete("safety_training", 92, EventStatus.Pass);
// or
Abxr.EventAssessmentComplete("safety_training", 25, EventStatus.Fail);
// or
Abxr.EventAssessmentComplete("safety_training", 25, EventStatus.Incomplete);
// If your score range is NOT 0-100, pass score_min and score_max in meta:
// Abxr.EventAssessmentComplete("safety_training", 350, EventStatus.Pass, new Abxr.Dict().With("score_min", "0").With("score_max", "400"));

Assessment Complete:

  • Score (second parameter): default range is 0–100. If your scale is different (e.g. 0–400 or 1–10), you must pass score_min and score_max in the meta parameter; otherwise the SDK will clamp the score and log a warning.
  • The EventStatus enum has Pass, Fail, Complete, Incomplete, Browsed, NotAttempted options

Integration Checklist

The Integration Checklist lays out the essential requirements for developers to seamlessly integrate with ArborXR Insights. Covering LMS integration, basic reporting, and our core activities and sessions structure; it ensures your app meets the baseline for reliable data tracking and visualization based on our systems.

Choose your preferred format:

SDK Logic Flow Diagram

This flowchart visually maps out the step-by-step logic to implement our SDK successfully. It highlights assessment logic as core and shows how optional objectives and interactions can be added for richer data insights.

Recommended full data flow diagram

Click the diagram to open the full-size PDF.

Documentation for Objectives and Interactions here.

The Insights dashboards and charts will be key to improving your content and helping your customer measure training efficacy. See here for more recommendations on powering the assessments dashboard.

Assessment Tracking Examples

Unity (C#) - Click to collapse
// Add at the start your training (or training module)
Abxr.EventAssessmentStart("safety_training1");

// Add at the end your training (or training module)
Abxr.EventAssessmentComplete("safety_training1", 92, EventStatus.Pass);
// or
Abxr.EventAssessmentComplete("safety_training1", 28, EventStatus.Fail);
Unreal Engine (C++) - Click to expand
// Add at the start your training (or training module)
UAbxr::EventAssessmentStart(TEXT("safety_training1"));

// Add at the end your training (or training module)
UAbxr::EventAssessmentComplete(TEXT("safety_training1"), 92, EEventStatus::Pass);
// or
UAbxr::EventAssessmentComplete(TEXT("safety_training1"), 28, EEventStatus::Fail);
WebXR (JavaScript/TypeScript) - Click to expand
// Add at the start your training (or training module)
Abxr.EventAssessmentStart('safety_training1');

// Add at the end your training (or training module)
Abxr.EventAssessmentComplete('safety_training1', 92, Abxr.EventStatus.Pass);
// or
Abxr.EventAssessmentComplete('safety_training1', 28, Abxr.EventStatus.Fail);

When need to show specific example:

// To mark a specific objective start
Abxr.EventObjectiveStart("open_valve");

// When the objective is complete
Abxr.EventObjectiveComplete("open_valve", 100, EventStatus.Complete);
Learn More

See the Events documentation for Objectives, Interactions, and advanced tracking options.

FAQs & Recommendations

  • Security: Avoid embedding long-lived org tokens or other embedded authentication secrets in builds intended for broad third-party distribution. Use ArborXR-managed devices and runtime-supplied tokens where possible.
  • Environments: Use separate App Tokens (or separate app registrations) for development vs production as appropriate for your pipeline.

Next Steps

  • Events - Learn about Assessment, Objective, and Interaction events
  • SDK Libraries - Explore available SDKs for Unity, WebXR, and Unreal
  • LMS Integration - Connect to learning management systems
  • Best Practices - Tips for effective analytics implementation