FAQ & troubleshooting
The questions that come up, with the short answers first.
My popup isn't showing. Why?
Nine times out of ten it's a rule doing its job. Walk this list:
- Is the campaign live? Drafts and paused campaigns never show. Check the status pill on Campaigns.
- Are the edits published? An Unpublished Edits badge means visitors still see the old published version, or nothing, if you've never published.
- Is the app embed on? Theme → Customize → App embeds → Janus.
- You already saw it. Frequency caps, dismissals and the you-already-converted rule all apply to you, too. Test in a private window, or clear the widget's
ps_localStorage keys. - Targeting excludes you. The builder's live preview time machine shows a would show / would NOT show verdict with the exact failing condition.
- The trigger hasn't fired. Exit intent needs an exit gesture; scroll depth needs a long enough page; a manual trigger waits for the SDK.
- Another popup won. Only one campaign shows per moment: the highest priority match, possibly held back by the cross-popup quiet period.
- A schedule or journey is in charge. Outside its date/dayparting window a campaign is silent, and a campaign inside an active journey only appears when routed.
- A custom JS condition is failing. An error in custom JS silently blocks the popup.
How do I test without annoying real visitors?
Keep the campaign paused/draft and use ↗ Preview → Open on your store; the ?ps_preview link renders it for you alone. Previews never count in analytics.
A customer says their code doesn't work.
- Check the reward's expiry: unique codes die on their timer (that's the urgency).
- Check minimum spend and combinability: a code that "doesn't work" is usually colliding with another discount or an under-minimum cart.
- If contact match is on, the checkout email must be the signup email.
- Unique codes are single-use: a code that worked once is done.
Signups aren't reaching my email platform.
- Is the provider connected (green) on Integrations, with a list/audience picked where required?
- Check the campaign's Where signups go panel for an override or a warning dot.
- Remember consent: SMS contacts only sync with SMS consent. A signup without the box ticked is an email contact only.
- Run Settings → Maintenance → Retry failed syncs; transient provider errors re-deliver.
Will Janus slow my store down?
The widget is a single async ~57 KB gzipped script that never blocks rendering, makes zero requests when no campaign can show, and preloads popup images before opening. The publish check even warns you when your own images push total weight past sensible limits. See what actually loads.
Janus's numbers don't match my other dashboard.
Check definitions first: Janus separates submissions from net-new opt-ins, and attribution is window-and-basis dependent; see what Janus does and doesn't claim.
Can I run two popups at once?
Two campaigns live at once, yes: targeting and priority decide who sees which, and only one shows per page view. Two overlays stacked on one visitor, deliberately never.
A customer asked me to delete their data.
Shopify's redaction webhooks handle it automatically when the request comes through Shopify; see GDPR.
Still stuck?
Write to hello@getjanus.co with the campaign name and a ?ps_preview link; that's usually everything needed to reproduce.