PlayGenusDocs

Client event reference

Every client-side PlayGenus event — sessions, screens, tutorials, ads, crashes, performance — with full property schemas and examples.

These events are recommended for the Client SDK. Some are collected automatically; the rest need a track() call at the right moment in your game code. If your tracking plan includes them, your generated SDK has a typed method for each — no string-typing event names.

Wondering which of these apply to your game at all? That's decided by your progression model.

Session events

Collected automatically. No code needed.

EventWhen it firesWhat it tells you
session_startPlayer opens your gameA new session began, with device info attached
session_endPlayer closes or backgrounds your gameHow long they played, how many events in the session
session_foregroundPlayer returns from backgroundHow long they were away

Properties — session_start:

PropertyTypeRequiredExample
device_modelstringNo"iPhone 14 Pro"
os_namestringNo"iOS"
os_versionstringNo"17.2"
app_versionstringYes"1.2.3"
screen_widthintNo1170
screen_heightintNo2532
localestringNo"en_US"
timezonestringNo"America/New_York"
connection_typestringNo"wifi", "cellular", or "offline"

Properties — session_end:

PropertyTypeRequiredExample
session_duration_secondsintYes342
events_in_sessionintNo47

Properties — session_foreground:

PropertyTypeRequiredExample
background_duration_secondsintYes120

UI & engagement events

You call these — the SDK can't know which screen counts as "the shop".

screen_view

Track when the player moves between screens. This is how you learn where players actually spend their time (and where they wander off).

PropertyTypeRequiredExample
screen_namestringYes"main_menu", "shop", "level_select"
previous_screenstringNo"main_menu"
time_on_previous_secondsintNo15

ui_click

Specific button taps, for detailed UX analysis. Optional — track the interactions you care about, not every tap.

PropertyTypeRequiredExample
element_idstringYes"btn_play", "btn_shop_gems"
element_typestringNo"button", "toggle", "tab"
screen_namestringNo"main_menu"

tutorial_step

Each milestone in your tutorial flow. Tutorial drop-off is one of the biggest early-churn signals there is, so this one earns its place.

PropertyTypeRequiredExample
step_idstringYes"welcome", "first_match", "first_purchase"
step_namestringNo"Welcome Screen"
step_indexintYes1
total_stepsintNo8

tutorial_complete

PropertyTypeRequiredExample
total_duration_secondsintYes180
steps_completedintYes8
steps_skippedintNo0

feature_unlocked

The player discovered or unlocked a new game feature.

PropertyTypeRequiredExample
feature_idstringYes"daily_challenges", "clan_wars"
feature_namestringNo"Daily Challenges"
unlock_methodstringNo"level_reached", "iap", "tutorial"

social_share

The player shared something outside the game.

PropertyTypeRequiredExample
share_targetstringYes"twitter", "facebook", "instagram", "clipboard"
content_typestringNo"score", "screenshot", "replay"

Ad events

Call these from your ad SDK's callbacks — when ironSource, AppLovin, or AdMob fires an event, mirror it to PlayGenus.

ad_requested

PropertyTypeRequiredExample
ad_typestringYes"rewarded", "interstitial", "banner"
ad_networkstringNo"ironsource", "applovin", "admob"
placement_idstringNo"level_complete_reward"

ad_shown

PropertyTypeRequiredExample
ad_typestringYes"rewarded"
ad_networkstringNo"ironsource"
placement_idstringNo"level_complete_reward"
screen_namestringNo"level_complete"

ad_clicked

PropertyTypeRequiredExample
ad_typestringYes"interstitial"
ad_networkstringNo"admob"
placement_idstringNo"between_levels"

ad_completed

Fires when a rewarded ad is watched to the end.

PropertyTypeRequiredExample
ad_typestringYes"rewarded"
ad_networkstringNo"applovin"
placement_idstringNo"extra_life"
reward_typestringNo"coins", "life", "booster"
reward_amountintNo50

ad_failed

PropertyTypeRequiredExample
ad_typestringYes"rewarded"
ad_networkstringNo"ironsource"
placement_idstringNo"extra_life"
error_codestringNo"NO_FILL"
error_messagestringNo"No ad available"

Performance & error events

app_crash

Collected automatically — the Unity SDK hooks the engine's log callback and reports any unhandled managed exception, including its stack trace (truncated to 1 KB) and the last screen the player saw.

Scope: this covers unhandled managed (C#) exceptions. Native crashes — engine or plugin segfaults that kill the process outright — aren't visible to this hook. If you need those, run a dedicated native crash reporter alongside PlayGenus.

PropertyTypeRequiredExample
exception_typestringYes"NullPointerException"
exception_messagestringNo"Object reference not set"
stack_tracestringNo(truncated to 1 KB)
screen_namestringNo"gameplay"

error

Report errors explicitly, when you want them.

PropertyTypeRequiredExample
severitystringYes"debug", "info", "warning", "error", "critical"
messagestringYes"Failed to load level assets"
contextstringNo"level_loader"

performance_sample

You sample and send this yourself — the SDK generates a typed method but doesn't collect it automatically, so you stay in control of the profiling cost. Every 60 seconds from your game loop is a reasonable default.

PropertyTypeRequiredExample
fps_avgfloatYes58.3
fps_minfloatNo24.1
memory_used_mbfloatNo312.5
scene_namestringNo"gameplay"

Device context

Not a separate event — a block of properties automatically attached to every event the Client SDK sends:

PropertyTypeExample
device_modelstring"Samsung Galaxy S24"
os_namestring"Android"
os_versionstring"14"
app_versionstring"1.2.3"
sdk_versionstring"0.1.0"
screen_widthint1080
screen_heightint2340
localestring"de_DE"
timezonestring"Europe/Berlin"
connection_typestring"wifi"

On this page