Adobe Analytics ecommerce tracking works by firing seven standard commerce events — from product view through purchase — and passing product detail through the s.products string so your report suite can attribute revenue, units, and orders to real behavior. It is mostly a data-layer job, not a UI job. It tells you what sold and where visitors dropped off. It does not tell a print-on-demand operator what they actually kept per order, because it never nets out blank cost, print fees, shipping, or the ad spend behind each sale.

If you run a store that already does real volume, you have probably inherited an Adobe Analytics setup or you are weighing it against a lighter stack. Either way, the question is not "can it track ecommerce" — it clearly can. The question is whether the numbers it hands you match your bank account. This walks through the setup that actually matters, then shows the one report Adobe was never built to give you.

What Adobe Analytics ecommerce tracking actually captures

Adobe Analytics is the analytics tool for eight of the top ten global internet retailers, according to Bounteous, so the commerce feature set is deep and battle-tested. It captures three broad layers: transactional data (orders, products, revenue), on-site behavior (page views, cart actions, checkout steps), and marketing context (campaign parameters and referral sources).

The important thing to understand up front is that a working ecommerce setup lives almost entirely in your data layer, not in the Adobe interface. You are responsible for firing the right event with the right variables on the right page. Get the data layer wrong and no report configuration will save you.

If you are still deciding how much analytics tooling your store needs at all, our overview of ecommerce business intelligence frames where a tracking tool fits versus where it leaves gaps.

The seven commerce events and the products string

Adobe ships seven predetermined commerce events. You do not invent these — you map your store's actions onto them:

  • Product View (prodView)
  • Cart Opens (scOpen)
  • Cart Addition (scAdd)
  • Cart View (scView)
  • Cart Removal (scRemove)
  • Checkout (scCheckout)
  • Orders (purchase)

Each event is only as good as the product detail attached to it. That detail rides in the products variable, s.products, structured as Category;Product Name;Quantity;Price;Events;eVars. Product Name is the only mandatory field, and each product entry has a hard character limit, so long POD titles and variant strings get truncated if you are careless.

Merchandising eVars are where most revenue-attribution gaps hide. They tie a value — say, the design or the ad set that drove the sale — to a single product for a specific event. They are easy to declare and just as easy to break, which is why two implementations of "the same" tracking can report different revenue by channel.

Setting the purchase event correctly

The order-level event is the one you cannot afford to get wrong. On the confirmation page you set s.events = "purchase", pass a unique purchaseID (usually the order ID), and populate s.products with the line items. Setting the purchase event increments Orders by one, Units by the quantities, and Revenue by the sum of the price fields.

Two rules trip up operators. First, Adobe's purchase-event documentation is explicit that revenue is not multiplied by the quantity field — so five units at a given price must be passed as the line total, not the unit price, or your revenue lands short. Second, the same documentation notes that purchaseID is what deduplicates orders: without it, a customer who refreshes the thank-you page can double-count a sale.

A fast sanity check: if your Adobe purchase count does not match your store's order grid within one to two percent, you have a data-layer bug, not an Adobe bug. Fix it before you trust a single downstream report. For teams standardizing this kind of measurement discipline, our guide to data analytics in ecommerce covers the denominators and definitions that keep periods comparable.

A worked example: what the report suite shows versus what you keep

Say you run a print-on-demand apparel store doing 340 orders a month at a $31 average order value, with $2,800 in monthly Meta spend. Your Adobe report suite, correctly implemented, will proudly show:

  • Revenue: 340 × $31 = $10,540
  • Orders: 340
  • If Meta claims those sales, a headline ROAS in the neighborhood of $10,540 ÷ $2,800 = 3.76

That looks like a healthy month. Now walk one order the way your P&L does. On a $31 tee, say the blank plus print from your supplier is $13.50, payment processing at three percent is $0.93, and the ad spend behind the average order is $2,800 ÷ 340 = $8.24. Before you touch shipping, labor, or apps, the order keeps: $31 − $13.50 − $0.93 − $8.24 = $8.33.

That is a 27% contribution margin, not the 276% the ROAS figure implies. Adobe reported the $31 accurately and reported the order accurately — it simply has no idea that $22.67 of that $31 walked out the door as cost. The gap between "revenue tracked" and "profit kept" is the entire POD business, and it is invisible in a standard commerce report. To see how that gap gets closed at the reporting layer, compare with ecommerce performance analytics.

