Predictor
An overview of the Predictor game and the game campaign setup process.
Game Overview
Predictor is a sports prediction game where players predict the scoreline of real-world sporting events to earn points. For example, in a FIFA World Cup Predictor, players can predict the exact score of each match, such as England 2–1 France, across multiple rounds of fixtures.
The entire game is built and managed within the Xtremepush platform and can be embedded directly on your website.
The following images show an example of the Predictor game for a FIFA World Cup tournament. The game is organised into three tabs: Play, Leagues, and Prizes. This layout can be customised as per your requirement.
The images below show the Play tab, where players select their predicted scores for each match. Players can see how many predictions they have submitted and how many are remaining. All predictions must be submitted before the round's closing time.

Making Predictions in the Game
As matches kick off, players can track their locked picks and monitor upcoming fixtures. Once all matches are complete, the results are displayed, showing each player's correct and incorrect predictions and points earned.

Locked Picks and Results
Based on the accuracy of their predictions, players earn points and can win prizes on a per-round or full-campaign basis. In the Prizes tab, players can view the available prizes for each round and a breakdown of how points are awarded, for example, +10 points for an exact score prediction and +5 points for a correct result.
In the Leagues tab, players can view the global leaderboard and compete in private leagues with other players. Players can see their global rank, total points, and how they compare against other players in any leagues they have joined or created. See Private Leagues below for more information.

