Reward Widget
Turn plain coupons into interactive experiences customers actually want to engage with — spin wheels, scratch cards, mystery boxes, and more. Configure everything in Console without writing code, then share a link or embed on your website.
Reward Widget is available on Pro plans and above. White-label and custom domain are Enterprise add-ons.
2 ways to deliver to customers
Embed on a website
Drop a single script tag into <head> — the widget appears as a popup based on your configured trigger.
<script
src="https://cdn.pcampus.co/reward-widget.js"
data-campaign="cmp_xxxxxxxxxx"
data-trigger="exit-intent"
></script>Supported triggers
| Trigger | data-trigger value | When |
|---|---|---|
| Exit intent | exit-intent | Mouse leaves the browser window |
| Time delay | delay:5000 | After N ms on page |
| Scroll depth | scroll:50 | When scrolled N% down the page |
| Button click | button:#my-id | When a specified element is clicked |
| Manual | manual | Call via JS API yourself |
Open manually via JS:
PcampusWidget.open('cmp_xxxxxxxxxx')Link (no website required)
Send via LINE, SMS, Email, or QR code — customers open it on mobile immediately.
https://play.pcampus.co/{widget-type}/{campaign-id}Examples:
https://play.pcampus.co/spin/cmp_xxxxxxxxxx
https://play.pcampus.co/scratch/cmp_xxxxxxxxxxWidget Types
| Widget | Description | Best for |
|---|---|---|
Spin Wheel (spin) | Spin a wheel — configure segments and weights freely | High engagement, multi-tier prizes |
Scratch Card (scratch) | Scratch with a finger on mobile to reveal a coupon code | Mobile-first, familiar UX |
Pick a Card (pick-card) | Choose 1 card from 3–5 face-down options | Feels like a personal choice |
Mystery Box (mystery-box) | Tap to open an animated box revealing the prize | Gen Z, lifestyle brands |
Slot Machine (slot) | Pull a lever, watch reels spin | Premium, high excitement |
Quiz (quiz) | Answer correctly to win — collect preference data simultaneously | Data collection + reward |
Setting up a campaign
Create a campaign in Cockpit
Go to Cockpit → Reward Widget → New Campaign and fill in:
- Campaign name
- Widget type
- Start and end date
Define rewards and weights
Add a reward pool with coupon codes, reward names, and a win probability (%) for each. The total must equal 100%.
Example:
50% off → 5% (50 coupons)
20% off → 30% (500 coupons)
10% off → 35% (unlimited)
No prize → 30%Configure limits
| Option | Description |
|---|---|
| Plays / person / campaign | How many times a single customer can play per campaign |
| Total plays / month | Monthly quota for the org |
| Campaign cap | Maximum total plays for this campaign |
Customize look & feel
Pick colors, upload a logo, and set copy — no CSS required. All done through the Cockpit UI.
Copy embed code or link
Both the script tag and shareable URL are available on the same page.
Limits
| Pro | Enterprise | |
|---|---|---|
| Plays / month | 10,000 | Custom |
| Plays / person / campaign | 1 (adjustable) | Configurable |
| Active campaigns | 5 | Unlimited |
| Widget types | All | All |
| Campaign analytics | ✓ | ✓ |
| White-label | ✗ | add-on |
| Custom domain | ✗ | add-on |
When plays reach the monthly quota, the widget automatically shows "Sorry, this campaign is no longer available." Purchase Extra Plays from Console to extend your quota immediately.
Abuse prevention
Reward Widget has built-in safeguards:
- 1 play per person — uses fingerprint + session to identify users who are not logged in
- Single-use tokens — coupon codes are locked immediately on reveal, preventing replay attacks
- Campaign cap — set a maximum total prize count per campaign
- Rate limiting per IP — prevents automated bot play
- Expiry — campaigns close automatically on the configured end date
White-label (Enterprise add-on)
When white-label is enabled:
- All Pcampus logos and branding are hidden
- The URL changes from
play.pcampus.coto your merchant's custom domain, e.g.spin.yourbrand.com - The widget can fully match the merchant's brand identity
Contact sales@pcampus.co to enable.
Analytics
Every Reward Widget event flows into the PBCP Event Store automatically. View the dashboard in Cockpit:
| Event | Meaning |
|---|---|
widget.viewed | Customer saw the widget |
widget.played | Customer clicked to play |
widget.won | Customer received a prize |
widget.claimed | Customer copied / used the coupon |
widget.expired | Campaign ended before customer played |
Conversion rate = claimed / played