# Timing and frequency

> Control when a rule shows and how often: delays, display frequency, exit-intent and scroll triggers, and date and time schedules.

Conditions decide *who* sees a rule. These settings decide *when*, and *how often*.

## Delay and duration

Under the action's **Advanced** settings, or its **Options** for a Sticky Bar, Floating CTA Button or Social Proof Toast:

- **Delay (seconds)** waits before showing the action, for example to let a visitor start reading first.
- **Duration (seconds)** hides the action again after that many seconds. `0` keeps it until the visitor closes it. Actions meant to stay, such as a Sticky Bar or a Slide-in Panel, have no duration.

## Display frequency

Beside the delay. How often the same visitor sees the action:

| Setting | Shows |
| --- | --- |
| **Every Page Load** | On every page view where the rule matches. |
| **Once Per Session** | Once per visit. A visit ends after 15 minutes without activity. |
| **Once Ever** | Once, for good, in this browser. |
| **Until Dismissed** | On every page view until the visitor closes it, then never again. Not offered for a Special Offer or a Redirect, which have nothing to close. |
| **Once Every X Days** | Once, then again after the number of days you set. |

Two things end an action for a visitor whatever its frequency: answering a **Show Rating**, and, with **Stop after the main button is clicked** switched on, clicking the action's main button. A popup's or countdown's secondary button, the close button and a click outside don't count. On a **Floating CTA Button**, the main button is the button itself.

A **Redirect** has a display frequency too. **Once Per Session** sends a visitor to the other page once, then lets them browse.

The limit is kept in the visitor's browser, so testing it yourself means clearing your site data, or using a private window, between tries.

## Triggers

By default an action runs as soon as the page loads. Under **Widget Enhancements** you can wait for a moment instead:

- **Exit Intent Trigger** waits until the visitor moves their pointer out through the top of the window, as they do on the way to another tab or the address bar. A sensitivity setting decides how close to the edge counts: the higher it is, the sooner the rule fires. Each rule uses its own. Desktop only, because it needs a mouse.
- **Scroll Trigger** waits until the visitor has scrolled a percentage of the page, scrolling down, up or both.

Conditions are still checked when the page loads: the trigger only decides when a matching rule shows.

## Schedules

Under **Schedule**, turn on **Schedule Rule** to limit a rule to set dates, days and hours:

- **Start Date** and **End Date** bound a campaign.
- **Active Days** limits it to days of the week.
- **Start Time** and **End Time** set a daily window. **Quick Presets** fill in common ones, such as business hours.
- **Timezone** is the timezone all of the above are in. It starts as your own when you turn the schedule on.

With a timezone chosen, the schedule applies the same clock to everyone: a sale that ends at midnight in New York ends then for visitors everywhere. To go by each visitor's own clock instead, choose **Visitor's local time** at the top of the timezone list; 9:00 then means 9:00 wherever the visitor is.

> [!NOTE]
> Schedules saved before the timezone was filled in automatically may have none, and those run in UTC. The editor marks them with a warning; pick the timezone you meant and publish again.

## Animation and custom CSS

Also under **Widget Enhancements**: **Animation** sets how the action appears (fade, slide, bounce, zoom or shake, with a duration and delay), and **Custom CSS** styles it beyond the built-in settings.

Both are offered for the actions that draw something. A Slide-in Panel and a Compliance Banner come in with a movement of their own, so they take the Custom CSS and not the animation. An animation chosen here is used instead of the one in the action's own settings.

---

Source: https://geoengage.app/docs/rules/timing
