Nothing annoys a visitor faster than the same banner reappearing on every page. The frequency cap stops that. It is set per campaign and counted separately for each visitor.
The four options
| Option | What it does | Good for |
|---|---|---|
| Send once | Fires once for a visitor and never again. | Onboarding tours, welcome messages, one-off announcements. |
| Send every time | No cap at all — fires whenever the trigger matches. | A standing notice you want on every relevant page view, such as a maintenance warning. |
| Send X times | Fires at most X times for that visitor, ever. | A reminder worth repeating a couple of times before giving up. |
| Send X times every Y days | A rolling window. Yaplet counts how many times it has fired for that visitor in the last Y days; if that is fewer than X, it fires again. | Regular check-ins — a satisfaction question every 90 days, a re-engagement banner once a week. |
Where to set it
The Frequency dropdown is not on the main campaign form. Click Trigger at the top of a chat message, survey or tour editor — on a banner, scroll to the Trigger section and click it — and look at the bottom of the panel, below Visitor rules. Choosing "Send X times" or "Send X times every Y days" reveals the number boxes next to it.
The "Always trigger" override
If your campaign is fired by a custom event, you can set that event to Always trigger instead of plain Trigger. It ignores the frequency cap completely and fires every single time the event arrives.
This is what you want behind a "Show me the tour again" button in your own interface — the visitor asked for it, so being suppressed would be wrong. Fire the event from your site like this:
Yaplet.trackEvent('customEvent', { name: 'your-custom-event' });
How the count is kept
Every time a campaign is actually shown to someone, Yaplet records it. The cap counts those records, so it holds across pages, tabs and visits — not just within one session.
That history is deliberately kept forever. Yaplet does prune old visitor records: an anonymous visitor with no conversations who has not been back for 125 days is deleted every night. The record of what they were shown is stored separately and is excluded from that cleanup, so a "Send once" campaign stays suppressed for the people who already saw it. People you identified with Yaplet.identify() — anyone with an email address, phone number or your own customer id — are never deleted at all.
What's next?
Frequency is only half of the targeting. The other half — which event fires the campaign, on which pages, and to whom — is in Trigger rules.