---
title: "OpenAI Pixel not firing after cookie consent on WordPress"
description: "The ChatGPT Ads pixel is on your WordPress site but sends nothing after visitors accept cookies. Check the consent plugin, oaiq consent, optimizers and GTM."
updated: "2026-10-23"
url: "https://ispixelworking.com/guides/openai.not_firing_after_consent/wordpress"
---

# OpenAI Pixel not firing after cookie consent on WordPress

Fix guide · WordPress · medium · about 45 min · updated 2026-10-23

For the finding “OpenAI Pixel does not fire after consent” (`openai.not_firing_after_consent`).
Also for: [Any website](https://ispixelworking.com/guides/openai.not_firing_after_consent/generic), [Shopify](https://ispixelworking.com/guides/openai.not_firing_after_consent/shopify), [Webflow](https://ispixelworking.com/guides/openai.not_firing_after_consent/webflow), [Framer](https://ispixelworking.com/guides/openai.not_firing_after_consent/framer).

## What this means

The OpenAI Pixel (the ChatGPT Ads Measurement Pixel) is installed on your page, but after cookies were accepted, no events were sent to OpenAI. As far as ChatGPT Ads can tell, this page has no visitors.

Why it costs you money:

- ChatGPT Ads cannot see page views or conversions from this page, including WooCommerce add-to-carts and orders, so reported conversions are too low and your cost per conversion looks worse than it is.
- Conversion-optimized campaigns learn from these events. Without them, they optimize on little or nothing.

How sure we are: if our checker found and accepted your cookie banner, this is reported as **critical**. If we did not find a banner we could operate, it is reported as **high**: the pixel may be waiting for a banner we did not recognize. Test it yourself before changing anything.

## How to confirm it yourself

Our check runs from a browser in the EU, so EU consent rules on your site apply to it. If your banner only appears for EU visitors, use a VPN or ask a colleague in the EU.

1. **Log out of WordPress**, or use a **private (incognito) window**. Tracking plugins can skip logged-in users or certain roles, and optimization plugins may only optimize pages for visitors who are not logged in.
2. Open developer tools (F12), go to the **Network** tab and type `bzr.openai.com` into the filter box.
3. Load the page and click **Accept** (accept all) on the cookie banner.
4. Wait about 5 seconds. Click the requests and look at the payload: you should see an event with the type `page_viewed`. Service messages whose type starts with `openai::` or `oai::` do not count (at the time of writing the SDK sends these on its own; OpenAI does not document them).
5. If nothing appears, open another page. If events only appear there, the pixel starts one page too late and you lose the first page of every visit, usually the page your ChatGPT ad points to.
6. Change the filter to `oaiq.min.js` and reload: if the SDK file never downloads after Accept, the pixel code is still blocked or delayed. In the **Console** tab, `typeof oaiq` returning `"undefined"` means the snippet itself never ran.

On a WooCommerce store, repeat the test on a product page and after **Add to cart** (`contents_viewed`, `items_added`).

## How to fix

On WordPress the chain is usually: consent plugin, then the snippet, plugin or GTM tag that loads the pixel, with a caching or optimization plugin in between. Check each link.

1. **Check that the consent plugin records the choice.** After clicking Accept, reload: the banner should not come back. If it does, fix the consent plugin first.
2. **Check the pixel's category.** The OpenAI code must sit in the category your Accept button grants: **marketing** in Complianz and Cookiebot, **Advertisement** in CookieYes. Look at your **Script Center** entry in Complianz, the `data-cookieconsent` value in Cookiebot, or the **Script URL Pattern** entry in CookieYes's **Cookie Manager**.
3. **Check that the released code sends a page view.** OpenAI's snippet only loads the SDK and runs `init`; events start with `measure` calls. If your consent plugin holds back the whole snippet, it must contain `oaiq("measure", "page_viewed", { type: "contents" });` after `init`, and the plugin must run it right after Accept.
4. **If you use the pixel's consent command** (`oaiq("consent", false)` before `init`), check these points:
   - something must call `oaiq("consent", true)` when the visitor accepts, and pass `true` from the start for visitors who accepted earlier. A common mistake is calling `oaiq("consent", false)` on every page and `true` only in the banner's click handler, so returning visitors stay blocked;
   - send `page_viewed` again after `oaiq("consent", true)`. OpenAI says events blocked while consent is `false` are **not replayed**;
   - if you read consent through the WP Consent API (cookie `wp_consent_marketing`, event `wp_listen_for_consent_change`), check that the WP Consent API plugin is active and that `wp_consent_marketing` changes to `allow` under **Application > Cookies** after Accept. If it never appears, your consent plugin is not passing the choice to the API. The [WordPress guide to "OpenAI Pixel fires before cookie consent"](https://ispixelworking.com/guides/openai.fires_before_consent/wordpress) has a complete snippet;
   - OpenAI says the pixel also keeps consent `false` when it finds a stored denial. A visitor (or you, while testing) who rejected earlier stays blocked until your code calls `oaiq("consent", true)`.
5. **Test without optimization.** Temporarily turn off JavaScript optimization in WP Rocket, LiteSpeed Cache, Autoptimize or similar, clear all caches and test again. If the pixel now fires after Accept, the optimization was the cause. These plugins combine, defer or delay scripts; consent plugins re-enable blocked code by recognizing its tag or URL, and may not recognize it after it has been rewritten. WP Rocket's **Delay JavaScript execution** also holds every script until the visitor moves the mouse, scrolls or taps, so a visitor who never interacts sends no page view. Turn optimization back on with exclusions for `bzrcdn.openai.com`, `oaiq` and your consent plugin's scripts:
   - **WP Rocket:** the exclusion fields on the **File Optimization** tab (**Excluded JavaScript Files** for delayed scripts), or the `nowprocket` attribute on the inline OpenAI snippet;
   - **LiteSpeed Cache:** **JS Excludes** and **JS Deferred / Delayed Excludes** under **Page Optimization > Tuning**;
   - **Autoptimize:** **Exclude scripts from Autoptimize**, and consider turning off **Also aggregate inline JS**.
6. **If a tracking plugin loads the pixel:**
   - **PixelYourSite:** check that the consent integration you switched on is for the consent plugin you actually use (an inactive one shows as not detected). Its Cookiebot category fields do not mention OpenAI, and PixelYourSite says it cannot guarantee every consent plugin handles consent correctly, so test after each change.
   - **Pixel Manager for WooCommerce:** its OpenAI documentation says the pixel loads only after marketing consent. Check that your consent plugin is on its list of compatible consent plugins, update the plugin, and in Pro check the settings under **Consent > Explicit consent**.
   - **Measurement Pixel for OpenAI Ads:** it reads consent through the WP Consent API, so the WP Consent API plugin and a consent plugin that supports it must be active.
   - **PixelBridge:** check which of its three consent modes is selected: the WordPress Consent API, manual JavaScript or PHP consent, or unmanaged tracking after an explicit acknowledgement. PixelBridge says measurement does not start if you select the WP Consent API and it is not available. With manual consent, your own code has to pass the visitor's choice to it.
7. **If the pixel is in Google Tag Manager** (added by Site Kit, GTM4WP or a snippet): open GTM **Preview**, click Accept and check that `ad_storage` becomes `granted` and that the OpenAI tag fires. A tag with only a page view trigger runs before the visitor clicks Accept and never again on that page; add a trigger for the event your consent plugin pushes to the data layer, as described in the [general guide](https://ispixelworking.com/guides/openai.not_firing_after_consent/generic).
8. **Look for leftovers from an old consent plugin.** If you switched consent plugins, search WPCode, Elementor Custom Code and theme files for `type="text/plain"`, `data-cookieconsent` or `data-cookieyes`. Code marked for the old plugin stays disabled, because the new one does not look for that marker.
9. **Check the browser console** for errors. A Content Security Policy, set by your host, CDN or a plugin, must allow `https://bzrcdn.openai.com` in `script-src` and `https://bzr.openai.com` in `connect-src`; OpenAI lists the exact sources.
10. **Clear every cache** (plugin, host and CDN) after each change, then test again while logged out.

## Common causes

- The consent plugin releases the snippet, but the snippet has no `page_viewed` call.
- `oaiq("consent", false)` runs on every page, and only the banner click switches it back on.
- The page view was sent before consent and is not replayed afterwards.
- An optimization plugin combines or delays the OpenAI code, so the consent plugin cannot re-enable it, or it waits for an interaction that never comes.
- The OpenAI code is in a category that the Accept button does not grant, or still marked for a consent plugin you no longer use.
- The GTM tag fires only on the first page view, before consent.
- A page cache, host cache or CDN still serves the old pages.

## How to verify the fix

1. In a fresh private window, logged out: no measurement events before Accept, and a `page_viewed` event within a few seconds after Accept, on the same page.
2. Reload the page as a returning visitor who already accepted: `page_viewed` leaves without any click.
3. Re-run the check on IsPixelWorking. The issue should be gone, and "OpenAI Pixel fires before cookie consent" should not appear in its place.

## Sources

- OpenAI Developers, Measurement Pixel (consent commands, stored denial, blocked events are not replayed, Content Security Policy sources): https://developers.openai.com/ads/measurement-pixel
- OpenAI Developers, Supported Events (event names and data shapes): https://developers.openai.com/ads/supported-events
- WordPress.org, WP Consent API (`wp_listen_for_consent_change`, supporting plugins): https://wordpress.org/plugins/wp-consent-api/
- WP Consent API source, `wp-consent-api.js` (cookie name): https://plugins.svn.wordpress.org/wp-consent-api/trunk/assets/js/wp-consent-api.js
- WP Rocket Knowledge Base, Delay JavaScript execution (user interaction, Excluded JavaScript Files, `nowprocket`): https://docs.wp-rocket.me/article/1349-delay-javascript-execution
- LiteSpeed, LSCache for WordPress, Page Optimization: https://docs.litespeedtech.com/lscache/lscwp/pageopt/
- WordPress.org, Autoptimize: https://wordpress.org/plugins/autoptimize/
- Complianz, Does Complianz work with caching plugins?: https://complianz.io/help/wordpress/configuration/does-complianz-work-with-caching-plugins/
- Complianz, Integrations: Script Center: https://complianz.io/help/wordpress/configuration/integrating-plugins/
- CookieYes, How to implement prior consent (Cookie Manager, Script URL Pattern): https://www.cookieyes.com/documentation/implement-prior-consent-using-cookieyes/
- Cookiebot, Manual implementation (`data-cookieconsent`): https://www.cookiebot.com/en/manual-implementation/
- PixelYourSite, ConsentMagic and other WordPress consent plugins: https://www.pixelyoursite.com/docs/consentmagic-integration
- SweetCode, Pixel Manager: OpenAI (consent): https://sweetcode.com/docs/pmw/plugin-configuration/openai
- SweetCode, Pixel Manager: Privacy and consent overview: https://sweetcode.com/docs/pmw/consent-management/overview/
- WordPress.org, Pixel Manager for WooCommerce (compatible consent plugins): https://wordpress.org/plugins/woocommerce-google-adwords-conversion-tracking-tag/
- WordPress.org, Measurement Pixel for OpenAI Ads (pixel and server events wait for marketing consent through the WP Consent API): https://wordpress.org/plugins/measurement-pixel-for-openai-ads/
- WordPress.org, PixelBridge: ChatGPT Ads Pixel Tracking (three consent modes; measurement does not start if the WP Consent API is selected but unavailable): https://wordpress.org/plugins/pixelbridge-ads-tracking-for-openai/
- Google Tag Manager Help, Tag Manager consent mode support: https://support.google.com/tagmanager/answer/10718549
