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

Game Launch Workflow

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 Game

The 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 Tie

If 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:

  1. Choose Sport: Select the sport for the tournament.
  2. Country (Optional): Select the country associated with the competition. Use this to refine your search if needed.
  3. 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 Event

If 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 Events

As your campaign progresses, you must update each manual event after each match ends. To do this:

  1. Click the edit icon on the event.
  2. Change the Status to Ended.
  3. Enter the home and away scores.
  4. Enable the Finished toggle
  5. 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 order

Each 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:00 PM, Round 2 can start at any time after 8:00 PM on that same date.

It is recommended to schedule rounds with minimal time gaps between them.

🚧

Void Rounds

If 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
MessageTrigger Condition
League renamedDisplayed to league members when the league name has been successfully updated.
League username changedDisplayed when a player's username within the league has been successfully updated.
League deletedDisplayed to league members when the league has been deleted by its creator.
League member leftDisplayed a member leaves the league.
League member kickedDisplayed to league members when a member has been removed from the league by an admin.
League Already MemberThe player is already a member of the private league they are attempting to join.
League Create LimitThe player has reached the maximum number of private leagues they are permitted to create. Player can create up to 10 leagues.
League join spamThe player has attempted to join a private league too many times in a short period.
League not foundThe private league the player is attempting to join does not exist or the join code is invalid.
League join failedThe player's attempt to join a private league was unsuccessful.
League not memberThe player is attempting to perform an action in a league they are not a member of.
League update failedAn 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–10 or 11–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:

RoundPrize NameFrom Position - To PositionCustomer Segment
110 Free Spins100 - 150New User, Standard
115 Free Spins50-99New User, Standard
130 Free Spins11-49New User, Standard
150 Free Spins1-10New User, Standard
110€ Bonus100 - 150VIP
120€ Bonus50-99VIP
130€ Bonus11-49VIP
150€ Bonus1-10VIP

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 example 10.
  • 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 example 10.
  • 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 Prizes

To 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 1 in 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-only

Leagues are read-only in the platform. You cannot make changes to a league from the Leagues tab.