Getting Started with Beacon
Beacon is a product analytics platform built for ISVs shipping desktop, web, server, and cloud applications. This guide walks you through going from zero to your first tracked event.
Prerequisites
- A Beacon account (start your free trial)
- Your API key and API base URL (found in your Beacon dashboard under Settings)
- An application built with .NET, C++, or JavaScript/TypeScript
Quick Start
1. Choose Your SDK
Beacon provides native SDKs for three platforms:
| Platform | Package | Install Command |
|---|---|---|
| .NET | SoftAgility.Beacon | dotnet add package SoftAgility.Beacon |
| C++ | beacon_sdk | CMake FetchContent (see C++ SDK docs) |
| JavaScript/TypeScript | @softagility/beacon-js | npm install @softagility/beacon-js |
2. Initialize the SDK
Add Beacon to your application startup. Here is a .NET example using dependency injection:
services.AddBeacon(options =>
{
options.ApiKey = "your-api-key";
options.ApiBaseUrl = "https://api.beacon.softagility.com";
options.AppName = "MyApp";
options.AppVersion = "1.2.0";
});
Or initialize directly without DI:
var tracker = BeaconTracker.Configure(options =>
{
options.ApiKey = "your-api-key";
options.ApiBaseUrl = "https://api.beacon.softagility.com";
options.AppName = "MyApp";
options.AppVersion = "1.2.0";
});
See the full setup guide for your platform:
3. Identify the User and Start a Session
Beacon uses actors to associate events with users or devices. Identify the current actor and start a session:
tracker.Identify("user-123");
tracker.StartSession();
4. Track Your First Event
Events are organized by category and name:
tracker.Track("reports", "report_exported", new
{
format = "pdf",
row_count = 1500
});
5. View Your Data
Log in to the Beacon dashboard. Events appear in real time in the Event Explorer. From there you can build funnels, analyze retention, and segment users.
Environment Collection
Each SDK automatically collects environment data and sends it as a header with each request. The data varies by platform:
.NET and C++ SDKs:
- Operating system and version
- Runtime version (.NET version, compiler)
- Hardware (CPU, memory, display resolution)
- Locale and timezone
- Application version
JavaScript / TypeScript SDK:
- Browser name and version
- Screen and viewport dimensions
- Language and platform
- Device type (desktop, mobile, tablet)
- Connection type (when available)
No PII is collected. All data is environment and session metadata.
Offline Behavior
The .NET and C++ SDKs include built-in offline persistence via a local SQLite database. If your application loses connectivity, events are queued locally and sync automatically when the connection returns. No data is lost, and the queue persists across application restarts.
The JavaScript SDK uses an in-memory queue with best-effort delivery via fetch with keepalive on page unload. Events are buffered while the tab is open but do not persist across page reloads.
Next Steps
- Read the SDK guide for your platform: .NET | C++ | JavaScript/TypeScript
- Review the API Reference for direct API integration
- See pricing for plan details