Events Integration

Events correspond to actions a user takes on your e-commerce platform. Froomle has a set of standard events, some of which are specifically designed to be used in retail. In this example we will show you how to integrate Froomle events in the four most common retail pages: the homepage, overview page, product detail page and checkout page. We will discuss how to track your user’s progress in the conversion funnel and show you how we use events to measure different customer KPIs:

  • Increase clickthrough rate to product detail pages

  • Increase conversion from click to purchase

  • Increase total revenue

  • Increase attributed revenue

After reading this events integration example you should have all the required information to integrate Froomle events in your e-commerce platform.

Charting a user’s interactions with different pages on your website

What is the right recommendation is very dependent on the user’s current context. Are you just browsing, or have you shown a clear intent to buy a pair of trousers? That is why Froomle collects data across your website, from the homepage to checkout. All of this information can be used in either training of models or evaluation of KPIs.

In this section, we give an overview of user actions (events) that are relevant on a given type of page, e.g. a homepage. For each user action, we define the minimal set of information that should be included in the event sent to Froomle. We encourage you to include as much useful information as possible as it can provide extra insights into user behavior during analysis. Examples of additional pieces of information that could be relevant are: channel (mobile, desktop, …​), product price (at purchase), discount applied (at purchase).

Homepage

The home page offers the least context of all retail website pages. Your user is just starting their customer journey. This is also reflected in the number of user actions you can communicate to Froomle. Depending on what is displayed on your homepage, you will have to send Froomle the following events:

User visits the homepage

When the user visits the homepage, this is a Froomle page_visit. The event should contain:

Attribute Description Value

event_type

page_visit

page_type

home

device_id / user_id

Information to identify the user

User adds a product to their cart on the homepage

When the user adds a product to their cart on the homepage, this is a Froomle add_to_cart. The event should contain:

Attribute Description Value

event_type

add_to_cart

page_type

home

device_id / user_id

Information to identify the user

action_item

The product that was added to the cart

action_item_type

product

amount

The amount of this product that was added to the cart, typically only one

User adds product to a wishlist/User likes a product on the homepage

When the user adds a product to their wishlist, or likes it, this is a Froomle item_interaction. The event should contain:

Attribute Description Value

event_type

item_interaction

page_type

home

device_id / user_id

Information to identify the user

action_item

The product that was added to the wishlist/liked

action_item_type

product

interaction_type

A clear description of the action that was taken, e.g. "wishlist" or "like"

In the case that Froomle provides recommendations on your homepage, you should also communicate all so called integration events.

Category page

While there may not seem to be that much of a difference between a category page and the homepage, the category page already shows a clear user intent to focus on a limited selection of products. Depending on the content that is displayed on your category page, you will have to send Froomle the following events:

User visits the category page

When the user visits the category page, this is a Froomle detail_pageview with item_type group. The event should contain:

Attribute Description Value

event_type

detail_pageview

page_type

category

device_id / user_id

Information to identify the user

action_item

Identifier of this group. Can be the category name, e.g. "pants" or a leaf in a product hierarchy "(pants, jeans)"

action_item_type

Type of this group. Should be "group" or "category".

User adds a product to their cart on the category page

When the user adds a product to their cart on the category page, this is a Froomle add_to_cart. The event should contain:

Attribute Description Value

event_type

add_to_cart

page_type

category

device_id / user_id

Information to identify the user

action_item

The product that was added to the cart

action_item_type

product

amount

The amount of this product that was added to the cart, typically only one

User adds product to a wishlist/User likes a product on the category page

When the user adds a product to their wishlist, or likes it, this is a Froomle item_interaction. The event should contain:

Attribute Description Value

event_type

item_interaction

page_type

category

device_id / user_id

Information to identify the user

action_item

The product that was added to the wishlist/liked

action_item_type

product

interaction_type

A clear description of the action that was taken, e.g. "wishlist" or "like"

In the case that Froomle provides recommendations on your category page, you should also communicate all so called integration events.

Product detail page

The product detail page offers the most context: a user is showing clear interest in a specific product. Consequently, user interactions with this page are the most valuable to Froomle, both for model training and evaluation. You will have to send Froomle the following events:

User visits the product detail page

When the user visits the product detail page, this is a Froomle detail_pageview. The event should contain:

Attribute Description Value

event_type

detail_pageview

page_type

product_detail

device_id / user_id

Information to identify the user

action_item

The product that was viewed

action_item_type

product

User adds a product to their cart on the product detail page

When the user adds a product to their cart on the product detail page, this is a Froomle add_to_cart. The event should contain:

Attribute Description Value

event_type

add_to_cart

page_type

product_detail

device_id / user_id

Information to identify the user

action_item

The product that was added to the cart

action_item_type

product

amount

The amount of this product that was added to the cart, typically only one

context_item

The central product on the page, if this product was not the product added to cart, e.g. when a recommended similar product is added to cart and not the product you were originally viewing

context_item_type

product

User adds product to a wishlist/User likes a product on the product detail page

When the user adds a product to their wishlist, or likes it, this is a Froomle item_interaction. The event should contain:

Attribute Description Value

event_type

item_interaction

page_type

product_detail

device_id / user_id

Information to identify the user

action_item

The product that was added to the wishlist/liked

action_item_type

product

interaction_type

A clear description of the action that was taken, e.g. "wishlist" or "like"

