# Metadata Configuration Guide for SDK Integration

<table data-header-hidden><thead><tr><th width="196.20833333333331">Variable</th><th width="463.5595703125">Description</th><th>Mandatory/Optional</th></tr></thead><tbody><tr><td><strong>Variable</strong></td><td><strong>Description</strong></td><td>Mandatory/<br>Optional</td></tr><tr><td>Customer ID</td><td>Unique identifier assigned by MediaMelon to your organization. If unknown, contact MediaMelon Support.</td><td>Mandatory</td></tr><tr><td>Subscriber ID</td><td>Unique identifier of the subscriber or user consuming the video content.</td><td>Mandatory</td></tr><tr><td>Subscriber Type</td><td>Type of the subscriber. Common values include "Free", "Trial", or "Paid".</td><td>Mandatory</td></tr><tr><td>Subscriber Tag</td><td>Additional string metadata about the subscriber. Do not include sensitive data. Used for segmentation or custom tagging.</td><td>Optional</td></tr><tr><td>Hash Subscriber ID</td><td>Boolean value that determines whether the subscriber ID should be hashed before sending. Set to <code>true</code> to hash the value.</td><td>Mandatory</td></tr><tr><td>Domain Name</td><td>Logical partition to group your users, streams, or assets (e.g., regional or brand-specific domain name). This field is used for channel ID by many customers.</td><td>Mandatory</td></tr><tr><td>is Live</td><td>A boolean value that determines whether the content is live or on-demand. Set to true for live content (e.g., live events or broadcasts), and false for VOD content (e.g., movies, episodes).</td><td>Mandatory</td></tr><tr><td>Stream URL</td><td>The URL of the current playing video stream (HLS or DASH). This is used for playback tracking and analytics.</td><td>Mandatory</td></tr><tr><td>Asset ID</td><td>Unique identifier for the video asset.</td><td>Mandatory</td></tr><tr><td>Asset Name</td><td>Human-readable name or title of the video asset.</td><td>Mandatory</td></tr><tr><td>Video ID</td><td>Unique identifier for the video content. It can be the same as <strong>Asset ID</strong> or a different logical ID used in your system.</td><td>Mandatory</td></tr><tr><td>Content Type</td><td>The category or type of content, e.g., "Movie", "Episode", "Clip", "LiveStream".</td><td>Mandatory</td></tr><tr><td>Genre</td><td>Genre of the content, such as "Drama", "Comedy", "Documentary", etc.</td><td>Optional</td></tr><tr><td>DRM Type/Protection</td><td>DRM technology used (e.g., “Widevine”, “FairPlay”, “PlayReady”). Use “Unknown” if the content is protected, but the DRM type is unknown. Leave blank for clear (non-DRM) content.</td><td>Mandatory</td></tr><tr><td>Episode Number</td><td>Episode number within a season. Useful for TV series or episodic content.</td><td>Mandatory</td></tr><tr><td>Season</td><td>Name or number of the season (e.g., "Season 1", "S2").</td><td>Mandatory</td></tr><tr><td>Series Title</td><td>Title of the series to which the episode belongs.</td><td>Mandatory</td></tr><tr><td>Player Name</td><td>Name of the <strong>custom player</strong> or <strong>application-level player wrapper</strong> used in your app (e.g., <code>"MyCustomPlayer"</code>). If you don’t use a custom wrapper, use the native/base player name (e.g., <code>"ExoPlayer"</code>, <code>"AVPlayer"</code>).</td><td>Mandatory</td></tr><tr><td>Player Brand</td><td>Brand or organization maintaining the custom player. This could be your company name or the name of a third-party SDK vendor. Use the native player brand if no custom wrapper exists.</td><td>Mandatory</td></tr><tr><td>Player Model</td><td>Model or variant name of your custom player (e.g., <code>"MyCustomPlayerV2"</code>, <code>"PlayerAlpha"</code>). If not applicable, use a relevant descriptive value or copy the native player model (e.g., <code>"AVPlayer-iOS"</code>).</td><td>Mandatory</td></tr><tr><td>Player Version</td><td>Version of your custom player or wrapper. Helps distinguish between changes/releases. If no custom wrapper exists, specify the base player version (e.g., <code>"2.18.3"</code> for ExoPlayer).</td><td>Mandatory</td></tr><tr><td>Base Player Name</td><td>Native/base player** used for actual playback (e.g., <code>"ExoPlayer"</code>, <code>"AVPlayer"</code>). This should always reflect the core media engine even if you have a custom player wrapper.</td><td>Mandatory</td></tr><tr><td>Base Player Version</td><td>Version of the underlying base player (e.g., <code>"2.18.3"</code> for ExoPlayer, or iOS system version for AVPlayer). If you don’t have a custom wrapper, this value will be the same as <strong>Player Version</strong>.</td><td>Mandatory</td></tr><tr><td>Experiment Name</td><td>Label used to segment views under different test experiments for analytics or A/B testing.</td><td>Mandatory</td></tr><tr><td>Sub Property ID</td><td>An identifier for sub-grouping under a single customer account. Useful for multi-brand or multi-service setups under the same customer.</td><td>Mandatory</td></tr><tr><td>View Session ID</td><td>Unique session identifier to correlate video playback with logs from other systems (e.g., CDN logs, backend services). Some customers put the application session ID to have a consolidated view.</td><td>Mandatory</td></tr><tr><td>Application Name</td><td>Name of the application or service through which the user is consuming the video content. This helps distinguish traffic and analytics across multiple apps or platforms under the same customer account (e.g., "MyOTTApp", "MyStreamingTV").</td><td>Mandatory</td></tr><tr><td>Application Version</td><td>Version of the application that the end user is using. This is useful for tracking analytics across different app releases, troubleshooting regressions, and correlating performance or playback issues to specific app builds (e.g., "1.2.3", "2025.07.15").</td><td>Mandatory</td></tr><tr><td>Device ID</td><td>A unique identifier representing the user's playback device. This may be an anonymized or hashed string, depending on your privacy policy.</td><td>Optional</td></tr><tr><td>Media Type</td><td>The type of video stream (e.g., <code>live</code> or <code>on-demand</code>)</td><td>Mandatory</td></tr><tr><td>Source Type</td><td>Indicates the streaming protocol used for playback. Common values include <code>HLS</code> or <code>DASH</code>, based on the stream URL type.</td><td>Mandatory</td></tr><tr><td>Stream Format</td><td>Describes the encoding variant or encoder configuration. Useful for comparing performance between different encoding settings. Examples: <code>x264</code>, <code>hevc</code>, <code>av1-0</code>, <code>av1-4</code>, <code>av1-8</code></td><td>Mandatory</td></tr><tr><td>CDN</td><td>Name or identifier of the Content Delivery Network (CDN) used to deliver the content (e.g., Akamai, CloudFront, Fastly)</td><td>Mandatory</td></tr><tr><td>Player Width</td><td>Integer value representing the width (in pixels) of the video player on the screen.</td><td>Mandatory</td></tr><tr><td>Player Height</td><td>Integer value representing the height (in pixels) of the video player on the screen.</td><td>Mandatory</td></tr></tbody></table>
