Snap stats
What you learn​
You're instantiating DIVA Player in your web front-end and relying on third party video streaming source.
The goal of this article is to build the simplest front-end to stream a video from your video production with snapstats.
Before starting​
- Ensure the video production you rely on is up and running.
 - Set the videoId and the related setting configuration.
 - In the menu XML definition, ensure that the 
snapstatselement has themode="contextual"attribute like in the following example: 
<HARList id="menu">
  <HAR id="snapstats" trackingid="snapstats" title=" {diva_snap_stats} " navigation_link="nav('snapstats');" mode="contextual"/>
  <HAR id="lineups" trackingid="lineups" title="Lineups" navigation_link="nav('lineups');"/>
  <HAR id="teamsstats" trackingid="teamsstats" title="Team stats" navigation_link="nav('teamsstats');"/>
  <HAR id="playersstats" trackingid="playersstats" title="Top players" navigation_link="nav('playersstats');"/>
</HARList>
Warning: Only one menu element can have the mode="contextual" attribute. In case many items have it, only the first one displays as snapstats (i.e., over the video viewport).
- Ensure that in the  setting the 
syncDataPanelssection is available like in the following example with mandatory fields filled in: 
"syncDataPanels": {
  "dataFolderUrl": https://example.com/fe/config/pushengine/OverlayLiteData/{V.EventId}.{d.Culture}/{OverlayID}.xml", //mandatory, 
  "renderingFolderUrl": "https://example.com/fe/config/pushengine/RenderingLiteData{n:ResourceURI}", //mandatory,  
  "trustedOrigins": "https://example.com" //...
},
- Ensure that in the setting the 
pushenginesection is available like in the following example with mandatory fields filled in: 
"pushEngine": {
  "configUrl": "https://example.com/fe/config/pushengine/pushengineConfig.json", //mandatory
  "dataPanelsCollectionName": "OverlayLiteData", //optional - it can overwrite the default value
  "dataPanelsScopeName": "{v.EventID}.{d.Culture}", //optional - it can to overwrite the default value
}
Instantiation​
There's no code to add to the Basic instantiation code.
Troubleshooting tips​
In case the timeline and commentary don't show data as expected, double-check that pushengine data timecodes are equal or greater than programDateTime in the videoMetadata — get it by exploring Network in the Chrome developer tools — and less than the video duration.