What product views are used for
Abandoned browse
Abandoned browse
- Your site submits product views, which belong to a session.
- A session with no activity for 30 minutes is treated as abandoned. If it contains no cart event and the product views are connected to a contact, it is sent to Engage. All other sessions are filtered out. A session can only be sent to Engage once.
- The product views are enriched with data from the product feed.
- Engage triggers the automation matching the trigger configuration. Email activities in that automation can include dynamic product data from the feed.
Read more about abandoned browse
Products of interest
Products of interest
From the recency, frequency and pattern of product views over the last 90 days, Engage calculates up to 25 products each contact is most likely interested in, based purely on their onsite behavior.The list is refreshed by a scheduled job and enriched from the article register — note that products of interest are connected to the article register, not the product feed. It can then be used in segmentation and as part of a scheduled selection in an automation.
Read more about products of interest
Product recommendations
Product recommendations
If a contact has products of interest, that data feeds the calculation of their personal recommendations. Engage combines their onsite behavior with their full purchase and return history to produce a personalized set of recommendations for use in emails.
What an abandoned browse automation requires
- The
localemust match a product feed in Engage. Events without a matching feed are filtered out. - At least one SKU must match a product in that feed (usually via
g:id). Products that don’t match are left out of the email; if no SKUs match, the automation doesn’t trigger at all. - The session must contain no cart events. See sessions and sessionId below.
Sessions and sessionId
Every session has a uniquesessionId. Engage uses it to make sure abandoned cart and abandoned browse never both trigger for the same session:
- If
cartandproductViewevents share asessionId, only the abandoned cart automation triggers. - Abandoned browse triggers only when no cart event was recorded for that
sessionId.
sessionId automatically. When you use the tracking API, you must add it to every payload yourself.
Using the tracking script
Callproductview() every time a product is shown to the visitor, whether or not they have been identified. It sends an HTTP POST to the Collect endpoint.
string
required
The product’s category, for example
Men / Sweaters / Cardigan.string
required
The product identifier, matched against SKU in Engage.
string
required
The locale of the site, as an IETF language tag such as
sv-SE. Must match a product feed locale in Engage, otherwise abandoned browse cannot trigger.string
The Engage contact ID. If omitted, the
_vaI cookie is used as a fallback.Using the tracking API
You can submit product views directly via the API instead of implementing the tracking script. Be aware that a lot of what the script handles out of the box then becomes your responsibility:- Identification. The API requires a
contactId, so only identified product views can be registered. You must identify visitors arriving from Engage email links yourself, by reading thevtidquery parameter and passing it ascontactId. - Sessions. You must include a
sessionIdin every payload. Abandoned browse will not work without it.
Read more about the Engage REST API
Rules to follow
-
Send product views for anonymous visitors too. A view recorded anonymously is linked to the contact once they are identified. Never restrict
productview()to logged-in visitors. - A “product view” is any time a product is shown, not just a product page visit. A quick-look popup counts.
-
itemIdmust match a SKU in Engage, so the view can be enriched with product and transaction data. -
One event per unique SKU. A page may fire
productview()several times if it represents several SKUs, but never twice for the same SKU.
Common scenarios
Unidentified visitor views a product
Unidentified visitor views a product
Send the event exactly as above, with one difference:
- Do not populate
contactId
Visitor lands on a product page with multiple variants
Visitor lands on a product page with multiple variants
A product display page covering several sizes, colours or variants needs a decision about what counts as a view.
- Preferred: send one
productview()when a specific variant is selected, rather than one per size. - If you want to record the view regardless of variant, send a single representative SKU from the page.
- As a last resort, send all variants — but be aware this risks abandoned browse emails filled with many variants of the same product.

