Skip to content

Guide 31 · Ecommerce · GA4 + Tag Manager

Send the remove_from_cart event: the item taken out, and only that item

Checked 11 November 2026 · Verification: reference file checked in Python (figures recomputed from the worked example) · Steps traced to Google's developer docs and Analytics Help, opened 11 November 2026 · 5-minute read

Remove from cart is the mirror of add to cart: send it when an item leaves the cart, with the removed item only, so the cart reports stop overstating what is still in there.

Expected signal

After step 3, DebugView shows a remove_from_cart event with value 42.02 and the grey tee in the items array, fired once per removal. After about 24 hours, the Ecommerce purchases report stops counting the removed quantity as still in the cart.

Download the reference: the remove-from-cart-event reference (JSON) (949 bytes, MD5 71924d84a4ef22730f566ce286746d40). It holds the event parameters, the worked example, and the recomputed figures.

What you need

  • The Google tag on the site. The event is sent through the Google tag; the install guide covers it.
  • Access to the website source code, or a Tag Manager container. The event fires from the remove control on the cart page.
  • The cart contents before the removal. The worked cart holds Google's two example items: three Stan and Friends Tees at 10.01 (30.03) and two grey tees at 21.01 (42.02), a cart of 72.05.

The trace

  1. Fire the event on the remove action. The remove_from_cart event measures the action of removing, so it belongs on the remove button or the quantity control that takes the item out. Send gtag("event", "remove_from_cart", { currency: "USD", value: 42.02, items: [{ item_id: "SKU_12346", item_name: "Google Grey Women's Tee", price: 21.01, quantity: 2 }] }). The value is the removed items only: 21.01 × 2 = 42.02.
  2. Send only the item that left. The items array holds the grey tee with quantity 2, not the whole cart. The cart still holds the three Stan and Friends Tees at 30.03, and the cart total after the removal is 72.05 − 42.02 = 30.03.
  3. Check it in DebugView. Turn on debug mode, remove the item, and open DebugView (Admin, then Data display, then DebugView). Select the remove_from_cart event and check the value reads 42.02 and the items array holds only the grey tee. One removal must produce one event.
  4. Confirm the reports after about 24 hours. The Ecommerce purchases report derives the cart picture from add_to_cart and remove_from_cart together. If removals are never sent, the report keeps counting items that visitors already took out.

Dead ends

DEAD END — THE WHOLE CART IN THE ITEMS ARRAY. Sending the full cart as the removed items tells Analytics every remaining item was removed. The cart then looks empty in the reports while the visitor is still holding three tees. The array holds only what left.

DEAD END — REMOVING BY SETTING QUANTITY TO ZERO WITHOUT AN EVENT. A cart page that drops the item from its own state but sends no remove_from_cart event leaves Analytics believing the item is still in the cart. The event is what Analytics sees; the page state is not.

DEAD END — VALUE THAT DOES NOT MATCH THE ITEMS. A value of 42.02 against an items array holding one tee at 21.01 breaks the same rule as everywhere else: value is the sum of price times quantity for the items in the event. Send the quantity that was removed, or the value disagrees with the items.

End state

Every removal sends one remove_from_cart event with the removed item, its quantity, and a value equal to price times quantity (21.01 × 2 = 42.02). The worked cart drops from 72.05 to 30.03, which is the three remaining tees at 10.01 each. DebugView shows the event the same minute, and after about 24 hours the cart picture in the Ecommerce purchases report matches the real cart.

Sources

Checked 11 November 2026. The event definition above is the one in Google's ecommerce developer guide and the recommended events reference, both opened 11 November 2026. No step was run inside a live Analytics property, because that needs a Google sign-in and this site does not sign in as anyone. The figures were recomputed in Python: 21.01 × 2 = 42.02, 10.01 × 3 = 30.03, 30.03 + 42.02 = 72.05, and 72.05 − 42.02 = 30.03. The reference file was checked the same way.