Real-time sport updates
Keep fans up-to-date as matches unfold in real-time based on their registered interest
Real-time Sport Updates from Xtremepush allows you to send triggered campaigns based on real-time match updates.
Can't see this option?
The real-time Sport Update is a paid feature. If you wish you enable it, please contact your Account Manager to get information on pricing.
Sport Radar event IDs required
This feature relies on the Sport Radar feed which uses the Bet Radar
sport_event
IDs to identify from which match a user is interested in receiving updates.There is currently no mapping available for
sport_event
IDs from other feed providers and so it is recommended you only use this feature if you are able to provide Sport Radar Bet Radarsport_event
IDs from your own sports betting and gaming platform.
Connect and setup steps
The set-up of the Real-time Sport Updates feature is done in 4 steps.
1. Enable the feed
Enable the feed to allow incoming game events to be passed into the project. These events will be used to trigger campaigns.
Go to: Settings > Integrations > Marketplace and select the Real-time Sport Updates integration.
2. Select sport
After enabling the feed, there is an option to select the sport whose live events will be used for triggering the campaigns. The current integration supports soccer, NBA, MLB, NFL and NHL sports events.
3. Pre-select customer identity
After selecting the sport, there is an option to select the unique identifier to be used for individual users/devices. The selection here is the same as would be used when setting up a user list.
To offer the Real-time Sport Updates functionality to logged-in users, your User ID can be passed to Xtremepush when registering to follow a match (more on this below).
Identify your users by Device ID
So that you can also send updates to logged out users or to register interest by device it is suggested that you set up and pass the Xtremepush device ID.
Registering by device requires you to integrate the Xtremepush SDK in your app so the Xtremepush device ID can be tracked by, and stored in your app. Review dedicated guides on how to integrate the Xtremepush SDK in your website, Android and iOS app.
4. Link game events to campaigns
Once the setup is complete it is important to link which campaign will be triggered by which sporting event. For example, you may want a campaign which contains the current score to be sent when the game hits halftime.
For more information on building the campaigns, see the section below.
To make the selection, navigate to Settings > Integrations > Marketplace > Configured integrations > Real-time Sport Updates > Overview. Then select one of the available events and then choose which campaign to trigger when that event is fired.
Register that a customer is following a match
For a customer to receive the triggered campaigns, you must register their unique ID to follow a particular sport event, or match, using the Follow API method.
After receiving the details of the user or device, Xtremepush will add them to a list which can be found under:
Data > Audiences > Sport feeds.
Sport feeds lists
Review these lists during set up to check IDs are being correctly received and stored.
Deregister a customer from following a match
To remove a customer from following a sport event, you should use the Unfollow API method.
Create API campaigns
Events received by the project will trigger any mapped campaigns which must be set up as API-triggered campaigns.
When creating the content in the messages, dynamic values can be pulled from the incoming feed and displayed, depending on the type of sporting event.
Example of placeholder token: {{ payload.event.home_score }}
.
Campaign content examples
Below is some example content that can be used for each of the Events offered in the Overview > Mapping section.
Match started
{{ payload.event.home_team }} - {{ payload.event.away_team }}
Half time
{{ payload.event.home_team }} ({{ payload.event.home_score }}) - ({{ payload.event.away_score }}) {{ payload.event.away_team }}
Second half started
{{ payload.event.home_team }} - {{ payload.event.away_team }}
Match ended
{{ payload.event.home_team }} ({{ payload.event.home_score }}) - ({{ payload.event.away_score }}) {{ payload.event.away_team }}
Yellow card
{{ payload.event.player_name }} of {% if payload.event.competitor == "home" %} {{ payload.event.home_team }} {% else %} {{ payload.event.away_team }} {% endif %}
Red card
{{ payload.event.player_name }} of {% if payload.event.competitor == "home" %} {{ payload.event.home_team }} {% else %} {{ payload.event.away_team }} {% endif %} {{ payload.event.match_time }} (second yellow)
Red card
{{ payload.event.player_name }} of {% if payload.event.competitor == "home" %} {{ payload.event.home_team }} {% else %} {{ payload.event.away_team }} {% endif %} {{ payload.event.match_time }}
GOAL!
{% if payload.event.competitor == "home" %} {{ payload.event.home_team }} ({{ payload.event.home_score }}) - {{ payload.event.away_score }} {{ payload.event.away_team }} {% else %} {{ payload.event.home_team }} {{ payload.event.home_score }} - ({{ payload.event.away_score }}) {{ payload.event.away_team }} {% endif %} {{ payload.event.match_time }}
GOAL!
{% if payload.event.competitor == "home" %} {{ payload.event.home_team }} ({{ payload.event.home_score }}) - {{ payload.event.away_score }} {{ payload.event.away_team }} {% else %} {{ payload.event.home_team }} {{ payload.event.home_score }} - ({{ payload.event.away_score }}) {{ payload.event.away_team }} {% endif %} - {{ payload.event.player_name }} {{ payload.event.match_time }}
Add dynamic values to the campaign
Soccer dynamic values
For soccer matches the full list of available field are as follows:
Available dynamic values | Returned information | Translated |
---|---|---|
metadata.sport_event_id | The id for the match or sporting competition. | NA |
payload.event.id | The id for each individual event received within the match or sporting competition. | NA |
payload.event.match_clock | Elapsed time in minutes and seconds: e.g. 9:23, 45:51 | NA |
payload.event.match_time | Minute of the match: e.g. 10', 45+1 | NA |
payload.event.home_score | Current home score | NA |
payload.event.away_score | Current away score | NA |
payload.sport_event_status.aggregate_away_score | Aggregated away score for multi-leg games | |
payload.sport_event_status.aggregate_home_score | Aggregated home score for multi-leg games | |
payload.event.competitor | home or away | |
payload.event.home_team | Home team name | Yes |
payload.event.away_team | Away team name | Yes |
payload.event.player_name | Name of the players name that triggered the event | Yes |
payload.event.description | One of the following possible values:goal , penalty , red_card , call_stands , call_overturned , no_goal , no_penalty , no_red_card | |
payload.event.method | One of the following possible values:penalty , own_goal , header , shot , free_kick | |
payload.event.type | One of the following possible values:match_started , match_ended , period_start , score_change , yellow_card , yellow_red_card , red_card , break_start | |
payload.event.players | JSON object containing id , name and type .type is one of possible values:scorer , assist , substituted_in , substituted_out | Yes (player names only) |
Translations
Where the row is marked as Translated = Yes, the placeholder will be replaced with the correct language based on the campaign language variant.
Be aware that not all teams/players will have a translation, and not all languages are available. In this case, the default language will be used.
NBA dynamic values
For NBA matches the full list of available field are as follows:
Translations for NBA feed
The NBA feed does not support translations.
Available dynamic values | Returned information |
---|---|
payload.game.id | The id for the match. |
payload.event.id | The id for each individual event received within the match. |
payload.event.clock | Elapsed time in minutes and seconds: e.g. 9:23, 45:51 |
payload.event.home_points | Current home score |
payload.event.away_points | Current away score |
payload.event.competitor | home or away |
payload.event.home_team | home team name |
payload.event.away_team | away team name |
payload.event.player_name | Name of the players involved with the triggering event (only in the case of ejections) |
payload.event.event_type | One of the following possible values:match_started , match_ended , period_start , period_ended , ejection |
payload.event.players | JSON object containing id , full_name and jersey_number . |
MLB dynamic values
For MLB matches the full list of available field are as follows:
Translations for MLB feed
The MLB feed does not support translations.
Available dynamic values | Returned information |
---|---|
payload.game.id | The id for the match. |
payload.event.id | The id for each individual event received within the match. |
payload.event.type | The type of the event. One of the following possible values: match_started , break_start , key_period_start , period_start , key_period_end , period_end , match_ended , homerun |
payload.event.wall_clock.start_time | The start times of the event, including timezone e.g. 2023-06-29T17:12:33+00:00 |
payload.event.wall_clock.end_time | The end times of the event, including timezone e.g. 2023-06-29T17:12:33+00:00 |
payload.game.home.name | The nickname of the home team; e.g. Mets, Astros |
payload.game.away.name | The nickname of the away team; e.g. Mets, Astros |
payload.game.home.market | The city of the home team; e.g. New York, Houston |
payload.game.away.market | The city of the away team; e.g. New York, Houston |
payload.game.home_team | The full name of the home team combining market and name; e.g. New York Mets, Houston Astros |
payload.game.away_team | The full name of the away team combining market and name; e.g. New York Mets, Houston Astros |
payload.game.home.runs | The number of runs scored by the home team |
payload.game.away.runs | The number of runs scored by the away team |
payload.event.hitter.first_name | The player's first name at bat |
payload.event.hitter.last_name | The player's last name at bat |
payload.event.hitter.id | The player's id at bat |
NHL Dynamic Values
For NHL matches the full list of available field are as follows:
Translations for NHL feed
The NHL feed does not support translations.
Available dynamic values | Returned information |
---|---|
payload.game.id | The id for the match. |
payload.event.id | The id for each individual event received within the match. |
payload.event.event_type | The type of the event. One of the following possible values:match_started , period_start , period_end , match_ended , score_change |
payload.event.clock | The game time of the event e.g. 18:17 |
payload.game.home.name | The nickname of the home team; e.g. Avalanche, Canucks |
payload.game.away.name | The nickname of the away team; e.g. Avalanche, Canucks |
payload.game.home.market | The city of the home team; e.g. Colorado, Vancouver |
payload.game.away.market | The city of the away team; e.g. Colorado, Vancouver |
payload.game.home_team | The full name of the home team combining market and name; e.g. Colorado Avalanche, Vancouver Canucks |
payload.game.away_team | The full name of the away team combining market and name; e.g. Colorado Avalanche, Vancouver Canucks |
payload.game.home_score | Score of the home team in question |
payload.game.away_score | Score of the away team in question |
payload.game.home.scoring[1].points | 1st-period score for home team |
payload.game.home.scoring[2].points | 2nd-period score for home team |
payload.game.home.scoring[3].points | 3rd-period score for home team |
payload.game.away.scoring[1].points | 1st-period score for away team |
payload.game.away.scoring[2].points | 2nd-period score for away team |
payload.game.away.scoring[3].points | 3rd-period score for away team |
payload.event.attribution.name | The name details for the team that scored, for score_change events; e.g. Canucks |
payload.event.attribution.market | The market details for the team that scored, for score_change events e.g. Vancouver |
NFL Dynamic Values
For NFL matches the full list of available field are as follows:
Translations for NFL feed
The NFL feed does not support translations.
Available dynamic values | Returned information |
---|---|
payload.game.id | The id for the match. |
payload.event.id | The id for each individual event received within the match. |
payload.event.type | The type of the event. One of the following possible values: match_started ,match_ended , score_change |
payload.event.clock | The game time of the event e.g. 18:17 |
payload.event.wall_clock | The start times of the event, including timezone e.g. 2022-06-29T17:12:33+00:00 |
payload.game.home.name | Nickname of home team; e.g. Chargers, Brancos |
payload.game.away.name | Nickname of away team; e.g. Chargers, Brancos |
payload.game.home.market | The city of the home team; e.g. Los Angeles, Denver |
payload.game.away.market | The city of the away team; e.g. Los Angeles, Denver |
payload.game.home_team | The full name of the home team combining market and name; e.g. Los Angeles Chargers, Denver Brancos |
payload.game.away_team | The full name of the away team combining market and name; e.g. Los Angeles Chargers, Denver Brancos |
payload.game.home_score | Score of the home team in question |
payload.game.away_score | Score of the away team in question |
payload.game.home.scoring[1].points | 1st-period score for home team |
payload.game.home.scoring[2].points | 2nd-period score for home team |
payload.game.home.scoring[3].points | 3rd-period score for home team |
payload.game.away.scoring[1].points | 1st-period score for away team |
payload.game.away.scoring[2].points | 2nd-period score for away team |
payload.game.away.scoring[3].points | 3rd-period score for away team |
Dynamic Syntax
Using some basic dynamic syntax, it is possible to loop through the list of players involved in the particular event:
{% for player in payload.event.players %}
Player id: {{ player.id }}
Player Name: {{ player.name }}
Type: {{ player.type }}
{% endfor %}
Available competitions
You can find all available matches by navigating to Data > Audiences > Sport Feed Lists
It is also possible to check the existence of a specific match upto 10 days in advance by using the List API.
In-game updates
When a specific sport_event
update is received, Xtremepush triggers the mapped campaign from above and sends it to any user/device currently on the list with the matching sport_event
ID.
Analytics
Analytics for API campaigns triggered by a sporting feed integration are as per normal API campaign analytics.
Updated over 1 year ago