Testing your integration
The portal's game preview is not a plain iframe — it plays the app's role on the SDK bridge, injects the same SDK build the phones do, and shows a live log of every event in both directions. If your integration behaves here, it behaves on device.
The event log
Open any of your games in the portal and hit Run game. Under the device frame, the SDK eventspanel logs the traffic chronologically, timestamped from the game's boot (the clock resets on every load and restart):
| Row | Meaning |
|---|---|
| app → game | Lifecycle the host sent: appActive / appHidden. |
| game → app | Everything your game emitted: ready, levelStart, score, … |
| dropped | Events rejected by the SDK limits (rate, payload size, unknown name) — with a running count. A healthy integration shows none. |
What to verify before submitting
1. ready fires once, at the right moment — after your loading finishes, before ~8 s. Check its timestamp in the log against when your game is actually playable.
2. Hide/Show handling. Press H (or the Hide button in the toolbar). The preview sends appHidden exactly like a swipe does — your game must freeze: no animation, no sound, no advancing timers. Press again for appActive; your game must resume exactly where it stopped.
3. Boot-hidden flow. Toggle Hide first, then press R (restart). Your game now boots without ever receiving appActive — exactly how the feed warm-loads it. Verify it stays silent and does not start gameplay until you press Show.
4. No drops. If dropped rows appear, your game exceeds a limit — usually an event fired per frame instead of per gameplay moment.