A gamified campaign only works if it knows who is playing. Without the player's identity, Minigames cannot apply prize eligibility rules, enforce play limits, or send gameplay results back to Optimove for follow-up.
Minigames (formerly Adact) campaigns are delivered through your existing Optimove channels. Web Pop-Up puts the game in front of players while they are on your site, and Email reaches them wherever they are. Both channels use the same personalization tag to identify the player, and both can feed the same real-time follow-up flow.
This guide will walk you through how to deliver a Minigames campaign through Web Pop-Up and Email, from adding the customer ID to your campaign URL to automatically emailing a player the prize they just won.
cid is the only supported URL parameter for Minigames campaign links. No other customer attributes can be passed through the URL.Step-by-Step: How to Deliver a Minigames Campaign
Step 1: Add the Customer ID to Your Campaign URL
Every Minigames campaign URL needs the player's customer ID appended as the cid parameter. Optimove replaces the personalization tag with the individual customer's ID at send time.
- Copy the campaign publishing URL from your Minigames campaign.
- Append
?cid=to the end of the URL. - Add your account's customer ID personalization tag after the equals sign.
https://yoursubdomain.adact.me/campaignSlug?cid=[%CUSTOMER_ID%]
The tag name depends on how the customer identifier is defined in your Optimove account. CUSTOMER_ID is the most common, but yours may be named differently. If your identifier is called PLAYER_ID, for example, the URL looks like this:
https://yoursubdomain.adact.me/campaignSlug?cid=[%PLAYER_ID%]
CUSTOMER_ID is the most common, but yours may be named differently — for example [%PLAYER_ID%]. Custom identifiers are not visible in Data Studio, so check with your Customer Success Manager (CSM) if you are unsure which tag to use. cid value to the URL yourself before the link goes out.Without this tag, Minigames cannot identify the player. Gameplay events will not flow back to Optimove, and prize restrictions and play limits will not apply.
Step 2: Deliver the Game in a Web Pop-Up
The Web Pop-Up channel embeds the game inside an Optimove-managed pop-up on your website, so the player never leaves the page.
Use this channel when:
- You want to engage players on-site, in real time
- The moment is worth interrupting — just after login, after a deposit, or on a specific page
- You want to fire the game from a page visit, a button click, or a player entering a Target Group
- Navigate to Templates → Webpage Pop-Up → Create New → New Template.
- Select the HTML Editor.
- Paste the pop-up script below, replacing the
srcURL with your campaign URL from Step 1. - Save the template.
- In Mission Control, create or edit a campaign.
- Set your Target Group and trigger — for example, a page visit or an event-based trigger.
- Assign the pop-up template and launch.
<!DOCTYPE html>
<html style="overflow-y: hidden;">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body style="margin: 0 auto !important; width: 100%; max-width: 600px;">
<iframe
style="width: 450px; height: 600px; display: flex;"
src="https://yoursubdomain.adact.me/campaignSlug?cid=[%CUSTOMER_ID%]"
frameborder="0"
></iframe>
</body>
</html>Step 3: Deliver the Game by Email
Email (formerly OptiMail) sends the campaign link straight to the player's inbox. The link opens the game in a new tab or page.
Use this channel when:
- You want to reach players off-site, such as a re-engagement push to lapsed players
- The campaign runs to a schedule, such as a weekly game invite
- You are following up after a pop-up interaction
- Navigate to Templates → Email → New Template.
- Choose the BeeFree drag-and-drop editor or the HTML editor.
- Add a CTA button or link pointing to your campaign URL from Step 1.
- Optionally personalize the email body with tags such as
[%FIRST_NAME%]. - Save the template.
- In Mission Control, create a campaign and select Email as the channel.
- Set your Target Group, assign the template, set the schedule or trigger, and launch.
Step 4: Align Prize Names Across Minigames and Optimove
To follow up automatically after a player wins, Optimove needs to recognize which prize they won. It does this by matching the prize name in the gameplay event against the name you configured in Optimove — so the two must be identical.
- In Minigames, note the exact title of each prize in your campaign.
- In Optimove, create a matching promotion or prize with the identical name.
- Repeat for every prize variant in the campaign, including any "no prize" outcome.
Step 5: Set Up the Follow-Up Real-Time Trigger
Real-Time Triggers (RTT) listen for the gameplay event and fire the matching email within seconds of the player finishing the game.
- Confirm the
ootb_adact_game_finishedevent exists in your Optimove account. Your CSM configures this during onboarding — if it is not there, contact them before continuing. - Create one Email template per prize variant, each referencing the specific prize the player won.
- Navigate to Real-Time Triggers.
- Create a trigger on the
ootb_adact_game_finishedevent. - Set the condition
prizetitle = "10 Free Spins", using the exact prize name from Minigames. - Assign the matching Email template.
- Repeat for each prize variant, then activate all triggers.
How the Combined Flow Works
Once the pieces above are in place, the pop-up and the email work together without any manual step in between. Here is the same setup seen end to end, using a prize called "10 Free Spins" as the example.
What you set up in advance:
- In Minigames: a campaign with a prize titled "10 Free Spins"
- In Optimove: a promotion with the identical title, and an active Real-Time Trigger on
prizetitle = "10 Free Spins"
What happens at runtime:
- A player visits your site.
- Optimove fires the Web Pop-Up, and the player plays the game.
- The player wins "10 Free Spins".
- Minigames sends the
ootb_adact_game_finishedevent to Optimove, carryingprizetitle = "10 Free Spins"andiswinner = true. - The Real-Time Trigger matches on
prizetitle. - Optimove sends the matching email — "Your 10 Free Spins are here!" — within seconds of the game finishing.
How Gameplay Data Flows Back to Optimove
When a player finishes a game, Minigames sends the ootb_adact_game_finished event to Optimove. The event carries the attributes below, which you can use as trigger conditions, for segmentation, and in reporting.
| Attribute | Description | Game Type |
|---|---|---|
score | The player's score for this session | All games |
highestScore | The player's best score across all sessions | All games |
gameType | The type of game played, such as WHEEL_OF_FORTUNE or TRIVIA | All games |
gameDurationInSeconds | How long the gameplay lasted | All games |
gameplayCount | Cumulative number of times this player has played | All games |
iswinner | Whether the player won a prize | All games |
prizetitle | The title of the prize awarded | All games |
prizedescription | The description of the prize awarded | All games |
prizecode | The internal prize code | All games |
unexpectedfinish | Whether the game ended unexpectedly, for example if the player closed it | All games |
campaignId | The ID of the Minigames campaign | All games |
questions | The player's answers to the quiz questions | Trivia only |
email | The email address of the player who took part in the session | All games |
eventEmail | The email address included in this event payload | All games |
tag | A tag categorizing the session, such as event type, player segment, or game variant | All games |
For a deeper walkthrough of trigger setup against gameplay data, see How to Trigger Optimove Campaigns with Adact Gameplay Data.
Tips for Better Results
- Test with a real customer ID before going live, and confirm the gameplay event arrives in Optimove
- Give campaigns and triggers descriptive names — reporting is much easier to read later
- Avoid sending a player both a pop-up and an email for the same campaign at the same time, unless that overlap is deliberate
- Build a template for every prize outcome, including the losing outcome, so no player falls through the gap