Global leaderboard (left) and private leagues (right)
Prerequisites of Game Setup
- Send a Figma file of your designs to your account manager at Xtremepush. We will use this to create an asset pack for you to upload, which includes all the required images. This asset pack forms the front-end of your game. To get you started, we can also provide a standard Figma file of the game design.
- User Segments: To target your game to specific players, you'll need pre-configured segments. These must be created on the Xtremepush platform before you start. For more information, see Before You Create a Game Campaign.
Game Configuration
Campaign Setup
Create the game campaign and configure scoring settings.
Event and Round Configuration
Import/Configure match events and configure rounds if required.
Customise Design
Upload assets and update texts.
Configure Prizes
Configure Prizes and their associated user segments.
Launch & Monitor
Embed your game and view player analytics.
Create Game Campaign
Campaign Configuration
The first step in creating your game is creating a game campaign. A campaign acts as the container for your game, allowing you to define crucial aspects like target audiences, campaign duration and more. It also contains your game’s design, text, and prize configurations.
To create a campaign, in the Campaigns tab, click Create Campaign and provide the following:
- Name: Give your campaign a unique and descriptive name. This name will be included in your game’s custom URL which you embed in your website.
- Time zone: Select the timezone of your target audience.
- Ends after last round: Enable this toggle if you want to automatically end the game a specific number of days after the last round.
- Starts At: & Ends At/Days After Last Round: Define the period during which your game campaign is active.
-
Starts At: When the game becomes accessible to players.
Before this point any player who opens the game will see a Campaign not started message. You can change this text in the Texts tab.
-
Ends At / Days After Last Round: When the game campaign closes entirely.
Players visiting after this point will see a Campaign ended message. You can change this text in the Texts tab.
-
- Prizes per Round: Enable this toggle if you want prizes to be awarded at the end of each round. If disabled, prizes are awarded at the end of the game campaign, even if rounds are configured.
- Private Leagues: Enable this toggle to allow players to create and join private leagues. See Private Leagues below for more information.
- Default segment id: Set a default segment to ensure any user who doesn’t match your pre-defined segments can still play the game and receive a prize.
- Exclude segment id: If required, select a segment that you want to exclude from participating in the game such as bonus abusers. Users in this segment won't be able to access the game.
Configure Scoring Settings
Scoring Settings
After configuring your campaign, specify how players earn points in your game in the Scoring Settings tab. Under Points Configuration, specify the following:
- Scoreline points: Points awarded for predicting the exact scoreline of a match. For example, correctly predicting a 2–1 result.
- Result Points: Points awarded for predicting the correct match result: win, draw, or loss. For example, a player predicts a 2–1 result but the actual score is 3–2. The predicted winner is still correct, so the player earns Result Points even though the scoreline prediction was incorrect.
- Enable Team Points: Enable this toggle to specify the points for correctly predicting one team's score, even if the full scoreline prediction is incorrect. For example, a player predicts a 2-1 win for Team A, but the score is 2-2. In this scenario, the player receives Team Points since they correctly predicted that Team A would score 2 goals.
Configure Leaderboard
Prizes in your game can be awarded based on leaderboard positions or total points accumulated. If you want to enable leaderboards in your game and configure a leaderboard based prize configuration, do the following:
- Leaderboard: Enable this toggle to add a leaderboard to your game. When enabled, your game becomes leaderboard-based, meaning prizes are awarded according to a player's final leaderboard position rather than their total points. The displays the top 50 players, along with each player's own position.
- Enable Tiebreaker: Available when the Leaderboard toggle is enabled. When players finish on equal points, the tiebreaker is used to rank them on the leaderboard. This makes it easier to distribute prizes based on their final position. Players submit their tiebreaker answer when they make their picks at the start of a round or campaign.
- Tiebreaker Question: The question displayed to all players when they submit their picks, for example, How many goals will be scored by all teams in total?
- Tiebreaker Unit:The unit that applies to the answer, such as goals. This text is also displayed to players.
- Tiebreaker Answer: The correct numeric answer to the tiebreaker question.
Tiebreakers for Round-based GameThe tiebreaker question remains the same throughout the campaign. However, if you're using rounds, you can return to the Scoring Settingstab and update both the tiebreaker question and answer before each new round begins. This allows you to set a different tiebreaker for each round.
It is recommended to update the tiebreaker after the previous round's Closes At date has passed and results have been fully processed. You can confirm this by checking that points have been credited to players in the Games tab.
Ensure the tiebreaker is updated before the next round's Starts At date, so that players see the new question when they go to make their picks.
Tiebreaker TieIf two players finish on equal points and submit the same tiebreaker answer, the player who made their predictions earlier is ranked higher.
Configure Events and Rounds
Events in Predictor
Events are the individual sporting matches in your game that players predict the scores for. You can import events directly from the Xtremepush data feed, create them manually, or use a combination of both.
You can control which events are visible to players at any time using the visibility toggle in the Events tab. Players can only make predictions for visible events.
When these events appear in your game is determined by the round dates you configure later. Any visible event whose start time falls within a round's duration will appear in that round. See Configure Rounds below for more information.
Differences in Imported and Manual Events
- For imported events, scores and match status are updated automatically from the Xtremepush data feed. For manual events, you must update the status and scores yourself after each match ends.
- Manual events offer more flexibility, allowing you to create events for competitions not available in the Xtremepush feed.
The Events tab displays all the events in your game. The image below shows an example of imported events from the English Premier League:
The following information is displayed for each event:
- Home and Away: The two participants in the match.
- Start time: The scheduled start time of the event.
- Status: The current status of the event:
- Pending: The event has not yet started.
- In Progress: The event is currently underway.
- Ended: The event has finished.
- Void: The event has been voided and points will not be awarded for that event. To void an event, click the edit icon and enable the Void toggle. Use this toggle for cancelled or abandoned matches.
- Visible: Whether the event is visible to players. Use the Toggle Visibility option in the Tools column to control this. This allows you to control exactly which events your players can see and predict on at any given time.
- Source: Indicates whether the event was imported from the feed (Feed) or created manually (Manual).
- Winner: Displays the match winner once the event has ended. For manual events, you need to set the winner manually. See Updating Manually created Events below for more information.
Import Events
To import events from the Xtremepush data feed, go to the Events tab and click Import Events, and provide the following:
- Choose Sport: Select the sport for the tournament.
- Country (Optional): Select the country associated with the competition. Use this to refine your search if needed.
- Competition: Select the competition. For example, World Cup.
After the import, all events for the selected competition are listed in the Events tab. Use the Toggle Visibility option in the Tools column to control which events are visible to your players.
After the import, all participating teams from the imported events are added to the Participants tab. To edit a participant's name, short name or logo, click the edit icon on the relevant record in the Participants tab.
Create Events Manually
Use manual events if you need more flexibility or want to use events that are not available in the Xtremepush feed. Unlike imported events, you must update the status and scores for each manual event yourself as matches progress.
Before you Create a Manual EventIf the participants for your event do not already exist in the Xtremepush feed and haven't been imported, you may want to create them in advance in the Participants tab. You can also create participants directly within the event creation flow, as described below.
In the Events tab, click Create Event and provide the following:
- Start time: The start time of the event. This must fall within the duration of the relevant round and campaign.
- Participants: Specify the home and away participants by either:
- Select from existing participants: Using the Home Participant and Away Participantdrop-downs, select the two participants. If you have previously imported events from the feed, those participants will be available to select here.
- Create New Participants: Enable this toggle to create new participants directly within the event creation flow. Enter the name, short name, and logo for both the home and away participant. Once created, the event appears in the Events tab as a Manual event. Any newly created participants are recorded in the Participants tab.
Updating Manually created EventsAs your campaign progresses, you must update each manual event after each match ends. To do this:
- Click the edit icon on the event.
- Change the Status to Ended.
- Enter the home and away scores.
- Enable the Finished toggle
- Click Save.
Configure Rounds
A round is a defined time period within your campaign during which a set of events is available for players to predict. For example, in a World Cup campaign, you might configure a round for each week of the group stage.
Events are automatically assigned to rounds based on their start time. Any event whose start time falls within a round's duration will appear in that round. For example, if Round 1 runs from 1 November to 7 November, all visible events with a start time within that date range will appear in Round 1.
To create your rounds, in the rounds, tab, click Create round and provide the following:
-
Name: The display name of the round shown to players in the game.
-
Short Name: A shortened version of the round name, also displayed to players.
-
Starts At: When the round becomes accessible to players and they can begin making their predictions.
-
Closes At: The deadline for players to submit their predictions. After this point:
- New players cannot participate.
- Existing players can access the game to view results and track the progress of their predictions.
The Closes At date of a round must not be later than the start time of the earliest visible event in that round. For example, if the earliest visible event in a round starts at
2026-05-09 11:30:00,the round's Closes At must be set before this time.This ensures players cannot submit predictions after the first match in that round has already begun.
-
Ends At: When the round closes entirely. At this point, final scores are calculated and prizes are assigned to players.
Once created, the round appears in the Rounds tab. During the game, when round processing is complete and points have been credited to players, the following confirmation is displayed:

