Unity3D SDK
This section describes the Jest Unity3D SDK and how to integrate it into your Unity game.
Installation
- Open the Unity Package Manager (Window > Package Manager)
- Click the "+" button and select "Add package from git URL"
- Enter:
https://github.com/jest-com/jest-unity-sdk.git
Importing the Demo Sample
After installing the SDK, you can optionally import a complete demo scene:
- Open Package Manager (Window > Package Manager)
- Find "Jest SDK" in the list
- Expand the "Samples" section
- Click "Import" next to "Demo Scene"
The demo showcases all SDK features including login, player state management, payments, notifications, events, referrals, and navigation.
Sample Project
A complete sample project is available at jest-com/jest-unity-sample-project.
Requirements
- Unity 2022.3 or later
- Newtonsoft.Json 3.2.1 or later
SDK Access
The Jest SDK uses a singleton pattern. Access all SDK functionality through JestSDK.Instance:
using com.jest.sdk;
// Access the SDK singleton
var jest = JestSDK.Instance;
// Access specific modules
var player = jest.Player;
var notifications = jest.RichNotifications;
var payment = jest.Payment;
var referrals = jest.Referrals;
Configuration
JestSDK.Instance.Init() accepts an optional InitOptions object:
| Option | Type | Default | Description |
|---|---|---|---|
AutoLoginReminders | bool | true | When set to false, disables the automatic login reminder popups that appear at escalating intervals for unregistered players. Manual login via JestSDK.Instance.Login() is unaffected. |
// Disable automatic platform login reminders
await JestSDK.Instance.Init(new InitOptions { AutoLoginReminders = false });
Initialization and Player Data Readiness
JestSDK.Instance.Init() waits for the platform to deliver the player data (via SetPlayer) before resolving. Once Init() completes, player data is available immediately through Player.Get(key) and other read APIs.
await JestSDK.Instance.Init();
// Player data is now available
var progress = JestSDK.Instance.Player.Get("level_progress");
Do not use the underlying JavaScript isReady() method directly — it resolves immediately and does not wait for player data. Always use JestSDK.Instance.Init() from C# to ensure the SDK is fully initialized.
Using the SDK
The remainder of this guide walks through the SDK's modules and how to use them in your game.
This includes retrieving player data and authenticating players, passing data into your game, scheduling and managing notifications, and using in-app payments. It also includes sharing your game with referral links and tracking conversions and controlling the platform loading screen.
Testing
The SDK includes a ScriptableObject-based mock system for testing in the Unity Editor. This allows you to observe and debug SDK values directly in the Unity Inspector.
Creating a Mock Configuration
- In your Project window, right-click and select:
Create > JestSDK > Mock - Name your configuration (e.g., "JestMock")
- In the Inspector, you can:
- Set the mock player ID
- Configure initial player data
- Monitor scheduled notifications
- Toggle registered/unregistered state
- Configure purchase responses
This is especially useful for:
- Debugging player progression
- Testing notification scheduling
- Simulating different player scenarios
- Testing payments
- Testing referral flows
The mock configuration persists in edit mode, allowing you to maintain test data between play sessions.
Logs
When running a build inside the Jest platform, you can enable verbose SDK logging by adding jest_debug=true to the page URL:
https://jest.com/g/your-game?jest_debug=true
These logs are hidden by default to keep the console clean in production.