Documentation
Set up ChatGPT Ads tracking on WooCommerce
Installation, credentials, event behaviour, consent, diagnostics and licensing — in the order you will need them.
Installation
- 1Download the plugin ZIP from your purchase confirmation.
- 2In WordPress, go to
Plugins → Add New → Upload Plugin, select the ZIP and install it. - 3Activate the plugin.
- 4Open the
Licencetab, paste your licence key and activate it.
An active licence is required before conversion events are sent. The licence screen shows the plan, remaining activations and the date the licence runs to.
Requirements
- A WordPress site with WooCommerce installed and active.
- The store served over HTTPS.
- Outbound HTTPS requests allowed from your server, so purchase events can reach the Conversions API.
- An OpenAI Pixel ID for browser measurement.
- An OpenAI Conversions API key for server-side purchase events.
- A Pixel for ChatGPT Ads licence key.
WooCommerce High-Performance Order Storage and legacy post-based order storage are both supported. No theme or checkout template changes are required.
Connect the Pixel
On the Settings tab, paste your OpenAI Pixel ID into the OpenAI Pixel ID field and save. With browser tracking enabled, the OpenAI Measurement Pixel loads on the storefront and browser events begin firing.
If consent handling is enabled, the pixel stays blocked until marketing consent is granted for that visitor — see Consent.
Connect the Conversions API
On the same screen, paste your Conversions API key into the Conversions API key field. The key is stored for server-side use only. It is not printed into page markup and is never sent to the browser.
With server-side tracking enabled, order_created is sent from your server when a WooCommerce order reaches a paid status. Every attempt is recorded in Diagnostics with its HTTP response, so a rejected key or a rate limit is visible rather than silent.
Browser tracking
These events are sent from the page:
- Product viewed
contents_viewed - Added to cart
items_added - Checkout started
checkout_started - Purchase
order_created
Turning browser tracking off stops all four browser events. Server-side purchase tracking is unaffected and keeps running.
Server-side tracking
order_created is the event sent through the Conversions API. It fires on the WooCommerce transition to a paid status rather than on a page load, so a customer who closes the tab before the order-received page still produces a purchase event. Delayed payment methods behave the same way.
The event ID is derived from the order, so the server event and the browser event for the same purchase carry the same identifier and can be resolved into one conversion. Reloading the order-received page does not create a second identifier.
Failed deliveries are retried automatically. Anything still failing after the retries stays in the log and can be re-sent manually.
Consent
The plugin reads marketing consent through the WordPress Consent API. If your consent plugin implements that API, it is used without further configuration.
- Browser events remain blocked until marketing consent is granted.
- The server-side purchase event uses the consent state recorded for that order, so a later change of preference does not rewrite past orders.
- Orders without marketing consent appear in Diagnostics as
Not sentrather than as a failure.
Consent tools that do not implement the WordPress Consent API are not detected automatically. Your compliance obligations depend on your store, configuration and jurisdiction.
Diagnostics
The Diagnostics tab lists paid orders and what happened to their purchase event:
- Order — the WooCommerce order the event belongs to.
- WC paid — whether the order has reached a paid status.
- Consent — the marketing consent state recorded for the order.
- Delivery — sent, retrying, failed or not sent.
- Attempts — how many times delivery has been tried.
- HTTP status — the response code returned on the last attempt.
A failed delivery can be re-sent from the same screen once the cause is fixed.
Licensing
Licences are annual and cover a fixed number of activations — one per WordPress install. Deactivating a site frees its activation for another store.
- Active
- Tracking allowed. Events are sent, updates are delivered and support is available.
- Expired
- New conversion tracking is not allowed. Renew to resume event delivery, updates and support.
- Disabled
- New conversion tracking is not allowed. The licence has been deactivated and no new events are sent.
Plugin updates arrive through the standard WordPress updates screen while the licence is active. See pricing and plan limits.
Troubleshooting
- No browser events on the storefront
- Check that browser tracking is on, that the Pixel ID is saved, and — if consent handling is enabled — that marketing consent has been granted. A full-page cache can also serve a copy of the page from before the plugin was configured.
- A paid order shows Not sent
- Marketing consent was not granted for that order, so no server event was sent. That is the intended behaviour of consent-aware tracking.
- Delivery failed with 401
- The Conversions API key was rejected. Update the key on the Settings tab, then re-send the event from Diagnostics.
- Delivery shows 429
- The request was rate limited. It is retried automatically; no action is needed unless it ends in Failed.
- Deliveries stay in Retrying
- Your server may not be able to reach the API. Check outbound HTTPS requests, firewall rules and any proxy sitting in front of WordPress.
- An order is missing from the log
- The purchase event is recorded when the order reaches a paid status. Orders still awaiting payment have not been sent yet.
- Conversions look doubled
- Check that a second pixel is not installed elsewhere. A snippet in the theme or a tag manager container fires without the event ID the plugin assigns, so it cannot be deduplicated against the server event.
Still stuck? Send us the order number and the HTTP status shown in Diagnostics — contact support.
Ready to install it?
Licences are annual and cover 1, 5 or 25 sites. Same tracking on every plan.