# Campaign Limitation

Campaign limitations are an essential tool to control reward distribution, prevent abuse, and maintain the integrity of your loyalty program. These limits allow you to define boundaries for how many times a campaign can be triggered and how many units can be distributed—globally or per member—within a specific time frame.

***

### 🔒 Types of Limits

You can configure three main types of campaign limitations:

<figure><img src="https://2658975168-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FcNVX03KZzmrGwJihLiEx%2Fuploads%2F3VulchC0NwGsgLMJnpMn%2Fimage.png?alt=media&#x26;token=2b042206-0f01-49bd-8603-619f2d8c7cd1" alt=""><figcaption></figcaption></figure>

<table><thead><tr><th width="157">Limit Category</th><th width="268">Limit Type</th><th>Description</th></tr></thead><tbody><tr><td><strong>Limit</strong></td><td><strong>Per member limit (triggers)</strong></td><td>The number of times a campaign can be completed by an individual member.</td></tr><tr><td><strong>Budget</strong></td><td><strong>Global limit (units)</strong></td><td>The total number of units that can be issued across the entire campaign.</td></tr><tr><td><strong>Budget</strong></td><td><strong>Per member limit (units)</strong></td><td>The maximum number of units that an individual member can receive within the campaign.</td></tr></tbody></table>

***

### 📦 Example

Let’s say you set:

* A **global limit** of 10,000 units,
* A **per-member limit** of 100 units.

This ensures that at least 100 different members can benefit from the campaign. Once a member reaches their individual cap (100 units), they won’t receive any additional rewards, even if the campaign is still active, and the event that triggers the campaign meets all the condition. If the campaign reaches 10,000 units in total, it stops rewarding entirely, regardless of individual member activity.

{% hint style="info" %}
If a unit transferissued by the campaign is canceled, those units are automatically returned to the available pool.
{% endhint %}

***

### ⏲️ Time-Based Enforcement

Limits can be configured for specific time intervals.&#x20;

You can apply each limit using one of the following periods:

<table><thead><tr><th width="177">Time Period</th><th>Behavior</th></tr></thead><tbody><tr><td><strong>No limit</strong></td><td>The limit is not time-bound; it's enforced across the campaign lifetime.</td></tr><tr><td><strong>Daily</strong></td><td>Enforces the limit over every X calendar days.</td></tr><tr><td><strong>Weekly</strong></td><td>Enforces the limit every X calendar weeks.</td></tr><tr><td><strong>Monthly</strong></td><td>Enforces the limit every X calendar months.</td></tr><tr><td><strong>Yearly</strong></td><td>Enforces the limit every X calendar years.</td></tr><tr><td><strong>In total</strong></td><td>One-time limit for the entire campaign duration.</td></tr></tbody></table>

#### 🔍 Examples

**Daily Limit**

* Time window: Every 1 calendar day
* Units issued per member: 230\
  Each member can earn **up to 230 units** every 1 calendar day.

**Weekly Limit**

* Time window: Every 1 calendar week
* Max units: 150\
  Each member can earn **up to 150 units** every 1 calendar week.

**Monthly Limit**

* Time window: Every 1 calendar month
* Max units: 15\
  Each member can earn **up to 15 units** every 1 calendar month.

**Yearly Limit**

* Time window: Every 1 calendar year
* Max units: 1,500\
  Each member can earn **up to 1,500 units** throughout the calendar year.

**In Total Limit**

* Time window: Lifetime (as long as the campaign is active)
* Max units: 1,000\
  Each member can earn **up to 1,000 units** throughout the activity of the campaign.

***

### 🔄 Limit Enforcement Logic

Time-based limits are always enforced using the **business date of the event**, such as the purchase or custom event date.

#### 📌 Example:

If a campaign allows up to 1,000 points per day, and an admin sends:

* One transaction dated **today**, and
* One transaction dated **two days ago**,\
  The member can receive up to **2,000 points total**—1,000 for each day—because the system evaluates limits based on the business date value aligned with the event’s business date.

***

### 🧠 Best Practices

* Use **global limits** to prevent over-distribution of units in case of system misuse.
* Apply **per-member limits** to ensure fair reward allocation.
* Combine limits with **time windows** for campaigns that run over long periods.
* Pair limits with **conditions and expressions** for added flexibility (e.g., issue rewards only for certain transactions or custom events).
* Always test limit behavior in a staging environment before deploying campaigns at scale.
