Real-time sport updates

Register customers' interest in specific matches and then speak to them as events happen in those matches

Real-time Sport Updates from Xtremepush allows you to send triggered campaigns based on real-time match updates.

🚧

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 Radar sport_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 3 steps, to allow

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. Pre-select customer identity

After enabling the feed 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 user when setting up a user list.

To offer the Real-time Sport Updates functionality to logged-in users, your User ID can to 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.

3. 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 half time.

For more information on building the campaigns, see the section below.

To make the selection, navigate to Settings > Integrations > Marketplace > Configured integrations > Real-time Sports Updates > Overview. Then select one of the available events and then choose which campaign to trigger when that event is fired.

In this example you can map the Score change event to a specific campaign.In this example you can map the Score change event to a specific campaign.

In this example you can map the Score change event to a specific campaign.

Register 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 }}

All available dynamic values

For soccer matches the full list of available field are as follows:

Available dynamic values

Returned information

payload.event.id

payload.event.match_clock

Elapsed time in minutes and seconds: e.g. 9:23, 45:51

payload.event.match_time

Minute of the match: e.g. 10', 45+1

payload.event.home_score

Current home score

payload.event.away_score

Current away score

payload.sport_event_status.aggregate_away_score

payload.sport_event_status.aggregate_home_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

players name involved with triggering event

payload.event.description

One of possible values:
goal, penalty, red_card, call_stands, call_overturned, no_goal, no_penalty, no_red_card

payload.event.method

One of possible values:
penalty, own_goal, header, shot, free_kick

payload.event.type

One of 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

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

As of October 2021 updates are available for most European football leagues.

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.


Did this page help you?