Streaming
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 the attributes of a single customer
- Watch_History – Each row describes the attributes of the watch session
- Subscriptions – Each row describes one customer subscription
- Payments – Each row describes one subscription payment
- Asset_Catalog– Each row describes one asset item
- Favorites– Each row describes one favorite asset item
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/int | 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 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 an additional column to describe when the customer opts in \ out, 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
Watch_History
Key | Field | Data Type | Description |
---|---|---|---|
FK | Customer_ID** | string | The ID of the associated customer |
PK | Watch_ID** | string | Unique identifier of a watch |
FK | Asset_ID** | string | The ID of the associated asset |
Platform | string | The platform watch is made on (e.g. Web, Android App, iOS App, etc.) | |
Device_Category | string | Category of device | |
Duration | decimal | Watch duration, in minutes | |
Session_Start_Timestamp** | timestamp | Start of watch session | |
Session_End_Timestamp | timestamp | End of watch session |
Notes:
**=Always mandatory
Subscriptions
Key | Field | Data Type | Description |
---|---|---|---|
PK | Subscription_ID** | string | Unique subscription identifier |
FK | CID** | string | Unique customer identifier |
Subscription_Type | string | Type of subscription | |
Monthly_Price** | decimal | The monthly price for service | |
Is_Live | string | Should hold values 'Yes' or 'No' | |
Start_Date** | date | Time Stamp when the Subscription Starts | |
End_Date** | date | Time Stamp when the Subscription Ends |
Notes:
- Please add any available product information.
**=Always mandatory
Payments
Key | Field | Data Type | Description |
---|---|---|---|
PK | Payment_ID** | string | Unique subscription identifier |
FK | CID** | string | Unique customer identifier |
FK | Subscription_ID | string | Unique subscription identifier |
Payment_Date** | date | Date when the payment was made | |
Payment_Amount** | decimal | Amount of payment | |
Updated_Date | date | Date when the record was last modified or added |
Notes:
- Please add any available product information
**=Always mandatory
Asset_Catalog
Key | Field | Data Type | Description |
---|---|---|---|
PK | Asset_ID** | string | Unique identifier of an item in an order |
Asset_Genre | string | Asset genre | |
Content_Type | string | Episode, Movie, live, etc | |
Duration | decimal | total duration of asset, in minutes | |
Created_Date | date | Date the content was added | |
Updated_Date | date | Date when the record was last modified or added |
Notes:
- Please add any available product information
**=Always mandatory
Favorites
Key | Field | Data Type | Description |
---|---|---|---|
PK | Favorite_ID** | string | Unique identifier of a favorite item |
FK | CID** | string | Unique customer identifier |
FK | Watch_ID | string | Unique identifier of a watch record |
FK | Asset_ID | string | The ID of the associated asset |
Favorite_Status | string | status of a favorite item | |
Affective_From | date | Affective start date | |
Affective_Until | date | Affective end date | |
Content_Type | string | Type of content | |
Updated_Date | date | Date when the record was last modified or added |
Notes:
- Please add any available product information
**=Always mandatory
Database Schema

Updated 1 day ago