# FAQ

## How do I start the integration?

To begin integration:

1. **Schedule an onboarding call** with IMG Arena’s Integration Management team.
2. They will provide access credentials and walk you through the Sandbox tool.
3. **Use the `/tournament`** [**endpoint** ](https://app.gitbook.com/s/gD9hukZlLQwRd0NZZaXQ/master/static-data)to retrieve an `eventID`.
4. This ID is required to initialize a tournament in the Sandbox environment.
5. [**Explore available modules**](https://app.gitbook.com/s/gD9hukZlLQwRd0NZZaXQ/golf-ec-deep-linking/sandbox-examples) using the Sandbox interface.

* This helps validate view configurations and understand how the integration library behaves across different contexts.

## How do I build static data?

To generate static tournament data:

1. **Query the `/tournaments`** [**endpoint**](https://app.gitbook.com/s/gD9hukZlLQwRd0NZZaXQ/master/static-data)**.**
   1. Use `dateFrom` and `dateTo` parameters to define the range.
   2. Example:

```
GET https://dde-api.imggaming.com/golf/tournaments?dateFrom=2022-01-01&dateTo=2022-12-31
```

* This returns all tournaments covered by IMG Arena within the specified period

2. **Query the `/schedule`** [**endpoint**](https://app.gitbook.com/s/gD9hukZlLQwRd0NZZaXQ/master/static-data)**.**
   * For any active tournament week, use `/schedule` to retrieve tee-time data.
   * This includes groupings and timings for each round.

* Refer to the `/schedule` endpoint documentation for schema details and response structure.

## How do I map IMG Arena Event IDs to Internal systems IDs?

To perform tournament-level mapping:

1. **Query the `/tournaments` endpoint**
2. Extract key fields: `name`, `tour`, and `startDate`
3. These attributes are consistent across systems and suitable for matching
4. **Apply fuzzy matching logic**

* Use string similarity or date-based heuristics to align IMG Arena events with internal records
* This approach accounts for minor naming variations while leveraging universal identifiers like start date

Tip: Ensure your parser tolerates formatting differences (e.g., “The Masters” vs “Masters Tournament”) and supports partial matches when exact alignment isn’t guaranteed.

## What static data should I save and why?

To support reliable tournament mapping, scheduling, and market linking, save the following fields

| Parameter                                                  | Definition                                                                    | Purpose                                                                                                                                                                                     |
| ---------------------------------------------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| name                                                       | Name of the tournament                                                        | To retrieve the tournament name related to the ID.                                                                                                                                          |
| startTeeTime                                               | Returns time of the first tee-off of the tournament                           | To determine the start time of the tournament. **Note that value will populate when the initial tee-times are made available. If tee-times are not available, then Null will be returned.** |
| isStreaming under golfCourses --> roundNo --> holes object | Returns which hole will have streaming enabled                                | Once the course details are made available, you can use this parameter to determine which hole will have streaming.                                                                         |
| id                                                         | Unique ID for the tournament                                                  | This ID returned will be the "eventID" used in the integration library. i.e this is the event ID needed to load the tournament via the event centre.                                        |
| tour                                                       | Returns the name of the federation of which the golf tournament is apart off. | Helps determine if the tour is apart of PGA, LPGA or DPWT. This will help when it comes to mapping. Note that we return "tour": "European Tour" for DPWT events.                            |
| startDate                                                  | Returns the start date of the tournament.                                     | This will help with mapping.                                                                                                                                                                |

From the `/tournaments` endpoint, persist the following fields to support tournament mapping, scheduling, and integration:

* **`name`**: Tournament name — used for display and fuzzy matching
* **`startDate`**: Tournament start date — critical for aligning with internal schedules
* **`id`**: Unique tournament identifier — passed as `eventID` when initializing the integration library
* **`tour`**: Federation or tour name (e.g., PGA, DPWT, LPGA) — used for filtering, categorization, and routing logic

These fields form the foundation for static data mapping and are essential for linking dynamic endpoints like `/schedule`, `/markets`, and `/leaderboard`.

#### **From the /tournament/{ID}/schedule endpoint:**

To support tee-time mapping, group-level targeting, and market linkage, store the following fields

| Parameter                                           | Definition                                                                            | Purpose                                                                                                                                                                                                                                                                                                       |
| --------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| startTime                                           | Start time for the group                                                              | expected time for when the group will start the hole.                                                                                                                                                                                                                                                         |
| date                                                | Stat date for the group                                                               | Start date of the group.                                                                                                                                                                                                                                                                                      |
| groupId                                             | Unique group ID for the group                                                         | You will need to save the groupId if you will be using initial context within the integration library. The GroupID will be useful when trying to link a 3/2 ball on the frontend to the 3/2ball markets. i.e so if a user clicks on a particular group the relevant markets will be displayed and vice versa. |
| teeSeq                                              | Tee Sequence for a given group. i.e "teeSeq": 4 means 4th group to start on the hole. | This will help you determine the ordering of the groups.                                                                                                                                                                                                                                                      |
| round                                               | The round the tee-times are related to.                                               | This will help determine which round the tee-time is related to.                                                                                                                                                                                                                                              |
| hole                                                | The hole that the group will start on, either will be 1 or 10                         | Will inform you which hole the groups are expected to started from.                                                                                                                                                                                                                                           |
| players within group--> groupNo --> teams--> teamNo | determine which players are within a group.                                           | Will inform you which players are within a group. This will help mapping at group level.                                                                                                                                                                                                                      |

#### What static data should I build from the `/tournament/{ID}/schedule` endpoint?

Before accessing this endpoint, ensure you have:

* **Tournament name**
* **Tournament ID (`eventID`)**
* **Estimated schedule release time** — typically **2 days before tournament start**

Static Data to Build by Round

<table><thead><tr><th width="177"></th><th></th></tr></thead><tbody><tr><td><code>groupId</code></td><td>Unique identifier for each group — used for market linkage and UI targeting</td></tr><tr><td><code>playerIds</code></td><td>List of players within the group — supports 2-Ball, 3-Ball, and Player Markets</td></tr><tr><td><code>teeTime</code></td><td>Scheduled start time — used for rendering and market activation</td></tr><tr><td><code>holeStart</code></td><td>Starting hole number (e.g., 1 or 10) — relevant for shotgun formats</td></tr><tr><td><code>groupOrder</code></td><td>Order of play — defines sequencing of groups within a roun</td></tr></tbody></table>

🧠 Release Timing Notes

* **Rounds 1 and 2**: Tee-times and groupings are released in advance (typically 48 hours before start)
* **Rounds 3 and 4**: Groupings are published after Round 2 completion, based on leaderboard standings

### When does a tournament start

* Use the `/tournament/{ID}` endpoint.
* Field: `startTeeTime`
* Returns the first scheduled tee-time (UTC).
* If not yet available, this field will return `null`

## When can I display the Golf Event Centre

* The Event Centre becomes renderable once **tee-times are available**.
* Use `startTeeTime` as the trigger to initialize the UI.

### When should I pull the `/schedule` endpoint

* Most tournaments run **Thursday–Sunday**.
* Initial schedule (Rounds 1 & 2) is typically available **Tuesday midday GMT**.
* Recommended polling:
* Every **minute on Tuesdays** for upcoming events.
* After completion of **Round 2 and Round 3** to retrieve updated groupings for Rounds 3 & 4.

### What format is `startTime`

* Format: `HH:MMZ` (UTC)
* `Z` indicates offset (e.g., `+01:00`, `-05:00`)

### When should I stop displaying the Event Centre

Recommended:

* Keep live until a few hours post-event.
* Event Centre supports displaying events up to **2–3 weeks in the past**.

### How do I track round status

* Use the `/leaderboards` **WebSocket** feed.
* Field: `roundStatuses`
  * Indicates: `notStarted`, `inProgress`, `suspended`, `finished`.
* Contact your Integration Manager for access.

### How do I test streaming

1. **Set up streaming in Sandbox**:
   1. Schedule a walkthrough with your Integration Manager.
2. **Generate streaming tokens**:
   1. Docs: [Token Creation Guide](https://docs.sportradar.com/golf-integration/broken-reference)
   2. Node.js script: [Token Generator](https://docs.sportradar.com/golf-integration/broken-reference)
   3. Update your IP and ALC token in the script.
3. **Pass token + timestamp** into the Integration Library with your ALC Operator ID.
   1. Example: [Streaming Sandbox](https://codesandbox.io/s/group-detail-view-only-forked-rfq0li)
4. **Testing outside live hours**:
   1. Use the **weekly simulation** environment (*link to sim page*)

### How do I know if an event has streaming

1. Check `/tournament/{ID}`:
   1. Field: `holes[].isStreaming === true`
2. Request a **coverage schedule** from your Integration Manager.
3. View coverage in the **ALC platform**.

### What are the different coverage levels?

| Level | Data Type                                | Streaming            | Notes                   |
| ----- | ---------------------------------------- | -------------------- | ----------------------- |
| L1    | Shot-by-shot (`ShotlinkWithLaser`)       | ✅ 2 Par 3 holes      | Highest coverage        |
| L2    | Hole-by-hole (`ScoredWithWalkingScorer`) | ✅ (TV feed for LPGA) | Mid-tier coverage       |
| L3    | Leaderboards only (`HoleScoresOnly`)     | ❌                    | Minimal data, no stream |

### How to escalate issues?

* **During integration**: Contact your Integration/CSM team via your dedicated channel.
* **Post go-live**: Email <support@imgarena.com> — available 24/7/365.

### What are the SLAs for a live query?

For the response time for support:

* 15 minutes for the first response
* 15 minutes for the next update
* 30 minute intervals for any further updates thereafter

### What size of the iframe do you recommend?

* Minimum: **320px width × 362px height**
* Reducing height may cause UI misalignment.

### What is the quality of the stream?

* All streams run at **360p (728 Kbps)** due to broadcast rights.

### How is geo-blocking done for streaming?

* Geo-blocking is enforced **at operator level** by IMG Arena.
* Contact your Customer Solutions Manager for details.

### Can we get a list of player Id?

* Endpoint:\
  `https://dde-api.imggaming.com/golf/players`
* Returns: Player ID, name, country, DOB (if known), European Tour ID, PGA Tour ID.
* Contact your Integration Manager for access.

### What does Round "401" mean?

* Round `401` indicates a **playoff stage**

### What can I customise within the Iframe?

* Branding (colors, fonts, etc.) is customizable.
* Provide your brand guidelines to your Integration Manager.
* UX team can deliver mockups and a customization spec.

### How to pass your Google Analytics ID:

* Use the `options` field in the integration library:

`options: { videoPlaybackEnabled: true, userId: 'UA-XXXXXX-X' }`

* Contact IMG Integrations team if you need your GA ID.

### When are scoring levels available:

* **DPWT**: 7 days before tournament start
* **PGA**: Friday before event (\~5pm ET) with course data

### Current list of featured flags:

<table><thead><tr><th>Feature</th><th>Description</th><th data-hidden></th></tr></thead><tbody><tr><td>Disabling Favouriting</td><td>Allow you to disable the favouriting functionally</td><td></td></tr><tr><td>Disabling Searching</td><td>Allow you to disable the search functionally</td><td></td></tr><tr><td>Hole map default perspective</td><td>Allows the options to choose whether you would like the hole maps to show 2D or 3D by default.</td><td></td></tr><tr><td>Hole Map icons</td><td><p>Allows you to turn off any of the following icons:</p><ul><li>3D toggle</li><li>Reset</li><li>Full Screen</li><li>Green</li></ul></td><td></td></tr><tr><td>Leaderboard flags</td><td>Gives you the options of choosing whether you would like to show player flags next to their name.</td><td></td></tr><tr><td>Custom Favorite icon</td><td>Gives you the ability to have your own Fav icon.</td><td></td></tr><tr><td>Group Detail V2</td><td>On hole and shots view moves the player selector into the header to release more real estate to the map.</td><td></td></tr></tbody></table>

if you require the above feature flags, please liaise with the IMG Arena integrations team.
