M cenaly.com

Add-on · impressions are never metered

Collect enquiries and contacts at the right moment of the visit

The offer appears on a condition: the visitor is leaving, has read the page to the end, is on the site for the third time, has put something in the cart. As a form, a quiz, a coupon or a prize wheel — in a modal, a bar or a block right inside your markup. Built for shops and service sites that pay for their traffic.

  • Offer the next step based on behaviour — 9 triggers to choose from
  • Don’t hand a discount to everyone: use the page, the source and the cart
  • Work enquiries with context: page URL and UTM sit next to them, CSV included

Registration is free and needs no card · the pop-ups themselves are a paid add-on you switch on in the catalogue · campaign edits reach your site in 5 minutes

Popups and forms
One tag for every widget8 of 12 are freeShadow DOM — layout-safeLabels in your page languageTwo clouds: AWS and Russia
formats: modal, slide-in, bar and fullscreen
4
display triggers — from an exit attempt to your own site event
9
campaign types: from a plain message to a quiz and a prize wheel
11
impressions per variant, 10 metric events for the leader and 95 % confidence — the A/B thresholds
200

How it works for the visitor

  1. 1

    The visitor is simply reading the page

    They browse pages, scroll the text, add something to the cart. The campaign waits for its condition: time on site, scroll depth, the third page of the visit, an exit attempt, a cart change, a click on your button.

  2. 2

    They see a window or a bar

    You choose the format: a modal, a slide-in from a corner, a bar at the top, or a block built right into your markup — inside an article, under a product, in the footer.

  3. 3

    They take one action

    They leave an email, take a quiz, spin the wheel, claim a coupon or follow a button. In a quiz the questions branch, so they only answer the relevant ones.

  4. 4

    The code stays with them, the enquiry with you

    The coupon they won stays as a sticky reminder with its code and deadline, while the contact and the answers land in the Leads inbox together with the page URL and UTM tags.

Set up in three steps

1

Sign up and add your site

A free Cenaly.com account and your site domain in the "My website" section.

2

Paste one tag

One line before </body> — in your theme, in a Tilda or Wix HTML block, in Shopify's theme.liquid. It serves every widget.

3

Switch widgets on in the admin

Each widget is a toggle and a settings form. Changes reach your site without touching code; CDN cache is five minutes.

The tag

<script src="https://cdn.cenaly.com/site/v1.js" data-domain="your-site.com" async></script>

One tag for all widgets. `data-domain` is your site; everything else lives in the admin.

What the popup widget does

Put the offer exactly where it belongs

A modal, a slide-in in one of four corners, a bar at the top or bottom, fullscreen — plus a block in the flow of the page: a subscription in the footer, a quiz inside an article, a coupon under a product card. Best where an overlay is too much but the offer still matters.

Choose the moment from what the visitor does

Nine triggers: page load, time on site, idle, scroll depth, pages per session, an exit attempt, a cart change, a click on an element and your own site event. Best for shops and blogs where the context of the visit matters.

Pick who the offer is for

Page masks, device, country, UTM tags, the class of the referring source (maps, search, social, direct), new or returning, cart contents and total, interactions with other campaigns and up to 5 conditions on your own site events. Best for anyone paying for ads who would rather not show a discount to everybody.

Collect contacts and answers

A form with the fields you choose, a quiz with branching, scores, outcomes and a calculator field. Answers and contacts land in the Leads inbox with the page URL and UTM, and export to CSV. Best for services where an enquiry starts with picking the right option.

Hand out coupons as a game — an honest one

A prize wheel (2–8 segments), a scratch card (2–6 options) and gift boxes (3–6): the prize is the code of a real coupon of your location, and the outcome is drawn BEFORE the animation. A campaign with no prizes isn’t shown at all. Best for promotions and collecting subscriptions.

Compare variants without wearing people out

A/B variants with an honest verdict (200 impressions per variant, 10 metric events for the leader, 95 % confidence), and you apply the winner with a button. Alongside them: a pause after a dismissal, a lifetime cap of up to 100 impressions per visitor and a teaser bubble instead of a repeat window. Best for anyone running popups regularly.

Where it pays off

A subscription after reading an article

Offer it by scroll depth, or put the form into the footer as a block: the contact goes to Leads and the subscription to your mailing list.

An exit attempt on a product page

Desktop exit-intent plus a product-page mask: the offer reaches exactly those about to close the tab, not everyone on load.