Where Adobe Analytics ecommerce tracking goes wrong for POD

A few failure modes show up over and over in operating stores:

  • COGS never enters the picture. Adobe tracks price, not cost. Blank cost, print fees, and the supplier's base fulfillment charge live in Printify, Printful, or Gelato — not in your report suite — so gross margin is unknowable from Adobe alone.
  • Ad spend lives in another universe. Your revenue is in Adobe; your Meta and Google spend are on the platforms. Stitching them for a real ROAS, let alone a profit-on-ad-spend number, is manual work every single time.
  • Refunds and returns book late. A purchase event fires on day one; the refund three weeks later rarely reverses cleanly in the same view, so early revenue reads high.
  • The checkout funnel flatters you without explaining you. Adobe will show that a large share of checkout visitors never complete — abandonment across ecommerce averages about seventy percent, per the Baymard Institute — but the fix (shipping surprise? payment friction?) is a separate investigation.

None of this means the tracking is wrong. It means Adobe answers "what happened on the site" and stops there. The moment you ask "did this order make money," you are outside its scope. If you are still comparing platforms on capability, our roundup of ecommerce analytics companies lays out who covers which layer.

The report Adobe was never built to give you

Here is the honest boundary. Adobe Analytics ecommerce tracking is excellent at measuring revenue, traffic, and on-site behavior. It is not built to compute true per-order profit, because the cost side of every POD order lives in systems it does not touch.

That is the gap PodVector AI fills — not as another dashboard or analytics layer, but as Victor, an AI employee that reads your live data across the systems where the money actually moves. Victor connects to Shopify, Meta Ads, Google Ads, Printify, Printful, Gelato, and Klaviyo, and computes true per-order profit by netting blank cost, print fees, shipping, processing, and the ad spend behind each sale against the revenue — the exact subtraction Adobe leaves to you.

Victor delivers those profit reports straight to your Google Drive, and every write action he takes is approval-gated: he can even draft a customer-support reply, but you approve the send before anything leaves. He is not a replacement for your web-behavior tracking; he is the profit brain that sits behind it. If revenue tracking has never once told you which designs or ad sets actually cleared a margin, put Victor on your live data and let him do the subtraction.

FAQs

Does Adobe Analytics track ecommerce revenue accurately out of the box?

Not out of the box — accuracy depends entirely on your data layer. Once the purchase event, purchaseID, and s.products are firing correctly on the confirmation page, revenue matches your order grid within a percent or two. Until then, treat every revenue report as suspect. The tool is precise; the implementation is where errors live.

What is the difference between the products variable and merchandising eVars?

The s.products string carries the standard fields for each line item — category, name, quantity, price. Merchandising eVars are custom conversion variables you bind to a single product for a specific event, used to attribute that product's revenue to a design, collection, or ad set. Product string handles "what sold"; merchandising eVars handle "why it sold and who to credit."

Can Adobe Analytics show me my profit per order?

No. Adobe tracks price and revenue, not cost. Your blank cost, print fees, and fulfillment charges live in your POD supplier's system, and your ad spend lives on the ad platforms, so gross and contribution margin cannot be derived from a report suite alone. Computing true per-order profit requires joining revenue with supplier cost and ad spend — which is precisely what Victor does across Shopify, your POD providers, and Meta and Google Ads.

Should a POD store use the Web SDK or AppMeasurement for a new setup?

For a brand-new implementation in 2026, Adobe steers you toward the Web SDK and XDM for commerce, with AppMeasurement as the legacy path. If you already run AppMeasurement, plan a deliberate parallel run against the Web SDK before cutover so you can confirm event counts and revenue line up before you trust the new pipeline.

Why does my Adobe revenue not match my Shopify or bank totals?

Usually one of three things: revenue passed as unit price instead of the line total, missing or duplicated purchaseID values inflating orders, or refunds that booked after the purchase event fired. Reconcile the purchase count against your order grid first, then check the price field, then account for returns before you compare any period to the last.

Is Adobe Analytics overkill for a store doing a few hundred orders a month?

It can be. Adobe's pricing is custom and its ecosystem is powerful but closed, and full implementations run weeks to months. A store at a few hundred orders a month often needs the profit answer more than it needs enterprise-grade behavioral tracking — so the smarter first move is frequently to nail true per-order profit, then layer on heavier site analytics only where a specific question demands it.