context_item

The central product on the page, if this product was not the product liked or added to the wishlist, e.g. when a recommended similar product is liked and not the product you were originally viewing

context_item_type

product

Checkout page

The checkout page is one of the last steps in your conversion funnel. Therefore, it is a very important page to Froomle to be able to conduct funnel analysis and measure results on certain KPIs. You will have to send Froomle the following events:

Product checkout

When the user is ready to complete their purchase, but has not yet completed the payment, this is a Froomle item_interaction. The event should contain:

Attribute Description Value

event_type

item_interaction

page_type

checkout

device_id / user_id

Information to identify the user

action_item

The product that was checked out

action_item_type

product

interaction_type

checkout

amount

Amount of products with this product ID

User purchases a product

When the user has completed their purchase of a product, this is a Froomle purchase. The event should contain:

Attribute Description Value

event_type

purchase

page_type

checkout

device_id / user_id

Information to identify the user

action_item

The product that was purchased

action_item_type

product

amount

The amount of this product that was purchased, typically only one

Froomle wishes to receive one event for each product in a checkout or purchase. This means that if a basket contains three different products, three product events should be generated, one for each product.

Measuring your conversion funnel with Froomle events

User behavior can also be mapped to a traditional retail conversion funnel where at the top we have website visits, followed by product views, add-to-carts, checkout and finally a purchase. Below is an overview of the corresponding Froomle events for each of these retail user events.

Retail Event Froomle Event

Website visit

page_visit

Product view

detail_pageview

Add to cart

add_to_cart / remove_from_cart

Checkout

item_interaction

Purchase

purchase

Measuring recommendation performance with KPIs

While we only use some of these events to train our models, the others are equally important to successfully complete our analyzes which will give us important insights in your users' behavior. This information can then be used to further tune our ensembles and improve your recommendations.

As our customers each have their own KPIs they want to optimize, we also have to be able to track our performance for this specific KPI. Analyzing and tracking our performance is also done using the event data you provide us. All KPIs are tracked and compared internally between our own A/B test groups and externally in case you have (a) competing algorithm(s).

Froomle can be used to boost a wide variety of KPIs, below are some of the most popular KPIs between our retail customers:

Increase clickthrough rate to product detail pages

With this KPI, we optimize for:

Customers are more likely to click on products recommended by Froomle

This is a traditional metric where we measure the clickthrough rate from any page with Froomle recommendations to the product detail page of the product clicked.

To measure this KPI we require recommendation-specific events every time a recommended product is impressed and clicked. If impressions can’t be provided we can compute a pessimistic approximation using pageview events, in which we assume all recommendations were seen if the user visited the page. This is often incorrect: your recommendations may be located below the fold, or you may display them in a carousel that only exposes the first four.

At Froomle we see the biggest improvement in this KPI for our customers. As increasing the number of times people click through to products increases the number of created opportunities for a sale, this often leads to increased sales as well.

CTR (Clickthrough rate) is easy to measure as pageviews and clicks are plenty, leading to fast iteration between A/B tests.

Increase conversion from click to purchase

Customers are more likely to purchase a product recommended by Froomle

This KPI measures the conversion from a click on a recommended product to a purchase attributed to this click. At Froomle we usually define an attributed purchase as a product purchase that happened within a pre-defined window after a click on that product recommendation.

To measure this KPI we require purchase events and recommendation-specific events every time a recommended product is clicked.

While arguably more interesting than CTR, this KPI is harder to measure in a statistically significant manner as it is also dependent on purchases and not just clicks. Users drop out of the conversion funnel for various reasons unrelated to quality of recommendation: Let’s assume only 5% of session lead to a conversion. When Froomle recommendations are shown in a position that is viewed in only 10% of sessions and all sessions are equally likely to lead to a conversion, this leaves only 0.5% of sessions to analyze. Divide these over three Froomle A/B groups and maybe some more of your own, and the numbers very quickly become very small. Collecting a large enough amount of purchases can only be done if there are ample opportunities for users to click on recommendations. This can be the result of high traffic to your website, or integrating recommendations throughout your website, so that we boost the percentage of sessions with recommendations.

Increase total revenue

Customers spend more money when the webshop shows them products recommended by Froomle

Whereas the previous KPI focused on more purchases in absolute numbers, this KPI optimizes for more revenue. To measure this KPI we only require purchase events, which must include pricing information.

A significant change in this KPI can only be measured if there are enough opportunities for Froomle to present recommendations, following the same reasoning as outlined above.

Increase attributed revenue

Customers spend more money when they purchase products recommended by Froomle.

This is a more specialized version of the "total revenue" KPI. We specifically look only at purchases which are a result of a clicked recommendation earlier in the user’s session.

This KPI requires you to either have a competing implementation or a test group that does not get any Froomle recommendations as comparing gained revenue between our own groups doesn’t give you any insights in the actual revenue improvement that we generate.

To measure this KPI we require purchase events that include pricing information and click_on_recommendation events every time a recommended product is clicked.

The main adventage of this KPI as compared to the total revenue KPI is that it requires a smaller amount of purchases. Purchases attributed to a click are usually only a fraction of the total purchases made on a webshop where there is limited visibility of recommendations throughout a user’s session. While compared to total revenue the increase Froomle makes can seem relatively small, looking at attributed sales the relative improvement will be more visible and have more statistical significance.