Multi: Sport and Casino
General Data Requirements
Before preparing your data tables, please review the following universal formatting rules.
The below represents Optimove's required data schema. If you are unable to provide your data in the requested schema, you will be requested to supply a clear mapping from your schema to the Optimove standard schema as part of the onboarding process. This ensures a smooth data integration and avoids delays.
Data Formatting
- Decimal Precision: All decimal-type attributes must be rounded to a maximum of four decimal places. For example, a value of
4.56789
must be formatted as4.5679
. This applies to all monetary fields and other decimal values. - Currency Conversion: All monetary figures must be converted into a single, consistent currency across all tables.
Required Data Tables
The following data tables describe the content, format, and labels of the required data.
- Customers – Each row describes a player
- Bets– Each row describes a ticket placed by a player
- Bets Details – Each row describes a single bet within a ticket
- Transactions – each row describes a financial transaction
- Games– Each row describes a daily aggregation of a specific game played, player, and platform
- Game Types and Categories – Game IDs and their associated types and categories
Customers
Key | Field | Data Type | Description |
---|---|---|---|
PK | Player_ID** | string/int | Unique player identifier |
Registration_Date** | date | Date the player registered | |
Email* | string (max 250) | Mandatory when using Optimail or if required by external ESP | |
Mobile_Number* | string | Mandatory if required by external service provider | |
Date_Of_Birth | date | Player's date of birth | |
Is_OptIn | string | Determines whether it is acceptable to send promotional messages to the specified player. Should hold the values 'Yes' or 'No'. | |
Allow_Email* | string | Determines whether sending promotional Email messages to the specified email address is acceptable. Should hold the values 'Yes' or 'No'. | |
Allow_SMS* | string | Determines whether sending promotional SMS messages to the specified mobile address is acceptable. Should hold the values 'Yes' or 'No'. | |
Allow_Push* | string | Determines whether sending promotional Push messages to the specified mobile number is acceptable. Should hold the values 'Yes' or 'No'. | |
Is_Email_Verified | string | Determines whether the email address is verified. Should hold the values 'Yes' or 'No'. | |
Is_SMS_Verified | string | Determines whether the mobile number is verified. Should hold the values 'Yes' or 'No'. | |
Is_Blocked | string | 'No’ = regular player; 'Yes’ = blocked player (e.g. fraud) | |
Is_Test | string | 'No’ = regular player; 'Yes’ = test player | |
Gender | string | Player’s gender. Must hold values ‘Male’, ‘Female’, ‘Unknown’ | |
Country | string | Player’s country | |
City | string | Player’s city | |
Address | string | Player’s address | |
First_Name | string | Player’s first name | |
Last_Name | string | Player’s last name | |
Language | string | Player's language | |
Balance | decimal | The monetary value of a player’s current balance | |
Casino_Name | string | When multiple casino platforms exist | |
Alias | string | User name | |
Currency | string | Player’s currency | |
Referral_Type | string | The method by which the player was referred to your site (e.g., SEO, Affiliate, Advertising, Marketing, etc.). | |
Affiliate_ID | string | Affiliate identifier or name | |
Registered_Platform | string | The platform the player had registered with (e.g. Web, Android App, iOS App, etc.) | |
Last_Login_Date | date | The date of the player’s last login to the website | |
Allow_Whatsapp | string | Determines whether sending promotional WhatsApp messages to the specified mobile number is acceptable. Should hold the values 'Yes' or 'No'. | |
LastUpdated | date | Date when the record was last modified or added (Mandatory in case of DB to DB connection) | |
Is_Optin_Email_Time_Stamp* | Timestamp | Determines when it is acceptable to send promotional Email messages to the specified email address in case of approva |
Note:
- Please include any additional information that you find helpful
- IsOptinEmailTimeStamp* - In case Optimove will manage the “unsubscribe” for the Opti-Mail integration please include additional column to describe when the customer opt in \ out, in order to allow perfect sync with the daily batch.
- The email field must not exceed 250 characters (varchar(250)). This constraint is required to ensure compatibility with database and external ESP systems.
*=Mandatory if required for the execution channel integration
**=Always mandatory
Bets
Key | Field | Data Type | Description |
---|---|---|---|
PK | Ticket_ID** | string | Unique ticket identifier |
FK | Player_ID** | string | Unique player identifier |
Open_date** | date | Date the ticket was opened | |
Settled_date | date | Date the ticket was Settled | |
Cash_Bet_Amount** | decimal | Bet amount from cash money | |
Bonus_Bet_Amount | decimal | Bet amount from bonus money | |
Bet_Amount** | decimal | Total bet amount | |
Win_Amount** | decimal | Total win amount | |
Odds | decimal | Combined winning odds for all bets in the ticket | |
Ticket_Type | string | Ticket type. Should hold the value 'Single', 'Multi', or 'System' | |
Platform | string | Platform from which the ticket was opened. Should hold the value 'Web' or 'Mobile' | |
Ticket_Status | string | Ticket status. Should hold the value 'Win', 'Loss', or 'Open' | |
Is_Live | int | 1 = Bet was made during the event; 0 = otherwise | |
Is_Free | int | 1 = Is a free ticket; 0 = otherwise | |
Cashout_Flag | int | 1 = Bet was cashed out; 0 = otherwise | |
Last_Updated | date | Date when the record was last modified or added (Mandatory in case of DB to DB connection) |
Notes:
- Include free games in this table if the data is available
- Attach a description of your Net-Gaming revenue calculation methodology
Bets Details
Key | Field | Data Type | Description |
---|---|---|---|
PK | Bet_ID** | string | Unique bet identifier |
FK | Ticket_ID** | string | Unique ticket identifier |
Odds | decimal | Winning odds for the specific bet | |
Discipline | string | Discipline of the bet (e.g. Football, Horse Racing, Golf, etc.) | |
Meeting | string | Meeting of the bet (e.g. NBA, World Cup 2018, Premier League, Serie A, etc.) | |
Event | string | Event of the bet (e.g. Man U Vs Arsenal, Wimbledon 2020, etc.) | |
Bet_Type | string | Bet type (e.g. Correct score, Win, Each way, etc.) | |
A_Team | string | Man U | |
B_Team | string | Arsenal | |
Is_Live | int | 1 = Bet was made during the event; 0 = otherwise | |
Selection | string | selection of the bet |
Games
Key | Field | Data Type | Description |
---|---|---|---|
PK | Game_Date** | Date | Date of the game |
PK | Player_ID** | string | Unique player identifier |
PK | Game_ID** | string | Game type identifier |
PK | Platform | string | Should hold values 'web' or 'mobile' |
Real_Bet_Amount** | decimal | Monetary real value that was wagered | |
Real_Win_Amount | decimal | Monetary real value that was won | |
Bonus_Bet_Amount | decimal | Total bonus amount that was wagered | |
Bonus_Win_Amount | decimal | Total bonus amount that was won | |
Net_Gaming_Revenue** | decimal | Total revenue (after bonuses deduction) from daily sessions, in case of daily aggregation | |
Number_of_Real_Bets | int | Total amount of real bets played | |
Number_of_Bonus_Bets | int | Total amount of bonus bets played | |
Number_of_Sessions | int | Total number of sessions played | |
Number_of_Real_Wins | int | Total amount of real bets won | |
Number_of_Bonus_Wins | int | Total amount of bonus bets won |
Notes:
- Include free games in this table
- Attach a description of your Net-Gaming revenue calculation methodology
- If the platform field is not available, keep the first 3 fields as PK
**=Always mandatory
Game Types and Categories
Key | Field | Data Type | Description |
---|---|---|---|
PK, FK | Game_ID** | string/int | Game unique identifier |
Game_Name | string | Game name (e.g. Blackjack, Silver Dollar) | |
Game_Category | string | Division of games into major categories (e.g. Slots, Roulette, Table, etc.) | |
Update_At | date | Date when the record was last modified or added |
Note:
- Any other gaming dimension available can be added if needed, as our proposition is relatively lean.
**=Always mandatory
Transactions
Key | Field | Data Type | Description |
---|---|---|---|
PK | Transaction_ID** | string/int | Unique transaction identifier |
Player_ID** | string | Unique player identifier | |
Transaction_Date** | date | Transaction date | |
Transaction_Timestamp | timestamp | Transaction Timestamp | |
Transaction_Type** | string | Transaction type. Should hold values 'DEPOSIT', 'WITHDRAWAL', or 'BONUS' | |
Transaction_Amount | decimal | Monetary value of the transaction | |
Platform | string | Platform from which the transaction made (e.g. Web, Mobile, Download) | |
Status** | string | Transaction status (e.g. Approved, Rejected, Pending). Must have status ‘Approved’ for approved transactions. | |
Last_Updated | Date | Date when the record was last modified or added (Mandatory in case of DB to DB connection) |
Note:
**=Always mandatory
Database Schema

Updated 14 days ago