Round Credited Confirmation
Rounds must follow a chronological orderEach round must follow a chronological order. A new round must begin after the previous round concludes. For example, if Round 1 ends on 21 November at
8:00PM, Round 2 can start at any time after8:00PM on that same date.It is recommended to schedule rounds with minimal time gaps between them.
Void RoundsIf a round is no longer required, you can void it by enabling the Void Round toggle. It is recommended to void rounds rather than deleting them, as deleting a round removes it from the game's logs entirely.
The impact of voiding a round depends on when it is done:
- Before round processing: The round is no longer visible to players, even if they have already submitted their predictions.
- After round processing: Voiding the round has no effect and players retain the points they already earned in that round.
Game Design
Upload Assets
In the Assets tab, you upload the asset pack which forms the front end of your game.
Upload the asset pack provided to you by Xtremepush. This file contains the game's images and a .pkg layout file that sets the overall game appearance. If required, you can replace any of the image assets provided to you. For more information on replacing assets, Replace Assets.
The assets section is divided into two tabs:
- Default: This tab contains the main game assets that form your game's front-end. You must upload your asset pack in this section.
- Participant: When you import events, the logos of the team/participants for the selected events is populated in this tab. When you replace these team logo assets, ensure that the file name of each uploaded asset matches the file name of the existing logo.
Update Texts
The Texts tab is divided into three sections:
- Frontend: The fields in the Frontend section contain the text displayed on the game's UI. The available fields vary depending on the asset pack you have uploaded.
- Frontend API exceptions: The Exceptions section lists the scenario-specific messages displayed to your players, such as Please Log in and Player not Eligible. The table below details the specific conditions that trigger each message.
Message | Trigger Condition |
|---|---|
Invalid Game | A general error occurred. This issue can arise from various reasons. Contact Xtremepush support to resolve the issue. |
Not available | The player attempts to access the game campaign outside of its active time slot. OR The player attempts to access the game too many times in a short period (potential hack attempt) OR The player attempts to access a question that’s not live anymore or is invalid |
Campaign Misconfiguration | Campaign has no rounds OR there are no visible fixtures in current round. |
Rounds Closed | The player attempts to access a round after its Closes At date has passed. |
Try later | A temporary error occurred. The player should try accessing the game again shortly. |
League auth failed | The player could not be authenticated when attempting to access a private league. |
League admin required | The action the player is attempting requires admin permissions within the league. |
League creator cannot leave | The player attempting to leave the league is its creator. A league creator cannot leave their own league. |
League creator cannot kick | The player attempting to be removed from the league is its creator and cannot be kicked. |
Invalid field | A form field contains an invalid or unexpected value. |
Please log in | Player trying to access the game is not logged in to their account or JWT token has expired |
Player not eligible | The player is not in the specified user segment for the game OR The player is in the game’s excluded user segment |
Prize not found | The player does not belong to a user segment eligible to win prizes. |
Campaign not started | The campaign’s scheduled start date is in the future |
Campaign ended | The campaign’s scheduled end date has passed |
Missing Parameters | Required parameters are missing from the game URL OR The player's authentication token (JWT) is missing or invalid. |
- Frontend API messages : This section lists the confirmation messages displayed to players following successful league actions, such as when a league is renamed or a member leave
| Message | Trigger Condition |
|---|---|
| League renamed | Displayed to league members when the league name has been successfully updated. |
| League username changed | Displayed when a player's username within the league has been successfully updated. |
| League deleted | Displayed to league members when the league has been deleted by its creator. |
| League member left | Displayed a member leaves the league. |
| League member kicked | Displayed to league members when a member has been removed from the league by an admin. |
| League Already Member | The player is already a member of the private league they are attempting to join. |
| League Create Limit | The player has reached the maximum number of private leagues they are permitted to create. Player can create up to 10 leagues. |
| League join spam | The player has attempted to join a private league too many times in a short period. |
| League not found | The private league the player is attempting to join does not exist or the join code is invalid. |
| League join failed | The player's attempt to join a private league was unsuccessful. |
| League not member | The player is attempting to perform an action in a league they are not a member of. |
| League update failed | An error occurred when attempting to update the league's details. |
Configure Prizes
Prizes in Predictor
Prizes in Predictor are awarded based on either a player's leaderboard position or their total points, depending on your scoring configuration.
- Leaderboard-based game: Prizes are assigned according to a player's final leaderboard position. You define the position range that qualifies for each prize using the From Position and To Position fields, for example, positions
1–10or11–49. - Points-based game: Prizes are assigned based on the total points a player accumulates. You define the points range a player must fall within to receive a prize using the From Pointsand To Points fields, for example, 80–100 points.
Prizes can vary across user segments, so different player groups can receive different prizes for the same leaderboard position or points total. Players can only see prizes that are applicable to their own segment.
If you have configured rounds and enabled Prizes per Round toggle in your campaign setup, you must also specify which round each prize applies to. You will need to create a separate set of prizes for each round.
The table below shows an example prize configuration for Round 1 of a leaderboard-based game:
| Round | Prize Name | From Position - To Position | Customer Segment |
|---|---|---|---|
| 1 | 10 Free Spins | 100 - 150 | New User, Standard |
| 1 | 15 Free Spins | 50-99 | New User, Standard |
| 1 | 30 Free Spins | 11-49 | New User, Standard |
| 1 | 50 Free Spins | 1-10 | New User, Standard |
| 1 | 10€ Bonus | 100 - 150 | VIP |
| 1 | 20€ Bonus | 50-99 | VIP |
| 1 | 30€ Bonus | 11-49 | VIP |
| 1 | 50€ Bonus | 1-10 | VIP |
In this example, eight prizes are configured for Round 1, four for the New User and Standard segments, and four for the VIP segment.
Create a Prize
In the Prizes tab, click Create Prize and provide the following:
- Prize name: The prize name shown to players in the game UI, for example, 10 Free Spins.
- Prize Value (optional): The monetary or descriptive value of the prize, for example, €10. Use this when the prize name alone doesn't convey the value. For example, if the prize name is Prize 1, the prize value would be €10
- Description (Optional): A short description of the prize shown to players.
The image below shows an example of how the prize name, value, and description are displayed to players in the game UI:
In this example, Prize 1 is the prize name, Grand Prize is the description, and 500,000 is the prize value.
- Customer Segment: Select the user segments this prize applies to.
- Rounds: The round this prize applies to. This field is only displayed if you have enabled the Prizes per Round toggle in your campaign setup.
- From Position and To Position (Leaderboard-based only): The leaderboard position range that qualifies for this prize. Enter the lowest position number in the From Position field, for example,
1. Enter the highest position number under To Position, for example10. - From Points and To Points: (Points-based only) The points range a player must fall within to receive this prize. Enter the lowest value in the From Position field, for example,
1. Enter the highest value under To Position, for example10. - Promotion: If your bonus engine is integrated with Xtremepush, select the promotion to issue to a player when they win this prize.
Single Position or Points Value PrizesTo award a prize for a single leaderboard position or points value, enter the same number in both the From and To fields. For example, to award a prize exclusively for first place, enter
1in both From Position and To Position.
Launch and Monitor Game
Launch Your Game
To launch your game, you must embed it on your website. For added security, you can also use a JWT token to ensure that only authenticated users are able to play.
For more information, see the following pages:
Monitor Game
The Xtremepush platform automatically tracks the following engagement data for the Predictor game, which you can view in the Games tab of your campaign:
- Customer ID: The unique identifier of the player.
- Prize: The name of the prize won by the player, if any. If the player hasn't won a prize, this column is empty
- Points: The total points earned by the player for that round, or game campaign if you're not using rounds.
- Round: The round the player participated in.
- Total Predictions: The total number of predictions submitted. Because players must submit all predictions to participate, this value is the same for all players in a round or game. Players who have not submitted any predictions will show
0. - Created At: The timestamp for when the player entered the round, or game campaign if you're not using rounds.
- Processed At: The timestamp for when the round/game results were processed and prizes assigned. This value is the same for all players within the same round.
- Tools: Click the view icon to see detailed activity for a specific player, which includes:
- Each individual prediction made by the player
- The number of correct predictions the player
- The time when the game or round was processed (Settled At)
Private Leagues
If you enabled the Private Leagues toggle during campaign setup, your players can create and join their own private leagues within the game. Private leagues allow players to compete and rank themselves separately from the game's leaderboard.
The video below shows a player creating a new private league and copying the invite code to share with others:
When a player creates a league, a unique join code is generated. They can share this code with others to invite them to their league. Each player can create a maximum of 10 leagues.
To join a league, players enter the join code in the field shown below and click Join League.
Only authenticated players in the game can join a private league.
You can view all leagues created within your campaign in the Leagues tab. For each league, you can see the total number of members and the player who created it. Click the eye icon to view a league's details, including the points for each player in that league and the join code. The join code can be used for admin purposes, for example, to provide a specific player with access to a league if needed.
Leagues are Read-onlyLeagues are read-only in the platform. You cannot make changes to a league from the Leagues tab.
Updated about 15 hours ago