Identity Events

The Events tab shows a chronological history of actions associated with a particular identity. You can see when a play session began and ended and all the events in between (for example: joined a group, unlocked a character, received a reward).

Identity Events stream
Identity Events stream

The actions displayed are specific, predefined events in your game. Use them to capture the details you need to understand and improve player experience, engagement, and outcomes.

Core events #

Satori’s event taxonomy includes a set of core events (also known as default events) that are already defined in the system. These events are preconfigured and ready to be received by the server.

Core events are not auto‑captured by the SDK. Your game client (or server, where noted) must fire them to enable downstream features.

Some default audiences depend on computed properties generated from these default events. If you do not fire the events, those audiences will be incomplete or empty.

EventTypeDescription
achievementClaimedanyIndicates an achievement with the given identifier was claimed.
achievementUpdatednumericIndicates an achievement with the given identifier was updated.
adImpressionanyThe amount in US cents of Ad revenue.
adPlacementFailedanyIndicates an ad placement with the given identifier has failed.
adPlacementStartedanyIndicates an ad placement with the given identifier was started.
adPlacementSucceededanyIndicates an ad placement with the given identifier has succeeded.
adStartedstringIndicates an ad with the given identifier was started.
appLaunchedstringIndicates the application with the given identifier was started.
auctionBidanyIndicates an auction with the given identifier was bid.
auctionCancelledanyIndicates an auction with the given identifier was cancelled.
auctionClaimBidanyIndicates an an auction claim with the given identifier was bid.
auctionClaimCreatedanyIndicates an auction claim with the given identifier was created.
auctionCreatedanyIndicates an auction with the given identifier was created.
challengeClaimedanyIndicates the challenge with the given identifier has been claimed.
challengeCreatedanyIndicates the challenge with the given identifier has been created.
challengeInvitationAcceptedanyIndicates the invitation for the challenge with the given identifier has been accepted.
challengeInvitationSentanyIndicates an invitation for the challenge with the given identifier has been sent.
challengeJoinedanyIndicates a player joined the challenge with the given identifier.
challengeLeftanyIndicates a player has left the challenge with the given identifier.
challengeUpdatednumericIndicates the challenge with the given identifier has been updated.
currencyGrantednumericIndicates a currency with the given identifier was granted.
currencySpentnumericIndicates a currency with the given identifier was spent.
donationClaimedanyIndicates a donation with the given identifier was claimed.
donationGivenanyIndicates a donation with the given identifier was given.
donationRequestedanyIndicates a donation with the given identifier was requested.
energyGrantednumericIndicates an energy with the given identifier was granted.
energyModifierGrantednumericIndicates an energy with the given identifier was modified.
energySpentnumericIndicates an energy with the given identifier was spent.
eventLeaderboardClaimedanyIndicates an event leaderboard with the given identifier has been claimed.
eventLeaderboardRolledanyIndicates an event leaderboard with the given identifier has been rolled.
eventLeaderboardUpdatednumericIndicates an event leaderboard with the given identifier has been updated.
gameFinishedstringIndicates a game with the given identifier was finished. A game marks the outer gameplay envelope for a player’s session, including menus, loading screens, and other activities. It is distinct from the concept of a match or round.
gameStartedstringIndicates a game with the given identifier was started.
incentiveCreatedanyIndicates an incentive with the given identifier was created.
incentiveDeletedanyIndicates an incentive with the given identifier was deleted.
incentiveRecipientClaimedanyIndicates an incentive with the given identifier has been claimed by the recipient.
incentiveSenderClaimedanyIndicates an incentive with the given identifier has been claimed by the sender.
itemSpentnumericIndicates an item with the given identifier was spent.
itemUpdatedanyIndicates an item with the given identifier was updated.
itemsConsumednumericIndicates an item with the given identifier was consumed.
itemsGrantednumericIndicates an item with the given identifier was granted.
progressionPurchasedanyIndicates a progression with the given identifier was purchased.
progressionResetanyIndicates a progression with the given identifier was reset.
progressionUpdatednumericIndicates a progression with the given identifier was updated.
purchaseCompletednumericThe amount in US cents of the purchase.
purchaseIntentanyIndicates that there has been an intent for a purchase with the given identifier.
rewardModifierGrantednumericIndicates a reward with the given identifier was modified.
screenViewedstringIndicates a game screen with the given identifier was viewed.
statUpdatednumericIndicates a stat with the given identifier was updated.
teamCreatednumericIndicates a team with the given identifier was created.
tutorialAbandonednumericIndicates a tutorial with the given identifier was abandoned.
tutorialAcceptedanyIndicates a tutorial with the given identifier was accepted.
tutorialCompletednumericIndicates a tutorial with the given identifier was completed.
tutorialDeclinedanyIndicates a tutorial with the given identifier was declined.
tutorialResetanyIndicates a tutorial with the given identifier was reset.
tutorialStartednumericIndicates a tutorial with the given identifier was started.
tutorialStepCompletednumericThe step number of a multipart tutorial that was completed.
unlockableClaimedanyIndicates an unlockable with the given identifier has been claimed.
unlockableCreatedanyIndicates an unlockable with the given identifier has been created.
unlockableSlotPurchasednumericIndicates an unlockable slot has been created.
unlockableUnlockPurchasedanyIndicates an unlockable with the given identifier has been purchased.
unlockableUnlockStartednumericIndicates an unlockable with the given identifier has been unlocked.

