X (Twitter) Pixel Tracking Setup for WooCommerce
Quick answer: Use the free container builder wizard to select X (Twitter) Pixel and your events, enter your tracking ID, then import the generated file into Google Tag Manager - no manual tag setup needed for any of the 23 events below.
X Pixel base code and standard events, generated as Custom HTML. This platform does not have a native GTM tag type, so the container wraps its base code in a Custom HTML tag.
Build my X (Twitter) Pixel container →
Events you can track
ecommerce events
- X (Twitter) Pixel Page View event setup
- X (Twitter) Pixel View Item event setup
- X (Twitter) Pixel View Item List event setup
- X (Twitter) Pixel Add to Cart event setup
- X (Twitter) Pixel Remove from Cart event setup
- X (Twitter) Pixel Begin Checkout event setup
- X (Twitter) Pixel Add Payment Info event setup
- X (Twitter) Pixel Purchase event setup
- X (Twitter) Pixel Refund event setup
- X (Twitter) Pixel Add to Wishlist event setup
- X (Twitter) Pixel Coupon Applied event setup
- X (Twitter) Pixel Search event setup
- X (Twitter) Pixel Login event setup
- X (Twitter) Pixel Sign Up event setup
engagement events
- X (Twitter) Pixel Form Submission event setup
- X (Twitter) Pixel Lead event setup
- X (Twitter) Pixel Phone Click event setup
- X (Twitter) Pixel WhatsApp Click event setup
- X (Twitter) Pixel Email Click event setup
- X (Twitter) Pixel Outbound Click event setup
- X (Twitter) Pixel Scroll event setup
- X (Twitter) Pixel File Download event setup
- X (Twitter) Pixel Calendly Booking Scheduled event setup
How the container is built
Page View uses GTM's native Page View trigger. The other 22 events each get their own Custom Event trigger, matched to a dataLayer.push({event: '...'}) call with the same name as the event key (e.g. purchase, add_to_cart) - every X (Twitter) Pixel tag is then wired to its matching trigger automatically.
For that reason, events other than Page View generally require your site to actually push the matching dataLayer event - the container listens for it rather than generating it. Use GTM's Preview mode after import to confirm each event fires as expected.
Requirements:
- A WooCommerce site with Google Tag Manager installed
- A X (Twitter) Pixel tracking ID/account to enter in the wizard
- A way to push dataLayer events for anything beyond Page View and the auto-detected form events above (a data layer/ecommerce tracking plugin, or custom code)
Frequently asked questions
What is X (Twitter) Pixel tracking for WooCommerce?
X Pixel base code and standard events, generated as Custom HTML.
Do I need to write code to set up X (Twitter) Pixel tracking?
No. The container builder wizard walks you through selecting events and entering your tracking ID, then generates a ready-to-import Google Tag Manager container JSON file - no manual tags, triggers, or variables to configure by hand.
How many X (Twitter) Pixel events can I track?
This guide covers 23 trackable events. The free tier lets you generate a container covering up to 3 events at once; unlocking full access covers all of them in a single container.
Does the generated container use a native GTM tag or Custom HTML?
X (Twitter) Pixel doesn't have a native GTM tag type, so the generated container wraps its base pixel/snippet in a Custom HTML tag configured to fire under the right triggers.
How do I import the container into Google Tag Manager?
In GTM: Admin > Import Container > choose the downloaded JSON file > select "Merge" into a new workspace. Verify everything fires correctly in Preview mode before publishing to your live container.
Does this work with GTM server-side tracking or X (Twitter) Pixel's Conversions API?
This builds a standard client-side (browser) GTM Web Container for X (Twitter) Pixel - it covers the events that fire from the customer's browser. If you're also running a GTM server-side container or X (Twitter) Pixel Conversions API to recover conversions lost to ad blockers, Safari ITP, and iOS App Tracking Transparency, the two set ups complement each other: this container still handles the client-side/browser-side events that feed into your server-side setup, it doesn't replace it.