A “free delivery” progress bar

The remainder is recalculated with the cart, and the threshold comes from data — delivery settings, a call from your site, or a sum you set.

A quiz before the enquiry

A few branching questions and, at the end, an outcome by score with a coupon or a button. The answers sit next to the contact and the page URL.

“Goes well with” after adding to the cart

A compact slide-in with related items after a cart change. The campaign needs our ordering widget on the same page.

A visitor looking for an appointment slot

A tile with real free slots for a service; a tap on one opens the appointment widget with that time already selected.

How it looks on your site

Colour, position and labels adapt to your site. The widget lives in a Shadow DOM — your styles don't break it, and it doesn't break yours.

On desktop

On mobile

On your side: A campaign is built in the admin panel once and runs both on your storefront and on your own website. It never shows on top of another dialog — the display is postponed instead.

Where it goes

Exact menu names and plan requirements, taken from each platform’s own help center.

Sites built with our website builder ship with the widgets already wired — nothing to paste.

Step-by-step guides per platform — in the help center →

Pricing

$9/mo

  • A paid add-on: every format and inline block, forms and quizzes, coupons, targeting, frequency caps and A/B
  • Pay yearly and you pay for 10 months instead of 12
  • Impressions, campaigns and captured leads are never metered — there are no counters
  • The cart doesn’t connect itself: it needs data from your site or our ordering widget
  • The subscription belongs to the account, not to a domain: the same campaigns run on your own site and on your Cenaly.com storefront
  • There is exactly one billable unit — the add-on subscription: not impressions, not visitors, not captured contacts and not domains
Add it for free

With and without

Without the widget With the widget
Who sees it ✕ A discount banner hangs on every page for every visitor Targeting by page, country, UTM, device, cart and your own site events
When it fires ✕ The window pops a second after load, before the first screen Nine triggers: exit, scroll, idle, the Nth page, a cart change
Where leads go ✕ Form enquiries stay in your inbox, with no page URL and no UTM Leads land in your dashboard inbox with the page URL and UTM, export to CSV
Testing ideas ✕ Which version worked better is judged by eye An A/B verdict with thresholds: 200 impressions per variant, 10 events for the leader, 95 % confidence
Fatigue ✕ The visitor sees the same window on every visit A pause after a dismissal, an impression cap and a teaser instead of a repeat window

Honest about the limits

  • This is a paid add-on: without the purchase the server projection strips the widget out of the profile and the loader won’t raise it.
  • The widget knows about the cart only what your site tells it (a `CenalyEngage.cart` call or a GTM event) or what our own ordering widget reports; that data lives only in the tab’s memory.
  • The “goes well with” campaign needs our ordering widget on the same page, and “open chat” needs the chat widget. No neighbour — the campaign isn’t shown and the frequency cap isn’t spent.
  • The “towards the goal” bar isn’t shown without a threshold: it comes from the storefront’s delivery settings, arrives from your site, or is set as a sum in the campaign.
  • The “nearest free slots” tile is only calculated for service appointments. The engine does not count free tables — there is no floor plan in the public data.
  • A block in the flow of the page is not a popup: it doesn’t spend the “one popup per session” limit, doesn’t close on Esc and has no teaser, while a bar or fullscreen in this mode is downgraded to a card.
  • A popup never appears over someone else’s open dialog or on a hidden tab, and fullscreen on mobile at load is served as a sheet — that is what Google’s interstitial rule requires.

Who it's for

  • Shops with a cart: coupons, related items, free-delivery thresholds
  • Services and clinics: a quiz instead of a long enquiry form
  • Anyone paying for traffic who wants to speak to it differently

What smart popups are and when they are worth it

A popup is a message that appears on a site in response to what a visitor does: they are about to leave, they have read the page, they have put something in the cart. What makes it “smart” is not the animation but the conditions: who to show it to, when, and how often.

It starts to make sense where there is already traffic but few actions: people read product pages and leave, the footer subscription does nothing, and the discount reaches everyone, including those who would have bought anyway. A popup fixes that specifically — and the same popup can do harm if it is shown to everyone all the time.

That is why the triggers here come with brakes: a pause after a dismissal, a lifetime cap per visitor, a teaser instead of a repeat window and an honest A/B verdict with thresholds. Contacts land in the Leads inbox with the page URL and UTM, and campaigns run on both your website and your Cenaly.com storefront under one subscription.

