Items Report
What the Items report needs to work and how to structure your product data correctly.
The Items report shows which products drive the most revenue — broken down by name, brand, category, SKU, and variant. It populates from the items array you pass inside conversion events.
How it works
Hardal extracts item data from any event that includes an items array: purchase, add_to_cart, view_item, begin_checkout, and others. The Items report aggregates this across all purchases.
What your events need
Include an items array in your purchase event at minimum. The more fields you provide, the richer the breakdown.
hardal.track("purchase", {
transaction_id: "TXN-789",
value: 149.99,
currency: "USD",
items: [
{
item_id: "SKU-001", // required — unique product ID
item_name: "Wireless Headphones", // required — product name
item_brand: "Acme Audio",
item_category: "Electronics",
item_category2: "Audio",
item_category3: "Headphones",
item_sku: "WH-100",
price: 99.99, // required — unit price
quantity: 1, // required — units purchased
item_first_price: 129.99, // original price before discount
item_tax: 8.00,
item_variant: "Black",
item_variant_id: "WH-100-BLK"
},
{
item_id: "SKU-002",
item_name: "USB-C Cable",
item_brand: "Acme Cables",
item_category: "Accessories",
price: 9.99,
quantity: 2,
item_sku: "UC-10"
}
]
});
Required vs optional fields
| Field | Required | Description |
|---|---|---|
item_id | Yes | Unique product identifier |
item_name | Yes | Product name |
price | Yes | Unit price at time of purchase |
quantity | Yes | Number of units |
item_brand | No | Brand name |
item_category | No | Primary category |
item_category2 | No | Secondary category |
item_category3 | No | Tertiary category |
item_sku | No | Stock keeping unit |
item_variant | No | Variant name (e.g. colour, size) |
item_variant_id | No | Unique variant identifier |
item_first_price | No | Original price before discounts |
item_tax | No | Tax for this item |
Common setup issues
| Symptom | Likely cause | Fix |
|---|---|---|
| Items report is empty | items array missing from purchase | Add items to your purchase event |
| Product revenue is wrong | price × quantity not matching | Ensure price is the unit price, not line total |
| Same product appears twice | Different item_id values used | Use a consistent product identifier across all events |
| Categories not showing | item_category not passed | Add category fields to your items |
View Items report
See your live product performance in the analytics dashboard
Was this page helpful?