Personalize Game Launch

ootb_game_launch is the required Gaming event for Optimove Personalize. Send it whenever an identified customer successfully launches a game.

Personalize uses this event to connect a customer to a game in Gaming Inventory. That interaction powers customer game history, affinities, popularity signals and personalised Gaming recommendations.

Send this event using the Server-Side Events API.

Before you begin

  • The game must already exist in Gaming Inventory.
  • context.ootb_game_code must exactly match the game’s Inventory game_code.
  • customer must be the stable identifier used when requesting recommendations for the same customer.
  • Send the event only after the launch has succeeded. Do not report clicks that failed to open the game as launches.

Example

{
  "tenant": "your_tenant_id",
  "timestamp": "2026-07-09T14:22:01Z",
  "event": "ootb_game_launch",
  "customer": "customer_12345",
  "context": {
    "ootb_launch_timestamp": "2026-07-09T14:22:00Z",
    "ootb_game_code": "SLOT001",
    "ootb_game_name": "Mega Fortune Slots",
    "ootb_game_category": "Slots",
    "ootb_start_balance": 125.5,
    "ootb_game_session_reference": "session_7f31c9",
    "ootb_language": "English",
    "ootb_country": "UK",
    "ootb_platform": "Web",
    "ootb_launch_location": "Recently Played",
    "ootb_launch_location_index": 2,
    "ootb_channel": "Desktop"
  }
}

Context fields

FieldRequiredTypePersonalize useNotes
ootb_launch_timestampYesString (date-time)Determines when the game interaction occurred and supports recency-based customer historySend an ISO 8601 UTC timestamp. It should represent the successful launch time, not the time the request was later delivered.
ootb_game_codeYesString or numberPrimary join to Gaming Inventory and the main game identifier used by recommendation modelsIt must exactly match Inventory game_code. A string is recommended for consistency with Gaming Inventory.
ootb_game_nameYesStringProvides readable game context and can support similarity and reportingUse the same name supplied in Inventory where possible. The code, not the name, is the authoritative join.
ootb_game_categoryYesStringSupplies category context for game preference and popularity analysisUse a stable category vocabulary consistent with Gaming Inventory.
ootb_start_balanceYesNumberSupplies value context at the start of play for methods that use financial signalsMust be zero or greater. Use a JSON number without a currency symbol.
ootb_countryYesStringSupplies geographic context for configured segmentation or modellingUse one stable country convention across all events. The schema does not enforce a particular code list.
ootb_game_session_referenceNoStringLinks the launch to a later Game Session summaryUse the same value in ootb_game_session_reference on the related Game Session event. It should be unique enough to identify one customer’s session.
ootb_languageNoStringSupplies language context for analysis or configured modelsUse a stable language naming convention.
ootb_platformNoStringSupports platform-specific analysisExamples include iOS, Android and Web.
ootb_launch_locationNoStringIdentifies the Personalize placement or other container that drove the launchExamples include Home, Recently Played and Search Results. Use stable placement names.
ootb_launch_location_indexNoNumberRecords the game’s position inside the launch containerMust be zero or greater. Keep indexing consistently zero-based or one-based across the integration.
ootb_channelNoStringSupplies the access channel for configured analysisExamples include Mobile, Desktop and Tablet.
ootb_brandNoStringNot currently retained by the Personalize Game Launch mapperThe top-level tenant and Optimove configuration determine routing. Do not rely on this field to route or shape Personalize recommendations.
ootb_licenseNoStringSupplies regulatory or jurisdiction context where configuredUse the same license identifiers across Gaming events.

Inventory join

The following values must refer to the same game:

Game Launch context.ootb_game_code = Gaming Inventory game_code

For example, if Gaming Inventory contains "game_code": "SLOT001", send "ootb_game_code": "SLOT001". Sending "slot001", "001" or the game name will not reliably identify the same Inventory item.

Validation checklist

  • The wrapper contains tenant, timestamp, event, customer and context.
  • event is exactly ootb_game_launch.
  • customer identifies the customer who launched the game.
  • ootb_game_code exists in the latest successfully processed Gaming Inventory.
  • All required context fields are present.
  • Both timestamps are valid ISO 8601 UTC values.
  • Numeric values are JSON numbers, not formatted strings.
  • If a session reference is supplied, the related Game Session event uses the same value.

Did this page help you?