The products variable is used for tracking products and product categories as well as purchase quantity and purchase price. Products is typically set in conjunction with a cart event or a prodView event.


In January, 2016, Adobe updated the logic that sets the prodView event automatically, which happens when there is a product but no event. This update may cause an increase in prodView events. prodViews will increase only when:

  1. The events variable contains nothing but an unrecognized event, such as shoppingCart or cart, which are not valid events.
  2. The products variable is not empty.

A possible side effect is that merchandising eVars triggered by prodView events could be associated with an empty product, but only if the product list contains only an invalid product (such as a semicolon with no product listed).

The products variable tracks how users interact with products on your site. For instance, the products variable can track how many times a product is viewed, added to the shopping cart, checked out, and purchased. It can also track the relative effectiveness of merchandising categories on your site. The scenarios below are common for using the products variable.

The products variable should always be set in conjunction with a success event.

Max Size Debugger Parameter Reports Populated Default Value

The "Product" and "Category" sections of products each have a limit of 100 bytes. Adobe does not impose a size limit on products, though most browsers impose a size limit on the total URL length of image requests.

products Products

Categories (optional)

Revenue (optional)

Units (optional)

Custom Events (optional)

eVars (optional)

" "

Syntax of the Products Variable

Field Definition
Category Contains the associated product category. In version 15, products can be associated with multiple categories which fixes a limitation present in version 14. If you were previously not recording a product category, you are encouraged to start populating this field for report suites that are on version 15.
Product (Required) The identifier used to track a product. This identifier is used to populate the Products report. Be sure to use the same identifier through the checkout process.
Quantity The number of units purchased. This field must be set with a purchase event to be recorded.
Price Refers to the combined cost of the total quantity purchased (units x individual unit price), not to the individual price. This field must be set with a purchase event to be recorded.
Events Currency events associated with the specified product. See Product-Specific Currency Events and Order-Wide Currency Events.
eVars Merchandising eVar values associated with a specific product. See Merchandising Variables.

The values included in the products variable are based on the type of event you are recording. The category/product delimiter (;) is required as a place holder when omitting Category. Other delimiters are required only if they are necessary to distinguish which parameter you are including, as shown in the examples on this page.

Setting products with Non-Purchase Events

The products variable must be set in conjunction with a success event.


In the examples below, product attributes (category) are separated by semicolons. Multiple products are separated by commas.

Example 1: Single Product"prodView"
s.products="Footwear;Running Shoes"
Example 2: Multiple Products"prodView"
s.products="Footwear;Running Shoes,;Running Socks"

Setting products with a Purchase Event

The purchase event should be set on the final confirmation ("Thank You!") page of the order process. The product name, category, quantity, and price are all captured in the products variable. Although the purchaseID variable is not required, it is strongly recommended in order to prevent duplicate orders.

Example 1: Single Product"purchase"
s.products="Footwear;Running Shoes;1;69.95"
Example 2: Multiple Products"purchase"
s.products="Footwear;Running Shoes;1;69.95,Running Essentials;Running Socks;10;29.99"
Note: Price refers to the total price (unit price x units). For instance, 3 widgets purchased at 19.99 each would equal 59.97 (such as ";Widget;3;59.97" ).

Product-Specific Currency Events

If a currency event receives a value in the products variable instead of the events variable, it applies only to that value. This is useful to track product-specific discounts, product shipping, and similar values. For example, if you configured event 1 to track product shipping, a product with a "4.50" shipping charge might appear similar to the following:"event1"
s.products="Footwear;Running Shoes;1;99.99;event1=4.50"

In this example, the value of 4.50 is associated directly with the "Running Shoes" product. If you add event1 to the products report, you'll see "4.50" listed for the "Running Shoes" line item. Similar to Price, this value should reflect the total for the quantity listed. If you have 2 items with a 4.50 shipping charge each, event1 should be "9.00".

Example 1: Single Numeric/Currency Event"purchase,event1"
s.products="Footwear;Running Shoes;1;69.95;event1=7.59"
Example 2: Multiple Numeric/Currency Events"purchase,event1,event2"
s.products="Footwear;Running Shoes;1;69.95;event1=7.59|event2=19.45"

Order-Wide Currency Events

If a currency event receives a value in the events list instead of the products variable, it applies to all products in the products variable. This is useful to track order-wide discounts, shipping, and similar values, without modifying the product price or by tracking it in the product list separately.

For example, if you configured event10 to contain order-wide discounts, a purchase with a 10% discount might appear similar to the following:"purchase,event10=9.95"
s.products="Footwear;Running Shoes;1;69.95,Running Essentials;Running Socks;10;29.50"

On currency event reports, the report total represents the de-duplicated event total (in this example, the total amount of discounts during the reporting period), not the sum of the event values for each product. For example, you would see "9.95" listed for both "Running Shoes" and "Running Socks", and the total would also be "9.95".

Note: if a value for the same Numeric/Currency Event is specified in the products variable and in the events variable, the value from the events is used.

Setting products with Merchandising eVars

See Merchandising Variables.

Pitfalls, Questions, and Tips

  • The products variable should always be set in conjunction with a success event (events). If no success event is specified, the default event is prodView.
  • Strip all commas and semicolons from product and category names before populating products.
  • Strip all HTML characters (registered symbols, trademarks, and so forth).
  • Strip currency symbols ($) from the price.







s.products="Category;ABC123;1;10;event1=1.99|event2=25;evar1=2 Day Shipping"”event1,event2”

s.products="Category;ABC123;1;10;event1=1.99|event2=25;evar1=2 Day Shipping|evar2=3 Stars"”event1,event2”

s.products="Category;ABC123;1;10;event1=1.99|event2=25;evar1=2 Day Shipping, ;ABC456;2;19.98;event1=1.99|event2=100;evar1=Ground Shipping"”event1,event2,event3”

s.products="Category;ABC123;1;10;event1=1.99|event2=25;evar1=2 Day Shipping,;ABC456;2;19.98;event1=1.99|event2=100;evar1=Ground Shipping,;;;;event3=2.9;evar3=20% off"”event1,event2,event3=9.95”

s.products="Category;ABC123;,;ABC456;2;19.98;event1=1.99|event2=100;evar1=Ground Shipping,;;;;event3=2.9;evar3=20% off"