Broadcast Graphics

## Getting Started To maximize the efficiency and accuracy of your live sports graphics, OnAir provides an advanced platform for integrating real-time sports data into broadcast systems. It interfaces with all industry standard graphics software, ensuring dynamic data representation that aligns with the rapid pace of sports events. **Setting up your OnAir integration** 1. [Log in to your OnAir account](https://onair.sportradar.com/). If you require credentials, contact your Sportradar representative via Slack. 2. Create profiles for your desired leagues and seasons. 3. Customize the format and presentation of your sports data. 4. Configure queries to pull data. The below are instructions on how to use the OnAir product but you can also check out instructional videos at this [link](https://youtube.com/playlist?list=PLeBxpXH5_pEcz6kLr3JrXttke__v4njGf&si=pc0CcEEnryDD9G4Y). ## Creating a Profile 1. In the OnAir dashboard, select the **Choose a Profile** dropdown and select **Profile Management**. 2. Select **New Profile**. 3. Select your desired **League**, then enter a **Profile Name** and **Season**. **Note:** The “Season” field indicates the specific year of data you want to retrieve. While you’ll often select the current season, during preseason or early regular season games, you might prefer data from the previous season due to limited new stats. By choosing a different season, you eliminate manual syntax adjustments on your pages. The system will auto-update the “season” filter’s data source, and {{info.time.season}} will display “LAST SEASON” instead of “THIS SEASON”. 4. Select **Create Profile**. The newly created profile will display on the dashboard. Return to top ## Setting a Live Profile The **Live Profile** determines which profile is used for CG application calls. 1. Once you’ve created your profiles, set the desired **Live Profile** by selecting its associated radio button. 2. Select **Save** to confirm. ## Setting and Querying Matchups Setting a matchup is crucial in the OnAir system as it provides context to much of the available syntax. OnAir matchups can be defined in two primary ways: 1. **Manual Matchups** to set hypothetical matchups between teams. 2. **Real Matchups** for scheduled games. Return to top ## Setting a Manual Matchup Manually set any hypothetical matchup between teams. 1. Go to **Matchup** and select a profile in the **Choose a Profile** dropdown. 2. Set an away and home team. For example, the Boston Celtics and Los Angeles Lakers are selected as the away and home teams respectively. Once an away and home team are selected, a **Matchup successfully stored** notification will display indicating that the matchup was stored to your profile. The team and player information from your matchup will display in the **MATCHUP** menu below. **Note**: You can click on the different column headers to sort the players by that column. Return to top ## Setting a Real Matchup Select a scheduled game matchup. 1. Go to **Matchup** and select a profile in the **Choose a Profile** dropdown. 2. Select the **Calendar** button. 3. Select the desired match. Note that the away team is listed first in the schedule. For instance, a 7:00 PM EST game displays as Philadelphia 76ers (PHI – Away) vs. Detroit Pistons (DET – Home). Once an away and home team are selected, a **Matchup successfully stored** notification will display indicating that the matchup was stored to your profile. The matchup will display below. Scroll to see all details. **Note – Game Specific Data:** As of now, OnAir does not support queries to retrieve game-specific data. In the future, should we integrate features like odds and gambling data pertinent to individual games, users will need to access this data by selecting the game via the **Calendar** button. However, this game-specific data integration is not yet available. Return to top ## Testing Data Queries To test data queries for your matchup: 1. Enter a page number in the **Page** field. Learn more about default context rules. 2. Enter a query in the **Syntax Test** field. The example below is a query to return a player’s name on the away team. For a list of available queries and inputs see the Syntax Library 3. Select the “lightbulb” button to test your query. If successful, your results will display in green. **Querying Matchup Statistics:** To query matchup statistics, follow the same steps described above. Use the **Stat Defaults** and **Syntax Library** pages to reference the list of statistics and queries you can use. The following example is a query to return the total number of points Steph Curry has scored in his career. ## Default Context Rules Every graphic page follows specific rules to determine the context of the data it’s referencing. For instance, when querying `info.player.fullname`, the system needs to know which player to pull. This decision is based on the digits of the graphic’s page number. - The page number must be *at least* a three-digit code to extract the context from either a player or team. - The last two digits identify the player, based on their jersey number. - The preceding digits identifies the team, where: - Odd numbers correspond to away teams. - Even numbers correspond to home teams. **Examples**: - 134: The last two digits **34** is for the player with the jersey #34 from the away team (because 1 is odd). - 204: The **2** denotes the home team and **04** is the jersey number of the player. Return to top ### Page Numbers Exceeding Three Digits For page numbers that exceed three digits, you should focus primarily on the last three digits for context extraction, as the three preceding digits can be used for differentiating graphic types and don't play a role in the player or team context. Consider a seven-digit number like **4943321**: - The first four digits **4943** can be used as identifiers for the type of graphic or the image category. - The next digit **3** determines the team. Here, it’s an away team since 3 is odd. - The last two digits **21** indicate the jersey number of the player. Return to top ### Addressing Unique Jersey Numbers Teams occasionally have players with jersey numbers “0” and “00”, which poses a challenge. To address this: - A single “0” defaults to the jersey number “00”. (e.g., Gary Payton II) - The double “00” is mapped to the number “69”. **Note**: This mapping remains effective unless the NBA administration changes jersey number policies Return to top ### Custom Queries for Specific Players To retrieve specific player information regardless of the context set by the page number, you can use a direct query method: **Syntax**:`{{info.player(TEAM_CODE,JERSEY_NUMBER).full_name}}` **Examples** 1. To retrieve information for a player with the jersey number “00” from Golden State Warriors: - **Query**: `{{info.player(GSW,00).full_name}}` - **Output**: Jonathan Kuminga 2. For players with the jersey number “0”: - **Query**: `{{info.player(GSW,0).full_name}}` - **Output**: Gary Payton II By using this method, you bypass the page number’s default settings and directly specify the team and jersey number in the query itself, ensuring precision in retrieving player information, including those with “00” and “0” jerseys. Return to top ## Settings Access OnAir's settings to configure platform parameters and optimize system integrations for enhanced operational efficiency. **Note**: Ensure to save all changes to settings to apply them to your profile. ## My Team This setting allows you to select your primary team, for instance, the Chicago Bulls. If occasionally you cover another team, like the Miami Heat, you can set up another profile specifically for those games. 1. In **Settings**, select **My Team**. 2. Select a team from the **My Team** dropdown menu. 3. Save your changes. ### System Impacts This selection has significance with certain queries in OnAir. For example, if you utilize a query like `info.us`, it will always retrieve data for the team designated as **My Team.** If the Chicago Bulls is your selected team, even if they aren't part of the profile’s current matchup, the query will fetch data for the Bulls. There's also a counterpart query, `info.them`, which identifies the opposing team when 'My Team' is in the matchup. For instance, if the Bulls play against the Knicks, `info.them` will return data for the Knicks. **However, if 'My Team' isn't part of the matchup, this query won't return any data.** This functionality is beneficial for broadcasters who consistently focus on one team and want consistent data display regardless of whether their team is home or away. Return to top ## User Dictionary This setting allows you to define custom variables to streamline data retrieval. Think of it as creating shortcuts to fetch frequently used data sets or complex syntax. For instance, to access a player's headshot, you might have to navigate through a detailed file path on the system. Instead of constantly inputting this lengthy path, you can set a custom variable like `custom.headshot`. When this variable is invoked, it translates to the full path, making data retrieval more efficient. This principle applies to other scenarios as well. For example, for broadcasting crews with multiple announcers, you can use the User Dictionary to set variables for different announcers' names. If Bob Costas and Marv Albert alternate as announcers, you could have variables like `custom.announcer1` to represent either of their names. By updating this single variable in the User Dictionary, multiple graphics or settings that utilize this variable would automatically reflect the change, ensuring consistent and efficient data representation. 1. In **Settings**, select **User Dictionary.** 2. Select **Add new variable**. 3. Enter a name and file path for your custom variable in the **Name** and **Value** fields. 4. Save your changes. ### System Impacts To test your newly created custom variable, enter it into the **Syntax Test** field and select the **lightbulb**. The **Test Return** will show the outcome of your test. For instance, using the Page field value of **109** (where **1** indicates the Away team and **09** represents RJ Barret's jersey number), the system retrieved RJ Barret's headshot from the New York Knicks based on the path defined in your custom variable. Return to top ## Text Formatting Text Formatting lets you define the presentation style for returned text. 1. In **Settings**, select **Text Formatting** 2. Configure your desired change and save. ### Functionalities 1. **Name Suffix Formatting**: The system, by default, adds a period after suffixes like “Jr.” or “Sr.”. However, based on your preferences, this can be toggled off by setting the **Period in Name Suffix** field to **Never**. 2. **Name vs. Non-Name Data Formatting**: - OnAir distinguishes between names and other types of data, offering separate formatting options for each using the **Global Text Default** and **Global Name Default** fields. - For example, when using the query `info.layer.fullname`, if the **Global Name Default** is set to **SmallCAPS** and the **Global Text Default** is set to **lower case**, the name format will prioritize the **SmallCAPS** setting. This means names will be displayed in a distinct format, such as **DeMAR DeROZAN**, regardless of the global text default. - If a user prefers all-uppercase for names, simply switching to the **UPPER CASE** option will modify the name output accordingly. 3. **Date and Time (Text) Formatting:** - Queries like `{{info.time.month}}` and `{{info.time.season}}` return the current month and season respectively. The formatting can be adjusted to display in lowercase, title case, or any other desired format. - As an example, with the **lower case** setting, the system would return **september**. Switching to **Title Case** would modify the output to **September**. The following example shows what the **lower case** setting would return. 4. **Digit Group Separator**: Customize the formatting of numerical values by choosing your preferred method for separating digit groups. This feature ensures that numbers are displayed in a manner consistent with regional or stylistic preferences. Return to top ## Ranges The system provides default settings for interpreting queries based on page number, but these can be modified to cater to individual broadcast client preferences. ## Flipping Home and Away Teams - By default, odd numbers represent away teams while even numbers represent home teams. - If you prefer even numbers for away teams, you can activate the **FLIP DEFAULT HOME/AWAY RANGES**. ## Customizing Specific Ranges You can set specific number ranges to always represent either home, away, us, or them teams context regardless of whether certain digits in the page number are odd or even. 1. Click **Add A Range** 2. Enter the desired starting and ending number for your range and select what you want it to represent. 3. Save your changes. **Away Example**: If you set the range `200-299` to always represent away teams, the query `230` will still fetch Steph Curry even if **FLIP DEFAULT HOME/AWAY RANGES** is deactivated. **Example using the "Us" option**: When you define a specific number range, you can use the **Us** option to refer to players from your chosen team, designated as **My Team**. For instance, if you've set **My Team** to the Bulls and you query a player using the page number 211 within that range, the system will interpret it as a request for the Bulls' player with jersey number 11. In this case, it will return DeMar DeRozan. Return to top ## Modifying Jersey Number Interpretation Within specified number ranges, you can alter which digits represent the jersey number. This allows for more flexibility in querying players based on jersey numbers and team affiliations. 1. Enter the desired starting and ending number for your range and select what you want it to represent. You can also select **Add A Range** to create a new range. 2. In the **Jersey ## Slice Position** field, select the position where you want the system to interpret the jersey number. Remember to choose a specific team context in the **Team** field or the range you set will not be pulled. 3. Save your changes. **Note**: The **Jersey ## Slice Position** field will consider only the segment of the range with the fewest digits. Thus, if the lower end of your range has four digits, that will dictate the maximum number of digits you can configure for the Jersey position. ## Ignore Range You can specify a certain range to be "ignored" using the **Ignore Range** checkbox. When you set a range to ignore and save, the system won't retrieve any data for queries within that range. This is useful if you wish to preload data or maintain query syntax on a page, but don't want the system to make real-time requests when that page is accessed. This setting lets you display static data without initiating real-time queries. **Note:** This feature is currently under development and will be available shortly. Return to top ## Overrides **Overrides** enable you to adjust data that might not be updated yet in our database or to make customizations based on specific preferences. ### Use Cases 1. **Name Customization:** While our API may list players with their official names, there might be popular alternatives that teams prefer. For instance, our API might list **Stephen Curry,** but you might want it to display as **Steph Curry**. 2. **Team Aliases:** Different broadcast networks often have varying abbreviations for teams. The NBA, for example, might have the Golden State Warriors abbreviated as **GS** in one system and **GSW** in another. If a network prefers **NY** over **NYK** for the New York Knicks, this setting allows for that customization. ### How to Use the Overrides Setting 1. Click **Add An Override**. 2. Select a team. 3. If your override will apply to a specific player, select a player. **Otherwise**, if the override applies to the team, leave the **Player** field blank. The override in this example will apply to a player. 4. Select the syntax you want to override in the **Syntax** dropdown and enter the desired value in the **User Override** field. 5. Save your changes. 6. Test your changes. ### Note on Overriding Team Names When you override team names or aliases, it won't change the query syntax used to fetch that team in the system. For instance, even if you've set a display override for the New York Knicks' alias from "NYK" to "NY" for graphics, the original "NYK" must still be used in the query syntax. ## Stat Defaults The **Stat Defaults** setting allows you to customize the default format of statistics displayed across sports. **Settings** 1. **Shift Decimal**: Primarily used for decimals or percentages. Raw values (e.g., 0.47 for 47%) can be shifted by this feature. Example: If set to 2, 0.47 becomes 47.00%. 2. **Decimal Places**: Dictates how many decimals should be shown. Example: If set to 1, 47% becomes 47.0%. 3. **Custom Suffix**: Allows users to append specific characters to the end of a statistic. Commonly used for adding the ‘%’ sign to percentages. 4. **Leading Zero**: Displays a zero before statistics less than one. It’s especially relevant for baseball metrics like OPS or batting average. Example: For a stat like 0.835, users can choose to display it as “.835” or “0.835”. 5. **Plus Symbol**: Adds a ‘+’ sign before positive differential stats. Helpful for showcasing positive variations, such as in team performance metrics. Return to top ## Syntax Library The Syntax Library provides an organized view of the different query options available to users. ## Available Queries **Info Queries**: Retrieves data mainly from Sportradar's sports media APIs. Examples include: - **Team Attributes**: Generic team information. - **Player Attributes**: Information on players. - **Time Attributes**: Specifics like day of the week, current year, month, and season. - **Note**: The ‘season’ attribute is derived from a combination of the profile setting and the actual time. For instance, if the profile is set to 2022 but the current season is 2023, the system will recognize it as “last season”. **Stats**: Generic statistics sourced from the Radar 360. **Rank**: Shows the rank of a team or player in a specific category. **Note**: It’s advised not to use this feature currently, as further adjustments are still in progress. **Custom**: Pertains to the user dictionary variable. ## Query Inputs Use the dropdown to see available query inputs for **Filters, Entities, Attributes** and more. **Note:** For measures, go to the **Stat Defaults** page. Return to top ## CG Integration In order to pull OnAir coding into your graphics pages, you must ensure that you have the latest version of the new SRDI installed and that it is connected to your graphics application (bar at the bottom of application is green). Please see the [SRDI instructions](https://developer.sportradar.com/files/NBA-SRDI-BETA-INSTRUCTIONS.pdf) for how to do this. Once you have SRDI installed, you have entered your OnAir credentials in the SRDI configuration page, and you have an active OnAir profile, you are ready to start putting queries into fields on your graphics. ### Viz - Enter queries in the Custom Coding field associated with each tab - Please also ensure that you have your company’s latest Trio Show Script in your Trio Show ### Chyron - Enter queries in the Node Name for each field and ensure that II and External Updates are enabled on the tab - For Chyron, you will also need to add an ! at the beginning of any syntax string regardless if it is just custom text or an info or stats query ### Ross - Enter queries in the X Name for each field and ensure that the “CII X” and “As Run” boxes are toggled on - For Ross, you will also need to add an ! at the beginning of any syntax string regardless if it is just custom text or an info or stats query Return to top ## Frequently Asked Questions ### Why would I need multiple profiles? Multiple profiles are often necessary if you are a freelance operator who works across different networks, shows and sports. Having multiple profiles saved within your account lets you easily switch settings and preferences based on the specific broadcast you’re managing. ### Do I need separate profiles for different years or seasons? Typically, no. You'd mostly need a profile for each sport or broadcast network you work with. However, if you wish to maintain separate profiles for testing or other specific reasons, you can create as many as you'd like. When you decide to use stats from, say, 2023, you'd simply update the stat year of your existing profile in the Profile Management section, rather than creating an entirely new one. ### Why would I ever use something other than one or two to signify the home or the away team? Given the limited available page ranges and to avoid congestion in the lower numbers, you might prefer using alternative digits. For instance, rather than being restricted to the 100-200 range, you could select a page like 615. In this case, the even number would represent a home player. ### Is there a way for me to browse the market abbreviations or the player names? Yes, they can find these details on the **Matchup** page. To see all the attributes for a team and its players, simply input the desired team into the matchup. Navigate throughout the page for a comprehensive view. ### Where can I access all available statistics? To access all available statistics you can query, go the **Stat Defaults** page. There you will see the syntax and definition for each statistic. Return to top

Docs Navigation