What is Add to Cart Event?
Also known as: AddToCart event, ATC event
What is an Add to Cart event?
The Add to Cart event, written as AddToCart in code, is a Meta Pixel standard event that fires the moment a shopper adds a product to their cart. It tells Meta a user moved from browsing to buying intent. It carries product IDs, value, and currency in the payload.
Per Meta's Standard Events documentation, AddToCart sits between ViewContent and InitiateCheckout in the funnel. It is the first event with hard commercial intent. Most ecommerce optimization plays start here.
The event has three jobs.
- Train the Meta delivery algorithm on mid-funnel intent.
- Populate retargeting audiences with shoppers who showed buying signal.
- Power the AddToCart-to-Purchase ratio, the single best mid-funnel health metric.
One pixel fires it. Every Meta Pixel event follows the same shape.
Where to fire it
Fire AddToCart on the click of the Add to Cart button. Bind to the button click handler, not the cart-page load.
Cart-page-load firing breaks in three places. Single-page apps that update the cart in a drawer never reload. Refreshes on the cart page double-count. Shoppers who add from a quick-view modal never trigger a navigation event.
Click-bound firing also wins on speed. The event sends before the page navigates, so it lands in Meta even if the next page fails to load. Shopify, WooCommerce, and BigCommerce native pixel apps already do this. Custom builds need an explicit click listener.
addToCartButton.addEventListener('click', () => {
fbq('track', 'AddToCart', {
content_ids: ['SKU-1234'],
content_type: 'product',
value: 49.00,
currency: 'USD',
num_items: 1,
});
});
Standard parameters
AddToCart requires four parameters and accepts one optional one. Every fire should carry the full set.
| Parameter | Required | Type | Example |
|---|---|---|---|
content_ids | Yes | array of strings | ['SKU-1234'] |
content_type | Yes | string | 'product' or 'product_group' |
value | Yes | number | 49.00 |
currency | Yes | ISO 4217 string | 'USD' |
num_items | Optional | integer | 1 |
The content_ids value must match the product IDs in your Meta Catalog for dynamic ads to work. Mismatched IDs silently break dynamic product ads and abandoned-cart retargeting.
The value should reflect the unit price of the item added, not the cart total. Per Shopify's customer events documentation, the recommended pattern is to send the line-item price for the SKU just added.
Why ATC matters for retargeting
AddToCart is the highest-quality retargeting signal in ecommerce. A user who added to cart and left has done 80 percent of the buying work. They picked the product. They saw the price. They clicked Add to Cart. They just did not finish.
Per Baymard Institute's cart abandonment research, the average documented cart abandonment rate across 49 studies is 70.19 percent. Seven of every ten shoppers who add to cart never check out.
That is the retargeting opportunity.
A standard abandoned-cart audience setup.
- Audience definition. Users who fired
AddToCartin the last 7, 14, or 30 days, minus users who firedPurchasein the same window. - Creative. Dynamic product ads using the
content_idsfrom the abandoned event. - Bidding. Lowest cost or cost cap, optimized for
Purchase. Never optimize abandoned-cart campaigns for AddToCart again. - Frequency. Cap at 3 to 5 impressions per week to avoid burnout.
[ORIGINAL DATA] Across Coinis-managed direct-to-consumer ecommerce accounts in Q1 2026, abandoned-cart retargeting campaigns delivered a median ROAS of 6.8, against a prospecting median of 2.4. The 7-day ATC audience outperformed the 30-day window by 22 percent on ROAS.
ATC-to-Purchase ratio benchmarks
The AddToCart-to-Purchase ratio is the share of AddToCart events that convert to a Purchase inside the attribution window. It is the cleanest mid-funnel health check.
| Ratio | Interpretation |
|---|---|
| Under 15% | Broken checkout, payment friction, or surprise shipping costs |
| 15 to 25% | Below benchmark, audit the checkout flow |
| 25 to 40% | Healthy range for most ecommerce verticals |
| 40 to 55% | Strong checkout, often paired with returning customer mix |
| Over 55% | Suspect tracking. Purchase fires twice or AddToCart misses |
[UNIQUE INSIGHT] The ratio also exposes pixel quality. A site with AddToCart firing on every page-load refresh shows an artificially low ratio because the denominator is inflated. A site with Purchase firing on the cart page shows a ratio above 60 percent. Both look like funnel problems but are tracking problems. Audit the pixel before redesigning the checkout.
Per Baymard's checkout usability findings, the top three reasons for cart abandonment are unexpected extra costs, mandatory account creation, and a long checkout process. Each one drops the ATC-to-Purchase ratio independently.
Common implementation mistakes
Most underperforming ATC accounts fail at the implementation layer. The five mistakes that ruin the data.
- Firing on cart-page load instead of button click. Single-page-app cart drawers never reload. The event never fires. Optimization starves.
- Skipping
valueandcurrency. APurchasewithout value still records the conversion. AnAddToCartwithout value cannot feed value-based bidding or train Advantage+ on revenue. - Mismatched
content_idsbetween catalog and pixel. The pixel sends'1234'. The catalog stores'SKU-1234'. Dynamic product ads silently retarget the wrong product, or no product at all. - No deduplication with the Conversions API. Browser fires
AddToCart. Server firesAddToCart. Without a sharedevent_id, Meta counts one action as two. The ATC-to-Purchase ratio drops below 15 percent on paper. - Firing AddToCart on quantity-change clicks. Increasing quantity from 1 to 2 in the cart triggers another AddToCart in some themes. The denominator inflates. Fire only on the initial add.
[PERSONAL EXPERIENCE] In our experience auditing 40-plus Shopify accounts in the last year, four of the five mistakes above showed up in more than half. The single fastest fix is moving the fire from page-load to click-bound. ATC volume drops 10 to 30 percent overnight, and the ATC-to-Purchase ratio climbs into the healthy band within a week.
Real-world example with numbers
A direct-to-consumer skincare brand on Shopify ran for six months with AddToCart firing on cart-page load.
Pixel data showed.
- 24,800 monthly AddToCart events.
- 3,200 monthly Purchase events.
- ATC-to-Purchase ratio of 12.9 percent.
- Abandoned-cart retargeting ROAS of 1.9.
The team rebuilt the pixel. AddToCart moved to a click-bound listener on the product page button. The Conversions API mirrored every event with a shared event_id. The value parameter was pulled from the line-item price, not the cart total.
Thirty days later.
- 18,400 monthly AddToCart events. Down 26 percent. The old number was inflated by refreshes.
- 5,900 monthly Purchase events. Up 84 percent, mostly from recovered attribution.
- ATC-to-Purchase ratio of 32.1 percent. Inside the healthy band.
- Abandoned-cart retargeting ROAS of 5.4.
The site did not change. The product did not change. The pixel did.
Related terms
Frequently asked questions
Is AddToCart a standard or custom Meta Pixel event?
AddToCart is a standard event in Meta's Pixel reference. It populates the Conversions column in Ads Manager, feeds Advantage+ Shopping campaigns, and unlocks pre-built optimization goals. Use the standard AddToCart event before reaching for a custom one.
What parameters should an AddToCart event include?
Send content_ids, content_type, value, and currency on every fire. Add num_items when the cart has more than one unit. Skipping value and currency breaks revenue reporting and stops the algorithm from optimizing for value-based outcomes.
Where in the user flow should AddToCart fire?
Fire it on the click of the Add to Cart button, before the page navigates or the cart drawer opens. Firing on the cart-page load misses single-page-app flows and double-counts when shoppers refresh. Bind to the click event and pass the product data straight from the button.
What is a healthy AddToCart-to-Purchase ratio?
Across ecommerce, 25 to 40 percent of AddToCart events convert to a Purchase. Per Baymard Institute, the average documented cart abandonment rate is 70.19 percent across 49 studies. A ratio under 20 percent points to checkout friction. A ratio over 50 percent usually means broken Purchase tracking.
Can AddToCart be used for retargeting if the user never buys?
Yes. AddToCart is the cleanest signal for retargeting. Build a Meta Custom Audience of users who fired AddToCart in the last 7 to 14 days but did not fire Purchase. Show them dynamic product ads with the same content_ids they abandoned. Recovery campaigns built on this audience routinely outperform prospecting on ROAS.