# Spin the Wheel Campaign

This guide walks through a complete example of setting up a **Spin the Wheel** game inside a stream
with scheduled start and end dates — a common setup for time-limited promotions.

## Scenario

You want to run a **7-day promotional campaign** where customers can spin a prize wheel to win
vouchers or discounts. The campaign should:

- Start on a specific date (e.g., June 1, 2026 at 9:00 AM)
- End on a specific date (e.g., June 7, 2026 at 11:59 PM)
- Allow each player only **one spin**
- Award prizes from a configured prize pool

## Step 1: Create the Spin the Wheel Game

1. Go to your organization dashboard
2. Click **Create Game**
3. Select the **Spin the Wheel** template
4. Configure your wheel:
   - Add **3–10 prize slices** (e.g., "10% Off", "Free Shipping", "Try Again")
   - Upload custom images for each slice (optional)
   - Customize the wheel background, pointer, and center decoration
5. Set up prizes:
   - Assign a **voucher**, **item**, or **external link** to each winning slice
   - Use **"No Prize"** for losing slices
6. **Publish** the game

<!-- prettier-ignore -->
:::tip
Spin the Wheel requires at least 3 prize slices and supports up to 10. Every slice must be linked to a prize configuration.
:::
## Step 2: Create a Stream

1. Navigate to **Streams** in the sidebar
2. Click **Create Stream**
3. Fill in the details:
   - **Name**: `Summer Spin Promo`
   - **Description**: `Spin to win exclusive summer discounts`

## Step 3: Schedule the Stream

Set the campaign window so the stream is only playable during your promotion period:

1. Open the stream settings
2. Set the **Start date** to `June 1, 2026 — 9:00 AM`
3. Set the **End date** to `June 7, 2026 — 11:59 PM`
4. Select your **timezone** (e.g., `Asia/Tokyo`)

Before June 1, players who visit the stream link will see a **countdown timer**. After June 7, they
will see a **campaign ended** message.

## Step 4: Add the Game to the Stream

1. Open your stream
2. Click **Add Games**
3. Select the **Spin the Wheel** game you created in Step 1
4. Set **Max plays per user** to `1` (one spin per player)

## Step 5: Configure Sharing

1. Copy the stream URL:
   ```
   https://app.dailyplay.ai/stream/org-slug/summer-spin-promo
   ```
2. Optionally:
   - **Password-protect** the stream for VIP access
   - **Restrict domains** if embedding on your website
   - **Require session tokens** if integrating with your app's authentication

## Step 6: Connect Webhooks (Optional)

To track results in your CRM or email platform:

1. Go to **Connections** and create a webhook connection
2. Attach the connection to your stream
3. Events like `game.completed` and `prize.won` will be sent to your endpoint

Example webhook payload for a prize win:

```json
{
  "event": "prize.won",
  "stream_id": "abc-123",
  "game_id": "spin-wheel-456",
  "player": {
    "id": "player-789",
    "email": "player@example.com"
  },
  "prize": {
    "type": "voucher",
    "name": "10% Off Summer Sale",
    "code": "SUMMER10"
  },
  "timestamp": "2026-06-03T14:22:00Z"
}
```

## Step 7: Go Live

1. Set the stream status to **Scheduled** (or **Active** if already past the start date)
2. Share the stream URL through your marketing channels:
   - Email newsletters
   - Social media posts
   - Website banners
   - QR codes on print materials

## Timeline Summary

| Date             | What Happens                                 |
| ---------------- | -------------------------------------------- |
| Before June 1    | Players see a countdown timer                |
| June 1, 9:00 AM  | Stream goes live, players can spin the wheel |
| June 1–7         | Campaign is active, prizes are awarded       |
| June 7, 11:59 PM | Stream closes, no more spins allowed         |
| After June 7     | Players see a "campaign ended" message       |

## Tips

- **Test before launch** — Use draft mode to test the full player experience before scheduling
- **Monitor in real-time** — Check stream analytics for play counts and completion rates during the
  campaign
- **Set prize limits** — If you have a limited number of vouchers, configure prize quantity limits
  to avoid over-distribution
- **Use UTM parameters** — Add `utm_source`, `utm_medium`, and `utm_campaign` to track which
  channels drive the most plays