Popups are premature while traffic is thin: at a dozen visits a day a window yields neither revenue nor enough data for an A/B verdict — start with the free widgets that catch the visitor who already arrived. What separates a popup from social proof is the nature of the message: proof only shows numbers our server counted itself, while a popup carries your text and your offer, and you answer for it.

Questions and answers

What does the paid add-on include?

Every display format and inline blocks, forms and quizzes, coupon and prize campaigns, targeting, frequency caps and A/B with a verdict. You manage campaigns in the admin. Impressions, the number of campaigns and captured leads are never metered; pay yearly and you pay for 10 months instead of 12.

Where do the contacts from forms go?

Into the Leads inbox of your dashboard — together with the capture context: the page URL and the UTM tags. There are filters and a CSV export; subscriptions go to your mailing list.

Won’t the popups annoy my visitors?

That is what the brakes are for: a pause in days after a dismissal, a rolling “N impressions per M days” window, a lifetime cap of up to 100 impressions per visitor, “stop after conversion”, the global “one popup per session” cap, a schedule, and the teaser bubble that folds a campaign into the corner instead of showing the window again.

Can I embed a block in the page instead of showing it on top?

Yes, by CSS selector or by a ready anchor — the campaign editor gives you the snippet. Such a block doesn’t spend the “one popup per session” limit, doesn’t close on Esc and has no teaser; a bar or fullscreen is replaced by a card in this mode.

What does the “free delivery” bar need?

Cart data and a threshold. On our storefront the threshold comes from your delivery settings; on your own site your site sends it with a `CenalyEngage.cart` call, or you set your own sum in the campaign. Without a threshold the campaign isn’t shown.

How do I know which variant works better?

The server counts the statistics per variant and issues a verdict: a winner, no difference, or not enough data. The thresholds are 200 impressions per variant and 10 metric events for the leader at 95 % confidence. A human applies the decision with the “Apply the winner” button.

Do campaigns also run on my Cenaly.com storefront?

Yes — the selection and display engine is the same, so a campaign set up once runs both on your website and on our storefront under one subscription. The exception is the “nearest free slots” tile: it is only calculated by the widget on your own site.

Why didn’t a campaign show?

The widget answers that itself: `window.CenalyEngage.getDiagnostics()` returns a machine-readable reason per campaign — wrong page, wrong audience, cap spent, no neighbouring widget, inline container not found. The `data-debug="true"` attribute shows the same picture as an on-screen panel.

How do I install it?

With the shared “My website” tag plus the Popups toggle once the add-on is bought. WordPress, Tilda, Shopify, Webflow, Wix and custom-built sites are all supported. Campaigns are then created and edited in the admin — you never touch the site code again; a change reaches the site in 5 minutes, that is the CDN cache.

Will the popups slow my site down?

The main bundle is about 47 KB gzipped and loads with the async attribute after the page has rendered. Everything heavy sits in lazy halves that only ship when such a campaign actually wins an impression: forms, quizzes, the wheel and cross-sell — about 28 KB; the grid of nearest free slots — about 16 KB; the "open now" phrases — about 2.5 KB. The diagnostics panel is switched on by a separate attribute and never reaches a visitor's browser. The popup renders in a Shadow DOM, so it doesn't shift your layout.

What exactly loads on my site?

One loader — about 26 KB gzipped, with the async attribute: it reads which widgets you switched on and pulls only those, as separate files. A widget you left off is never downloaded, and the weight of each one you did switch on is stated on its own page.

Will it break my layout?

No. Widgets render inside a Shadow DOM: your site's CSS doesn't affect them and theirs doesn't leak out.

Which language will the widget speak?

It reads your page's `<html lang>` or a `data-lang` attribute on the tag. Built-in labels are translated into 45 languages — the guest chat covers the same list; your own texts you write in the admin in the languages you need.

Where is the data stored?

In the cloud your account lives in: cenaly.com — AWS, cenaly.ru — Yandex Cloud in Russia. Requests, conversations and bookings stay within the brand's contour.

More — installation per platform, settings and troubleshooting — in the help center. Installation guide →

Collect contacts while the visitor is still on the site

Switch the add-on on with the shared tag and a toggle, then decide in the admin who sees what and when: forms, quizzes, coupons, conditions and frequency.

Start for free

Impressions, campaigns and leads are never metered · yearly = 10 months instead of 12