> For the complete documentation index, see [llms.txt](https://user.netmera.com/netmera-user-guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://user.netmera.com/netmera-user-guide/omnichannel-engagement/widgets/build-a-widget/spin-to-win-campaigns.md).

# Spin to Win campaigns

Spin to Win is a widget that awards randomized rewards. Use it for gamified promotions, lead capture, and loyalty campaigns.

Users spin a wheel to receive a coupon code, deep link, or custom message. Configure each reward's appearance, availability, and probability.

<figure><img src="https://1642824329-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX6uilbEAw42gqsudlclY%2Fuploads%2FLMT6Wge8ixE8hEkn8wFr%2FGroup%2091587.png?alt=media&amp;token=f271e375-8865-448f-a6de-8fc3f080bc14" alt="" width="375"><figcaption></figcaption></figure>

### Before you start

Spin to Win works with **Mobile Widgets** and **Web Widgets**. The wheel configuration in this guide applies to both channels.

Create and publish the widget using the standard workflow:

* [Publish a mobile widget](/netmera-user-guide/omnichannel-engagement/widgets/target-and-publish/publish-a-mobile-widget.md)
* [Publish a web widget](/netmera-user-guide/omnichannel-engagement/widgets/target-and-publish/publish-a-web-widget.md)
* [Configure widget actions and validation](/netmera-user-guide/omnichannel-engagement/widgets/build-a-widget/configure-widget-actions-and-validation.md)

Use [Coupon Code Lists](/netmera-user-guide/panel-settings/settings/messaging-and-content/coupon-code-lists.md) to prepare coupon rewards.

### How it works

{% stepper %}
{% step %}

#### Design the wheel

Set the wheel's slices, colors, center area, and spin button.<br>
{% endstep %}

{% step %}

#### Configure rewards

Set each slice's result, coupon list, destination, and probability.
{% endstep %}

{% step %}

#### Deliver coupon codes

Optionally send assigned codes through transactional push or SMS.
{% endstep %}

{% step %}

#### Publish and measure

Target and publish the widget. Then track interactions and reward distribution.
{% endstep %}
{% endstepper %}

### Configure wheel appearance

Use clear button text and distinct slice colors. Keep the design consistent with your campaign.

You can configure:

* **Spin Button Text** — the label that starts the spin.
* **Button Background Color** — the button's visual style.
* **Center Area** — a logo, image, or color at the wheel's center.
* **Pin Color** — the marker that indicates the selected reward.

<figure><img src="https://1642824329-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX6uilbEAw42gqsudlclY%2Fuploads%2FWn100p7Sn3cbYr2PDfeb%2FScreenshot%202025-11-26%20at%2009.14.52.png?alt=media&amp;token=7c4bd6b5-587d-46c4-9052-2f8c5476c44e" alt=""><figcaption></figcaption></figure>

### Configure reward slices and odds

Each slice represents one possible outcome. Add at least one slice.

For each slice, configure:

* **Slice Name** — shown on the wheel.
* **Win Result** — shown after the spin completes.
* **Coupon Code List** — optionally assigns a unique code from a list.
* **Link** — optionally opens a reward-specific destination.
* **Weight** — controls how often Netmera selects the slice.

Use a lower weight for high-value rewards. Use equal weights for an even distribution.

For example, assign a **5%** weight to `50% Discount`, **30%** to `Free Shipping`, and **65%** to `Thank You`.

{% hint style="info" %}
If you do not set weights, Netmera distributes outcomes evenly across slices.
{% endhint %}

<figure><img src="https://1642824329-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX6uilbEAw42gqsudlclY%2Fuploads%2FTih4d8nUG5bKms9p7ewy%2FScreenshot%202025-03-11%20at%2016.56.46.png?alt=media&amp;token=326efa7b-95f6-41ad-8707-bceb81aad871" alt=""><figcaption></figcaption></figure>

### Configure the success screen

After the spin completes, users see a success modal. Make the reward and redemption path clear.

Configure:

* **Modal Header** — for example, `Congratulations!`
* **Win Result Text** — for example, `Your 10% discount code is ready.`
* **Font Sizes** and **Modal Background** — to reinforce hierarchy and branding.
* **Copy-to-Clipboard Text** — to help users save their code.

<figure><img src="https://1642824329-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX6uilbEAw42gqsudlclY%2Fuploads%2FIlObf6fq2pTyQcdsgMjC%2FScreenshot%202025-11-26%20at%2009.21.27.png?alt=media&amp;token=dded9e87-674d-4123-8143-9d5e3e686fe4" alt=""><figcaption></figcaption></figure>

### Configure redirects

Choose whether a reward sends users to a specific destination or every outcome opens one destination.

#### Per-slice redirects

Add a link to each slice when rewards need different destinations. For example, link a product reward to its product page.

<figure><img src="https://1642824329-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX6uilbEAw42gqsudlclY%2Fuploads%2F7RmY0Y6zgvNuYu6pvoVW%2FScreenshot%202025-03-11%20at%2017.31.49.png?alt=media&amp;token=a4fb7dc8-3efc-40e1-a86a-a15da01acb8d" alt=""><figcaption></figcaption></figure>

#### One redirect for every outcome

Use one redirect for a shared landing page or coupon redemption flow. Every reward opens the same destination.

<figure><img src="https://1642824329-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX6uilbEAw42gqsudlclY%2Fuploads%2F4miilA9kxo1VRCDYrOhO%2FScreenshot%202025-03-11%20at%2017.33.04.png?alt=media&amp;token=587df9b0-afe0-4627-9376-c64913ab40b5" alt=""><figcaption></figcaption></figure>

#### Preview options

<div align="left"><figure><img src="https://1642824329-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX6uilbEAw42gqsudlclY%2Fuploads%2FatOE7UrhuawzMOgp5vt6%2FScreenshot%202025-03-11%20at%2017.34.30.png?alt=media&amp;token=30f747db-f43d-4697-950c-93fd260cffd3" alt="" width="348"><figcaption><p>Button</p></figcaption></figure> <figure><img src="https://1642824329-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX6uilbEAw42gqsudlclY%2Fuploads%2F2u2TiKFe5UJd1MoX8Pwu%2FScreenshot%202025-03-11%20at%2017.33.42.png?alt=media&amp;token=33c3dfb4-0a16-467d-b201-c375d086026c" alt="" width="345"><figcaption><p>Hyperlink</p></figcaption></figure></div>

### Deliver coupon codes by push or SMS

Send an assigned coupon code through a transactional push or SMS. This helps users redeem it later.

#### 1. Create profile attributes

Create these profile attributes before creating the transactional message:

* A coupon code attribute with the **String** data type.
* An expiry date attribute with the **Date** data type.

Use stable names such as `couponcode` and `expirydate`. These attributes receive the assigned reward values.

<figure><img src="https://1642824329-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX6uilbEAw42gqsudlclY%2Fuploads%2FGAYqSVBOBfVpeIkZ5XZI%2FScreenshot%202024-03-05%20at%2012.33.41.png?alt=media&amp;token=d22c130c-8728-43d4-a10a-ac50677daa35" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1642824329-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX6uilbEAw42gqsudlclY%2Fuploads%2FF0Ju2i4VLhr3ce9s65nU%2FScreenshot%202024-03-05%20at%2012.34.32.png?alt=media&amp;token=b23d5721-7d4a-4b95-b0d1-69039dc2829c" alt=""><figcaption></figcaption></figure>

#### 2. Create the transactional message

Create and activate a transactional push or SMS campaign. In its personalized message, insert the coupon code and expiry date attributes.

For example:

> Your reward is ready!\
> Code: `{couponcode}`\
> Valid until: `{expirydate}`

The values are replaced when Netmera assigns a coupon code.

<figure><img src="https://1642824329-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX6uilbEAw42gqsudlclY%2Fuploads%2FGRwmDJTzFeNRL7N4S8pL%2FScreenshot%202024-03-05%20at%2013.01.00.png?alt=media&amp;token=254edcd6-6269-40a5-a587-2672a0423da5" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
Activate transactional messages before uploading a coupon code list.
{% endhint %}

#### 3. Upload and connect coupon codes

Go to [Coupon Code Lists](/netmera-user-guide/panel-settings/settings/messaging-and-content/coupon-code-lists.md) and upload a list. Set its name, codes, warning limit, and expiry date.

Enable **SMS** or **Push Notification** delivery on the list. Netmera then assigns the code during the spin and sends it through the active transactional message.

<figure><img src="https://1642824329-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX6uilbEAw42gqsudlclY%2Fuploads%2FyP2Kz7j6vbAgFGu7sFby%2FScreenshot%202024-03-05%20at%2015.57.33.png?alt=media&amp;token=53321356-813d-4fcb-b667-0d9c5af3ba51" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1642824329-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX6uilbEAw42gqsudlclY%2Fuploads%2FyCFj5IOLuHGXRNaQHB9e%2FScreenshot%202024-03-05%20at%2016.03.22.png?alt=media&amp;token=aed9d1c8-d19b-4ba0-b0af-57c7dd50d4b8" alt=""><figcaption></figcaption></figure>

### Manage coupon availability

Each slice can use a separate coupon list. When a list expires or runs out of valid codes:

* The related slice becomes inactive.
* Its weight becomes **0%**.
* Netmera rebalances the remaining active slices.

The widget is marked **Finished** when no slice has valid codes remaining.

### Measure performance

Track these events in **Analytics → Event Insight**:

* **Spin To Win Shown** — a wheel impression.
* **Spin Button Clicked** — a completed spin action.
* **Coupon Code Copied** — a code copied from the success screen.
* **Coupon Code Assigned** — a successful reward assignment.
* **Coupon Code Assigned Failed** — a failed reward assignment.

<figure><img src="https://1642824329-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FX6uilbEAw42gqsudlclY%2Fuploads%2FaCvRQzn9YKPfSdJ8OucE%2FScreenshot%202024-05-13%20at%2013.23.23.png?alt=media&amp;token=25c80cc2-605d-423b-90ee-0d17c4e75f5e" alt=""><figcaption></figcaption></figure>

### FAQs

**How often can users receive another code?**

Users can spin and receive a code once every 24 hours. To allow only one spin, enable **Show Only Once** in the automated campaign.

**Do users need to log in to receive a coupon code?**

No. Push and SMS delivery require the relevant user data and permissions.

**Can I show different wheels to different segments?**

Yes. Use automated campaign targeting rules to control eligibility.

**Can I schedule the widget for specific dates?**

Yes. Use the automated campaign's time window scheduling.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://user.netmera.com/netmera-user-guide/omnichannel-engagement/widgets/build-a-widget/spin-to-win-campaigns.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
