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_codemust exactly match the game’s Inventorygame_code.customermust 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
| Field | Required | Type | Personalize use | Notes |
|---|---|---|---|---|
ootb_launch_timestamp | Yes | String (date-time) | Determines when the game interaction occurred and supports recency-based customer history | Send an ISO 8601 UTC timestamp. It should represent the successful launch time, not the time the request was later delivered. |
ootb_game_code | Yes | String or number | Primary join to Gaming Inventory and the main game identifier used by recommendation models | It must exactly match Inventory game_code. A string is recommended for consistency with Gaming Inventory. |
ootb_game_name | Yes | String | Provides readable game context and can support similarity and reporting | Use the same name supplied in Inventory where possible. The code, not the name, is the authoritative join. |
ootb_game_category | Yes | String | Supplies category context for game preference and popularity analysis | Use a stable category vocabulary consistent with Gaming Inventory. |
ootb_start_balance | Yes | Number | Supplies value context at the start of play for methods that use financial signals | Must be zero or greater. Use a JSON number without a currency symbol. |
ootb_country | Yes | String | Supplies geographic context for configured segmentation or modelling | Use one stable country convention across all events. The schema does not enforce a particular code list. |
ootb_game_session_reference | No | String | Links the launch to a later Game Session summary | Use 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_language | No | String | Supplies language context for analysis or configured models | Use a stable language naming convention. |
ootb_platform | No | String | Supports platform-specific analysis | Examples include iOS, Android and Web. |
ootb_launch_location | No | String | Identifies the Personalize placement or other container that drove the launch | Examples include Home, Recently Played and Search Results. Use stable placement names. |
ootb_launch_location_index | No | Number | Records the game’s position inside the launch container | Must be zero or greater. Keep indexing consistently zero-based or one-based across the integration. |
ootb_channel | No | String | Supplies the access channel for configured analysis | Examples include Mobile, Desktop and Tablet. |
ootb_brand | No | String | Not currently retained by the Personalize Game Launch mapper | The top-level tenant and Optimove configuration determine routing. Do not rely on this field to route or shape Personalize recommendations. |
ootb_license | No | String | Supplies regulatory or jurisdiction context where configured | Use 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_codeFor 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,customerandcontext. eventis exactlyootb_game_launch.customeridentifies the customer who launched the game.ootb_game_codeexists 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.
Updated about 2 hours ago
Did this page help you?
