If your weblayer (banner, pop-up, or overlay) isn't appearing on your website, this article walks you through the most common causes and how to resolve them. Follow the steps in order as each one rules out a different root cause.
Step 1: Check project integration
The most fundamental reason a weblayer doesn't appear is that the website isn't integrated with the same project where the weblayer is configured.
How to verify:
Open the target page in your browser.
Open the Exponea Console (browser extension or developer tools).
Note the project token shown on the page.
In the app, go to Settings > Project settings and check your project token.
If the tokens don't match, the weblayer can't display on this site — your web/development team will need to fix the SDK integration.
Also check:
Is the Bloomreach JS SDK script actually loaded on the page? Open DevTools > Network and filter for
exponeaorsdk.If your site uses a cookie consent mechanism, ensure consent has been granted. On many sites, the SDK only loads after the visitor accepts cookies. Try clearing all cookies, reloading the page, and accepting consent again before testing.

Step 2: Check campaign status and schedule
Even if the SDK is integrated correctly, the weblayer campaign itself must be actively running, verify:
Status: The weblayer must be running/started, so the "Stop" button must be active.
Drafted, stopped, or passed campaigns will not display.Schedule: Check that the start date has passed and the end date hasn't been reached yet.
If the status is Passed, the campaign has ended — it will not display regardless of other settings.

Step 3: Check the target audience
Even when a campaign is running, audience filters can exclude you or most of your visitors.
What to check:
Is the audience set to "All customers", or is there a narrow segment filter?
When testing on your own profile, confirm you are explicitly included — for example, by adding your cookie to the audience filter.
Remember: eligibility is evaluated when the weblayer is triggered. If your profile data changed after the weblayer was supposed to display, it doesn't retroactively affect whether you see it.
A/B test setup: If the weblayer uses an A/B test, check that you aren't assigned to the Control Group (which shows nothing by design). Also, verify that A/B test variants aren't accidentally disabled.
For quick testing, you can temporarily set the audience to All customers and retest on a clean browser session.
Step 4: Check display rules
Most configuration mistakes happen in the display settings. Review each of the following carefully:
Show on
Confirm the URL rule matches the exact page you are testing on.
https://example.com/page/Check what the browser actually shows in the address bar and match it exactly.
If using "Page contains", confirm the substring actually appears in the real URL

Target devices
Verify you are testing on a device type allowed in the settings (desktop vs. mobile).

Display control/frequency of displaying
For testing, set Display to Always so the weblayer shows on every page refresh regardless of previous views.
If you have already seen the weblayer and the setting is Once or Once per visit, it will not show again until the conditions reset.
Once per visit resets after a new session (
session_startevent). Once (only) means once for the entire lifetime of the campaign per customer.Until interaction means the weblayer keeps appearing until the visitor performs an interaction (such as a click on an action button). Closing the banner may not count as an interaction depending on your setup.

Step 5: Check weblayer groups
If multiple weblayers are configured for the same pages, grouping rules may prevent some from appearing.
When two or more live weblayers belong to the same group, only one is displayed at a time — the one that comes first alphabetically by name.
If your weblayer is suppressed by another in the same group, you can: temporarily stop the competing weblayer, or move your weblayer to a different group.
Exception: This rule doesn't apply when weblayers are triggered programmatically via
showWebLayer()orexponea.showBanner()— In that case, multiple weblayers from the same group can appear simultaneously.

Step 6: Try to force the weblayer to display
To force the weblayer to display (bypassing all filter settings):
exponea.showBanner('YOUR_WEBLAYER_ID_HERE')
This code forces the weblayer to appear only for your current session.
If it appears → the weblayer itself is fine; the issue is in your configuration (page filter, audience, schedule, and more).
If it doesn't appear → the issue is likely in the weblayer's JavaScript or HTML code.
Your weblayer ID can be found in the URL of the weblayer editor in the app.

Step 7: Check JavaScript or other template issues
JavaScript is responsible for rendering the weblayer on the page. If the code is broken, the weblayer will not display even when all the configuration looks correct.
How to identify JS issues:
Open DevTools > Console and look for JavaScript errors related to the weblayer after the page loads.
If the weblayer uses a predefined Bloomreach template with no modifications, JS errors are unlikely. If it uses custom or heavily modified code, the code may be the cause.
Important: Bloomreach Support can't debug custom JavaScript. If the weblayer uses custom code, your development team will need to investigate and fix it. A useful test is to check whether a simple predefined template works correctly on the same page — if it does, the issue is isolated to the custom code.
Step 8: Check for external blockers
Sometimes the weblayer is correctly configured, but the browser or website environment prevents it from loading.
Check for the following:
Ad blockers and browser extensions: Test in a clean browser profile or Incognito/Private window with all extensions disabled. Ad blockers, antivirus software, and privacy tools can block SDK loading or banner rendering entirely.
Content Security Policy (CSP): If your website has recently tightened CSP headers, the web SDK or weblayer scripts may be blocked. Check for CSP errors in the browser console (look for
Content Security Policyviolation messages) and work with your security/development team to allowlist the necessary scripts.Consent mechanism: On sites where the SDK loads only after user consent, verify that the consent event fires correctly and the SDK actually loads after consent is accepted. This is a very common cause — try clearing all site data and accepting consent fresh.
Step 9: Distinguish "not displayed" from "not tracked"
Sometimes a weblayer is visible on the page, but the banner show event isn't appearing in analytics or the customer profile — or vice versa. These are different problems.
Before troubleshooting further, confirm which situation you are in:
The weblayer isn't visible at all on the page → Follow Steps 1–8 above.
The weblayer is visible, but no event is tracked → The issue may be in custom JavaScript that has changed the default event-tracking logic.
Events are tracked (banner show), but the weblayer isn't visible → Check whether the weblayer HTML is being injected into the page but hidden by CSS (use DevTools Elements tab to look for
<div class="weblayer-banner">).
By default, weblayers generate an banner event with action = show when displayed. If the JavaScript has been modified to track a custom event instead, the standard show event may not appear.
Step 10: Single-page application (SPA) considerations
If your website is a Single-page application (SPA), standard weblayer behavior may not work as expected. SPAs don't reload the page on navigation, so the SDK may not automatically re-evaluate the weblayer conditions.
What can happen:
Weblayers may appear on URLs where they should not (because the page filter was matched during initial load).
Weblayers may not appear on the correct URL because the SDK didn't re-evaluate after navigation.
Recommended solutions:
Use the weblayer reloading SDK method to trigger re-evaluation on URL change.
Consider using Enhanced Web Targeting, which is optimized for SPAs.