Multi Lottery

General Data Requirements

Before preparing your data tables, please review the following universal formatting rules.

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 as 4.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.

  1. Customers – each row describes the attributes of a single customer
  2. Transactions – lists all transactions that affect the player's account balance
  3. Draws – contains a record of all purchase draws for all players
  4. InstantPlay Games – records the games played by customers
  5. Lottery Catalog – contains information on available lotteries
  6. InstantPlay Game Catalog – details the available instant play games

Customers

KeyKey FieldData TypeDescription
PKPLAYER_IDStringUnique player identifier
REGISTRATION_DATEDateDate the player registered
EMAILStringMandatory when using Optimail or if required by external ESP
MOBILE_NUMBERStringMandatory if required by external service provider
DATE_OF_BIRTHDatePlayer's date of birth
IS_OPTINStringDetermines whether it is acceptable to send promotional messages to the player (values: 'Yes' or 'No')
ALLOW_EMAILStringDetermines whether promotional email messages can be sent to the player's email address (values: 'Yes' or 'No')
ALLOW_SMSStringDetermineswhether promotional SMS messages can be sent to the player's mobile number (values: 'Yes' or 'No')
ALLOW_PUSHStringDetermines whether promotional push messages can be sent to the player's mobile number (values: 'Yes' or 'No')
IS_EMAIL_VERIFIEDStringIndicates whether the email address is verified (values: 'Yes' or 'No')
IS_SMS_VERIFIEDStringIndicates whether the mobile number is verified (values: 'Yes' or 'No')
IS_BLOCKEDStringIndicates whether the player is blocked (values: 'Yes' or 'No')
IS_TESTStringIndicates whether the player is a test user (values: 'Yes' or 'No')
GENDERStringPlayer’s gender (values: 'Male', 'Female', 'Unknown')
COUNTRYStringPlayer’s country
CITYStringPlayer’s city
ADDRESSStringPlayer’s address
FIRST_NAMEStringPlayer’s first name
LAST_NAMEStringPlayer’s last name
LANGUAGEStringPlayer’s language
BALANCEDecimalThe monetary value of the player’s current balance
CASINO_NAMEStringWhen multiple casino platforms exist
ALIASStringUser name
CURRENCYStringPlayer’s currency
REFERRAL_TYPEStringMethod of player referral (e.g., SEO, Affiliate, Advertising, etc.)
AFFILIATE_IDStringAffiliate identifier or name
REGISTERED_PLATFORMStringThe platform the player registered with (e.g., Web, Android App, iOS App, etc.)
LAST_LOGIN_DATEDateThe date of the player’s last login
ALLOW_WHATSAPPStringDetermines whether promotional WhatsApp messages can be sent to the player (values: 'Yes' or 'No')
IS_OPTIN_EMAIL_TIMESTAMPTimestampDetermines from when it is acceptable to send promotional Email messages to the specified email address in case of approval

Notes:

  • 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.

Transactions

KeyFieldData TypeDescription
PKTransaction_ID**stringUnique transaction identifier
Player_ID**stringUnique player identifier
Transaction_Date**dateTransaction date
Transaction_TimestamptimestampTransaction Timestamp
Transaction_Type**stringTransaction type. Should hold values 'DEPOSIT', 'WITHDRAWAL', or 'BONUS'
Transaction_Amount**decimalMonetary value of the transaction
PlatformstringPlatform from which the transaction made (e.g. Web, Mobile, Download)
Status**stringTransaction status (e.g. Approved, Rejected, Pending). Must have status ‘Approved’ for approved transactions.
Last_UpdatedDateDate when the record was last modified or added (Mandatory in case of DB to DB connection)

Note:

  • Any other gaming dimension available can be added if needed.

Draws

KeyFieldData TypeDescription
PLAYER_IDStringUnique player identifier
PURCHASE_IDStringPurchase identifier
LOTTERY_IDStringUnique lottery identifier
PKDRAW_IDStringUnique draw identifier (Primary Key)
PKLINE_NUMBERIntegerLine number (default “1” if not utilized)
PKDRAW_DATEDateDate of the draw
TICKET_COSTDecimalCost of the ticket
WIN_AMOUNTDecimalAmount won in the draw
PLATFORMStringPlatform used for the lottery
BOOSTStringBoost chosen by the player
JACKPOTStringJackpot for the draw
STATUSStringDraw status (e.g., Won, Loss, Open)
IS_SECONDCHANCEBooleanWhether the ticket is part of a second chance draw
PURCHASE_DATEDatePurchase date

Instant Play Games

KeyFieldData TypeDescription
PURCHASE_IDStringUnique purchase identifier
PLAYER_IDStringUnique player identifier
PKINSTANTPLAY_IDStringUnique instant play game identifier (Primary Key)
GAME_IDStringGame identifier
PKENTRY_NUMBERIntegerEntry number for multiple entries per INSTANTPLAY_ID
PKGAME_PLAYED_TIMESTAMPTimestampTimestamp of game play
GAME_TYPEStringType of game (Instant or Scratch)
GAME_COSTDecimalCost of the game
WIN_AMOUNTDecimalAmount won in the game
GAME_STATUSStringStatus of the game (values: "WIN", "LOSS")
PLATFORMStringPlatform used for the instant play game
PURCHASE_DATEDatePurchase date_

Lottery Catalog

KeyKey FieldData TypeDescription
PKLOTTERY_IDStringUnique lottery identifier
LOTTERY_NAMEStringName of the lottery
LOTTERY_CATEGORYStringCategory of the lottery
UPDATE_ATTimestampLast update timestamp of the lottery catalog

Instant Play Game Catalog

KeyKey FieldData TypeDescription
PKGAME_IDStringUnique game identifier (Primary Key)
GAME_NAMEStringName of the instant play game
UPDATE_ATTimestampLast update timestamp of the game catalog

Database Schema

Database Schema

Database Schema

Batch-Data Process

Once Optimove successfully receives all historical data, a batch-data update process is required to ensure that Optimove’s data warehouse is updated every day, with the latest available data.

This data extraction process is similar to the method used for the initial historical data delivery, but will include only incremental (new/changed) data.

For additional details about the batch-data process, see Batch data process.

Ensuring Data Integrity

The following points will help ensure the integrity of the data you provide to Optimove:

  1. The primary keys (unique identifiers) that were initially defined for each table must remain present and consistent in files delivered daily, without Null values. Please avoid duplications on the primary key level.
  2. When providing historical data, ensure that data for the entire date range is provided. If this is not possible, inform Optimove in advance of any dates missing from the date ranges provided in each table.
  3. It is important that all identifiers in all transactional tables exist in the relevant DIM table. For example, all game IDs in the Games table must appear in the Game Types and Categories table, or all product IDs in the Orders table must appear in the Catalog table.
  4. It is important that all customer IDs that appear in the transactional and fact tables also appear in the Customers table. Only customer IDs appearing in the Customers table will be included in Optimove.
  5. Every change made to the data schema must be brought to Optimove’s attention in advance. Uncoordinated schema changes will cause the batch-data process to fail.
  6. Do not include any retroactive data (older than initially agreed upon) in the batch-data tables. If you feel it is necessary to do so, coordinate with Optimove in advance.
  7. Do not use any default dates such as ‘1900-01-01,’ instead please use Null (blank in files) as default.

For further explanation see Data QA Processes.

Questions?

We are here to help! Please contact us with any questions, and we will be happy to assist you. Email us at [email protected] or call us (seven days a week from 5:00 am to 8:00 pm GMT) at +972-3-672-4546.