Platform
Reward Widget (later)
index

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.

⚠️

Not a SKU yet — Reward Widget is direction. Do not list it in a sell catalog or tie it to a Pro / Enterprise plan.


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

Triggerdata-trigger valueWhen
Exit intentexit-intentMouse leaves the browser window
Time delaydelay:5000After N ms on page
Scroll depthscroll:50When scrolled N% down the page
Button clickbutton:#my-idWhen a specified element is clicked
ManualmanualCall 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_xxxxxxxxxx

Widget Types

WidgetDescriptionBest for
Spin Wheel (spin)Spin a wheel — configure segments and weights freelyHigh engagement, multi-tier prizes
Scratch Card (scratch)Scratch with a finger on mobile to reveal a coupon codeMobile-first, familiar UX
Pick a Card (pick-card)Choose 1 card from 3–5 face-down optionsFeels like a personal choice
Mystery Box (mystery-box)Tap to open an animated box revealing the prizeGen Z, lifestyle brands
Slot Machine (slot)Pull a lever, watch reels spinPremium, high excitement
Quiz (quiz)Answer correctly to win — collect preference data simultaneouslyData 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

OptionDescription
Plays / person / campaignHow many times a single customer can play per campaign
Total plays / monthMonthly quota for the org
Campaign capMaximum 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

ProEnterprise
Plays / month10,000Custom
Plays / person / campaign1 (adjustable)Configurable
Active campaigns5Unlimited
Widget typesAllAll
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.co to 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:

EventMeaning
widget.viewedCustomer saw the widget
widget.playedCustomer clicked to play
widget.wonCustomer received a prize
widget.claimedCustomer copied / used the coupon
widget.expiredCampaign ended before customer played

Conversion rate = claimed / played