Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file not shown.
Binary file not shown.
1 change: 1 addition & 0 deletions SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
* [FAQ](implementing-nosto/implement-on-your-website/faq.md)
* [Implement on native mobile](implementing-nosto/implement-on-native-mobile.md)
* [Implement on a physical store](implementing-nosto/implement-on-physical-store.md)
* [Implement Personalized Campaign Widgets](implementing-nosto/implement-psn/README.md)
* [Implement Search & Categories](implementing-nosto/implement-search/README.md)
* [Using Search Templates Starter](implementing-nosto/implement-search/using-search-templates-starter/README.md)
* [Getting started](implementing-nosto/implement-search/using-search-templates-starter/getting-started.md)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ When a recommended product is viewed, the `result_id` from the recommendation re
"result_type": "REAL",
"title": "Most Popular Right Now",
"div_id": "nosto-frontpage-1" // requested placement id
}
}
}
```
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Tracking Events

Instead of using [HTML tagging or tagging providers](../../../implementing-nosto/implement-on-your-website/manual-implementation/README.md), you will implement the same pattern for event tracking on all page types. Nosto needs to know what is happening during a user's session, mainly page views (like PDPs or PLPs), "add to cart" events and conversions.

Regardless if an event was influenced by a Nosto personalization module (product recommendation/bundle or on-site content like a personalized banner) or not, **the fundamental call you make is always the same and varies on the page type**. When a shopper visits the homepage, you will call `viewFrontPage()`, when a search was made for "black shoes" you will call `.viewSearch("black shoes")` and so on. **All page types are listed with examples below**.

## Upon viewing the homepage

When viewing a homepage, there's no context to be provided, so invoking the `viewFrontPage` will suffice.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,15 @@

In this article, you will learn how to implement multi-variants in Nosto. When the implementation is complete, you will be able to display different products at different prices to different customer groups.

**Note:** You can only change the pricing and the availabilities using this feature.
## Edge cases

**Note:** You cannot use SKUs with this feature at the time of writing.
If either of the following cases applies to you, we recommend either an API implementation or fetching the prices via an frontend API (instead of sending the price variations to Nosto).

* You can only change the pricing and the availabilities using this feature.
* You cannot use SKUs with this feature at the time of writing.
* You cannot use Nosto multi currency with this feature.

## Ideal use cases

You will need to implement the multi-variate tagging if you have any such scenarios:

Expand Down Expand Up @@ -99,10 +105,6 @@ or via DOM tagging

For example, on the site of a retailer, who has different prices for normal (GENERAL) and loyal (LOYAL) customers, if the customer is a logged in customer and is a known loyalty customer, the `nosto_variation` element should show `LOYAL`. If the customer logs out or a new customer visits, and there is no way to identify him as a loyal customer, the `nosto_variation` element should show `GENERAL`.

### Integration with search/category merchandising (universal)

{% include "../../../.gitbook/includes/search-variation-implementation.md" %}

## Enabling multi-variants from the admin

Once the tagging changes have been done and the API implemented, you need to configure and enable it from your admin panel under **Settings** > **Other** > **Multi-Currency**. Toggle the **Use Multiple Currencies** switch on and **Use Exchange Rates** switch off and set the variation ID of the primary currency via the input field and toggle on the exchange rates switch.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

By default Nosto tracks campaign attribution without additional url parameters. The tracking happens by registering click listeners to the campaign elements that detect product url clicks and associate them with the attribution metadata of the rendered campaign. The pair of url and campaign attribution is stored in the local storage of the Browser.

In most cases this will work out of the box, but in certain scenarious adjustments need to be made.
In most cases this will work out of the box, but in certain scenarios adjustments need to be made. For a comprehensive overview, please read our [personalization attribution guide](../../implement-psn/README.md#attribution).

## Product url redirects

Expand All @@ -27,7 +27,7 @@ Check out the API documentation for [defaultSession](https://nosto.github.io/nos

Parameterless attribution became the default attribution mechanism on May 26th 2025. If your setup relies on the legacy nosto parameters being present you can enable the legacy behavior in your main account settings page.

## JSON Rendering Attribution
## JS API based usage: JSON Rendering Attribution

### Attribution in custom element based Nosto campaign rendeirng

Expand All @@ -46,7 +46,9 @@ export class NostoRenderer extends HTMLElement {
.load()
if (results.recommendations[placement]) {
const rec = results.recommendations[placement]
// TODO render results
const container = document.getElementById(placement)
// TODO: Define your own method to render products
renderProductsToContainer(container, recommendation)
api.attributeProductClicksInCampaign(this, rec)
}
}
Expand Down Expand Up @@ -74,7 +76,8 @@ const response = await api
const recommendation = response.recommendations[placementId]
const container = document.getElementById(placementId)
if (recommendation && container) {
renderProductsToContainer(containerElement, recommendation)
// TODO: Define your own method to render products
renderProductsToContainer(container, recommendation)
api.attributeProductClicksInCampaign(container, recommendation)
}
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

To implement Nosto manually you will need to go through the following steps to ensure that the store data is captured by Nosto. The following steps will allow Nosto to gather product, cart and order data, and analyze how individual customers are interacting with this data. The implementation steps listed here are necessary for both functionalities based on crowd logic and 1-1 behavioral personalization.

* [Manual Implementation - Essentials](./)
If you are running a headless frontend or SPA (Single Page Application), you will follow the same approach using the Nosto Session API. Please read more on the [introduction](../../../apis/frontend/implementation-guide-session-api/README.md), [managing the session](../../../apis/frontend/implementation-guide-session-api/spa-basics-managing-sessions.md) and [event tracking](../../../apis/frontend/implementation-guide-session-api/spa-basics-tracking-events.md) (instead of page tagging).

* [Manual Tagging - Essentials](./)
* [Setting up your account](setting-up-your-account.md)
* [Adding the Nosto Script](add-nosto-script.md)
* [Adding the Cart Tagging](cart-tagging.md)
Expand Down
Loading