view_item is a recommended GA4 ecommerce event that your site sends when a visitor looks at the details of a single product, usually by opening its product page. It carries the product’s ID, name, price and the currency, which lets GA4 count product views and compare them with baskets and sales for each item.
How view_item works
When a product detail page loads, or a quick-view window opens on a listing, your site pushes the event to the data layer and a GA4 tag sends it on. A well-formed view_item has:
- currency, which is GBP for a UK shop, and value, normally the product’s price.
- An items array containing one product, with item_id, item_name, price and, where they exist, item_brand, item_category and item_variant.
It is the second step in the standard ecommerce sequence. view_item_list records the product being shown in a list, view_item records the product page being opened, and add_to_cart follows if the visitor likes what they see.
The item_id does more work than it seems. Google Ads dynamic remarketing that uses GA4 data matches the ID against the products in Google Merchant Center, and Meta’s equivalent event, ViewContent, matches its content IDs against your catalogue. If the IDs on the site differ from the IDs in the feed, those ads cannot show the product the person looked at.
Why it matters
view_item is the base of every product-level question. Put product views beside items added to basket and items purchased and patterns appear quickly. A product that is viewed often but rarely added usually has a problem on its own page: the price compared with alternatives, poor photos, unclear sizing, stock shown as low or out, or delivery terms the shopper only discovers there. A product that converts well from few views is a candidate for more visibility on the homepage, in category pages and in ads.
For shops running catalogue or dynamic remarketing campaigns, the event is also the raw material for showing returning visitors the exact items they browsed.
Common mistakes
- Sending a different item_id from the one in the product feed, such as an internal SKU on the site and a platform variant ID in the feed.
- Firing view_item for every product on a category page. That is what view_item_list is for, and it inflates product views badly.
- Sending price as text with a pound sign or as a string with a comma, which GA4 cannot add up.
- Firing a fresh view_item every time a visitor picks a different size or colour, without deciding whether that is wanted, so views per product stop meaning the same thing across the shop.
- Ignoring quick-view windows, so products mostly seen that way look unpopular.
- Running a platform app and a manual tag together, which records each view twice.
How to act on it
Open three or four product pages in Tag Manager preview mode and confirm one view_item per page, with the price as a number and the ID matching the feed exactly. Check a product with variants and one opened in quick view. If you run Meta catalogue ads, open Events Manager and check that ViewContent shows matched content IDs.
Once the data is reliable, build a simple monthly table of views, add-to-basket rate and purchases per product, and work through the products with the biggest gap between attention and sales. Clean product events are one of the first things I check before running catalogue and dynamic product ads, since those campaigns can only be as accurate as the IDs they receive.
