Settl.

Tracking / X (Twitter) · WooCommerce

The X (Twitter) Conversions API on WooCommerce

X Ads bids on the purchases it hears about. On most WooCommerce stores that's the X Pixel on the order-received page, so blocked scripts, payments that leave your site and bank transfers quietly cost you conversions. Here's how X tracking works on WooCommerce, which plugins add it, what the X Conversions API needs, and how to report every paid order exactly once.

twclid kept 90 days

X's click id is saved when a visitor lands from an ad, and stored on the order at checkout.

Sent when it's paid

Paid orders go to X from the server through the Conversions API, not from a thank-you page.

Missed orders resent

Every hour Settl checks the past week's paid orders and sends anything that didn't arrive.

The X Pixel and the usual WooCommerce plugins

The X Pixel (still loaded from static.ads-twitter.com, from the Twitter days) is the browser script that reports page views and conversion events to X Ads. Conversion campaigns, website audiences and bidding all use those events.

On WooCommerce there are a few ways to add it (checked October 2026). The X Pixel plugin on WordPress.org loads the pixel, fires product view, add to cart, checkout and purchase events, and can also send those events through the Conversions API when you save an API token, with a shared conversion id so X can deduplicate. Conversios has a Twitter (X) Pixel setting where you paste your Pixel ID. General header-script plugins work too, but then you build the purchase event yourself. If you only run a few X campaigns and want audiences, a free plugin is a fair place to start.

The X Conversions API is the server-side route: your server posts conversions to X's Ads API. X's docs say it needs a developer account with Ads API access and tokens from a user with Ad manager or Account administrator access to the ad account. That extra step is why many tracking tools skip X.

Why WooCommerce loses X conversions

  • Ad blockers and privacy browsers that block the X Pixel script. When it doesn't load, the purchase never reaches X.
  • Payment methods that leave your site, such as PayPal, iDEAL in a bank app, Klarna or a hosted card page. The buyer pays, closes the tab, and the order-received page where the pixel fires never loads.
  • Bank transfer and cash on delivery. The thank-you page loads before the money arrives, so a browser pixel counts orders that may never be paid.
  • Shoppers who tap an ad in the X app, browse in its in-app browser and buy later in Safari or Chrome, so click and sale sit in different browsers.
  • Caching and script-delay settings in optimization plugins, or a cookie banner, holding the pixel back on exactly the page that matters.

What X uses to match a purchase

X asks for at least one identifier: the click id (twclid), an email address or a phone number. IP address and user agent only count next to one of those. The more you send, the better X can match.

  • twclid: the X click id on your landing URL. Settl's plugin saves it at landing and sends it unhashed, as X asks.
  • Email, trimmed, lowercased and hashed with SHA-256.
  • Phone number in international format, hashed with SHA-256.
  • IP address and user agent from the visit, alongside the identifiers above.
  • Order value, currency, number of items and the products in the order.

Which WooCommerce orders should count

X optimizes toward whatever you report as a purchase. If unpaid orders count, it learns to find people who start a bank transfer and never finish it. Only paid orders belong in your Purchase event:

  • Processing or Completed after a successful payment: send it.
  • On hold (bank transfer, cash on delivery): wait until the order is actually paid.
  • Pending payment, Failed, Cancelled, Refunded or a checkout draft: don't send it.
  • Processing turning into Completed is the same order and must not create a second purchase.

How Settl sends WooCommerce orders to X

The Settl Tracking plugin saves the twclid when a visitor lands from an X ad and keeps it in a first-party cookie for 90 days, and tells Settl about the click so it survives a cleared cookie. At checkout the click is stored on the order itself, together with the buyer's email and phone.

When WooCommerce marks the order paid, the plugin passes it to Settl, which sends a purchase to the X Conversions API from the server: value, currency, number of items, the products, the twclid, hashed email and phone, IP address and user agent, and a conversion_id tied to the order. Custom statuses you use after payment, such as Shipped, still count as paid. Every hour Settl asks the plugin for the past week's paid orders and sends any that are missing.

With server-side shopping steps switched on, page visits, product views, searches, add-to-carts and checkouts go to X from the server too, for visitors X can match: someone with a saved twclid, or a known email or phone. Anonymous visitors without a click id are skipped, because X would reject them.

Avoiding double counts

Settl's WooCommerce plugin doesn't load the X Pixel, so it can't share a conversion_id with a pixel that another plugin adds. If that plugin also sends a purchase to the same X event, X can count each sale twice. Keep one source for purchases: switch purchase tracking off in the other plugin, or leave X out of Settl and let the plugin handle it.

To check, compare a week of X purchases with your paid WooCommerce orders from X clicks. Close to double means two sources report the same sales; far fewer usually means twclid isn't on your landing URLs.

How to check it works

Click one of your own X ads and check that twclid is still in the address bar when your store opens. A redirect or a link shortener that drops it means no click can be saved. Settl's hourly tracking health check also flags ad visits that arrive with an empty or template click id.

Then place a real order with a payment method that leaves your site and close the tab right after paying. In X Ads Manager, open Tools → Events Manager, select your pixel and look at the Purchase event's activity: the order should show up with its value.

How to set it up with Settl

  1. 1Install the Settl Tracking plugin

    Add it in WordPress and paste your connection code from the Settl dashboard.

  2. 2Find your Pixel ID and create events

    In X Ads Manager open Tools → Events Manager, copy the Pixel ID, click Add event, choose Install with Conversion API and create a Purchase event (plus any shopping steps). Copy each Event ID.

  3. 3Get the API keys

    In the X Developer Portal, open an app with Ads API access → Keys and tokens. Copy the API key and secret, and generate an access token and secret for an account with Ad manager or Account administrator access.

  4. 4Paste them into Settl

    Paid orders now go to X from the server with the saved twclid. Make sure no other plugin sends purchases to the same event.

Pricing

Monthly, cancel any time. No contract, no fee per order from Settl.

99,9% Tracking

Keep Shopify's checkout. Every paid order sent server-side to Meta, TikTok, Google, Snapchat and Pinterest.

$44.99/ month · first 10 days free, no card needed

Start with 99,9% Tracking

Pro

Your own checkout plus 99,9% Tracking and ROAS per ad, in one plan.

$54.99/ month · first 10 days free, no card needed

Start with Pro

Questions

Do I have to remove my X Pixel plugin?+

No. Keep it for page views and website audiences if you like. Just make sure purchases reach X from one source only.

Is X the same as Twitter for ads tracking?+

Yes. Twitter Ads became X Ads; the pixel still loads from ads-twitter.com and the click id is still called twclid.

Do I need X Ads API access?+

For the Conversions API, yes: X requires a developer account with Ads API access. A browser pixel alone doesn't.

What about bank transfer and cash on delivery?+

Those orders go to X once WooCommerce marks them paid, not when they're placed.

Does it work on Shopify too?+

Yes. On Shopify you install the Settl app instead of the plugin, and shopping steps can go out from the X Pixel and the server with one shared conversion_id.

What does it cost?+

€39,99 per month for 99,9% Tracking after 10 days free, with no contract and no per-order fees. X is included with Meta, TikTok, Google, Snapchat, Pinterest, Microsoft Advertising and Reddit.

Related

All guides and comparisons →

Every sale back to your ads.

Get started
X (Twitter) Conversions API on WooCommerce · Settl