A series of computed properties are automatically generated and tracked per identity for each of these default events, as long as the event is fired.

Synthetic events #

Synthetic events, also known as server-side events, are automatically generated and tracked by Satori in response to certain actions. For example, whenever a user’s properties are updated—whether via the client SDK or during authentication—Satori fires the _propertiesUpdate event.

EventDescription
_identityCreateThe Satori identity was created.
_sessionStartA new play session has started.
_identifyAn anonymous user has been identified. The previous anonymous identity has been merged into the new identity, along with all of its events.
_propertiesUpdateThe Satori identity had its properties updated
_experimentJoinThe Satori identity joined a phase, including experiment/phase/variant info.
_liveEventJoinThe Satori identity joined a Live Event.

Tracking players before sign-in #

When a player starts your game without signing in, Satori can still track their activity under a temporary identity (typically device-based). If that player later authenticates, Satori merges their guest history into their permanent identity.

Here’s what happens:

  1. Player starts as guest: Your client calls Authenticate with a temporary ID. Satori fires _identityCreate and _sessionStart for this identity.
  2. Player generates activity: All events, properties, and experiment assignments are tracked under the temporary identity.
  3. Player signs in: Your client calls Identify with the player’s permanent ID. Satori fires _identify, migrates all data from the temporary identity to the permanent one, and deletes the temporary identity.

See Identifying a session with a new ID for more details.

Commonly confused terms #

Some Satori terms sound similar but have distinct meanings. The following clarifies what each one means.

Item Spent vs Item Consumed #

Use the item events to distinguish cost from use:

EventTypical MetadataDescription
itemSpent{itemId, itemType, amount, sink}An inventory item is spent as a cost (e.g., 100 gold to craft, 1 key to open a chest).
itemConsumed{itemId, itemType, amount, context}An inventory item is used/consumed (e.g., XP boost token activated, health potion drunk).
If you enable Satori Publisher in Hiro, itemSpent and itemConsumed are triggered automatically and forwarded to Satori. See Publishers and Unity analytics.

Metadata vs Value #

Satori events include two fields for custom data:

EventDescription
metadataKey–value context that describes the event. Use this to enrich analysis and data lake exports (for example, tutorial type, isSkipped).
valueA measure used for computed properties and metrics. Use this to power automatic computed properties (for example, send the tutorial ID in value for tutorialCompleted to update tutorialCompletedSeenLast) and to feed Metrics in the dashboard.

Example (tutorialCompleted):

1
2
3
4
5
6
7
8
{
  "name": "tutorialCompleted",
  "value": 3,
  "metadata": {
    "tutorialType": "movement",
    "isSkipped": false
  }
}

Schema validation #

Both metadata and value are validated against schemas defined in Taxonomy. Satori provides these built‑ins, and you can add your own:

  • ANY - Accepts any value; no validation.
  • Number - Expects a numeric value.
  • String - Expects a string.
  • Object - Expects a JSON object (arbitrary keys/values allowed).
  • Event‑Revenue‑Metadata - Specialized object for revenue events; include at least amount and currency (and optional test) to enable correct conversion and revenue calculations.

Additional Information #

How-to Guides

Linked Concepts

Reference Docs