Loading screen
Loading screen modes
When a user enters your app, the Jest platform can display a branded loading overlay while your app initializes. There are three modes:
- Auto (default) — The platform shows a brief loading animation and automatically dismisses it after a fixed duration. No SDK integration required.
- Manual — The platform shows the loading overlay immediately, but your app controls the progress and dismissal via the SDK. This is useful for apps with variable load times or asset-heavy initialization.
- Off — No loading overlay is shown.
You can configure the loading screen mode from the Developer Console under your app's settings.
Loading screen settings do not apply to onboarding games. Onboarding games never display the platform loading overlay.
Manual mode
In manual mode, the platform automatically displays the loading overlay when the app loads, with progress starting at 0%. Your app reports progress and dismisses it when ready.
Report loading progress
Reports loading progress to the overlay. The progress parameter is a number from 0 to 100. When progress reaches 100, the overlay is dismissed with a fade-out animation. Values outside the 0–100 range are clamped automatically.
- HTML5
- Unity
JestSDK.setLoadingProgress(progress)
JestSDK.setLoadingProgress(progress: number): void;
Non-integer values are rounded.
await JestSDK.init();
// Report progress as assets load
JestSDK.setLoadingProgress(25);
// ... load more assets ...
JestSDK.setLoadingProgress(50);
// ... load more assets ...
JestSDK.setLoadingProgress(75);
// Dismiss the overlay when ready
JestSDK.setLoadingProgress(100);
JestSDK.Instance.SetLoadingProgress(progress)
jest.SetLoadingProgress(float progress);
var jest = JestSDK.Instance;
// Report progress as assets load
jest.SetLoadingProgress(25);
// ... load more assets ...
jest.SetLoadingProgress(50);
// ... load more assets ...
jest.SetLoadingProgress(75);
// Dismiss the overlay when ready
jest.SetLoadingProgress(100);
Safety timeout
If the platform does not receive a progress update for 15 seconds, it assumes there was an issue loading the app and automatically exits the user back to the home screen. Each progress update resets this timer, so long loads are fine as long as progress is reported regularly.
Reporting app loaded
Marking your app as loaded signals to the Jest platform that your app is ready to be played — all assets have loaded, initialization is complete, and the user can now interact. For apps in the Jest Fund, this is also an important signal that lets us analyze the behavior of the traffic we send to your app.
- Call it when the user can start interacting — not after optional or user-gated asset downloads that happen post-init. Including that time would inflate the measured load with the user's own reaction time, so stream additional assets in the background instead.
- Safe to call at any time. Calls after the first are no-ops.
- Works in any loading-screen mode (Auto, Manual, or Off).
- Dismisses the manual loading overlay, as if progress had been set to
100— unless the app already drove progress to 100 itself. So in Manual mode you can call this instead of reporting100to both dismiss the overlay and report the milestone.
Mark the app as loaded
- HTML5
- Unity
JestSDK.markGameLoaded()
JestSDK.markGameLoaded(): void;
await JestSDK.init();
// Load assets, initialize app state...
await loadAssets();
await initializeWorld();
// The player can now start playing (this also dismisses the loading overlay)
JestSDK.markGameLoaded();
JestSDK.Instance.MarkGameLoaded()
jest.MarkGameLoaded();
var jest = JestSDK.Instance;
// Load assets, initialize game state...
yield return LoadAssets();
yield return InitializeWorld();
// The player can now start playing (this also dismisses the loading overlay)
jest.MarkGameLoaded();