Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
01cb53e
Add "Getting Started" guide, PSN comparison table, headless cheat sheet
jwittorf Nov 10, 2025
b161fce
Add isolated headless Session API page tracking and attribution
jwittorf Nov 14, 2025
9e6e54a
Drop reference to web components in implementation plan (not needed f…
jwittorf Nov 14, 2025
ed49611
Remove reference to JSON template in HTML RECs, not needed in the ove…
jwittorf Nov 14, 2025
6f8aeb8
Fix minor typo/cosmetics, add early hint on different attribution opt…
jwittorf Nov 14, 2025
4ba2aa9
Add Overview: Event Tracking and Attribution (Session API) to the menu
jwittorf Nov 14, 2025
b2bfe0b
Add high level intro videos for pre-sales, fix minor typos
jwittorf Nov 15, 2025
c08f9c9
Add note that dynamic filtering can't be done via GraphQL RECs
jwittorf Nov 19, 2025
1bfc8dd
Add video reference for Session API (and note that preview disabled a…
jwittorf Nov 19, 2025
2358ca3
Add note on dynamic filtering/viewCustomField for RECs
jwittorf Nov 19, 2025
d2e35a0
Stylistic changes and typo fixes
jwittorf Nov 20, 2025
abc25fa
Add Session API example for "Attribution via Click"
jwittorf Nov 20, 2025
39cbed5
Capitalization, mailto: for email links, stylistic changes and markdo…
jwittorf Nov 21, 2025
65ca263
Add missing bracket in response example
jwittorf Nov 21, 2025
753c6f5
Add a bit more context to JS API rendering RECs with JSON
jwittorf Nov 24, 2025
8033637
Add a bit more context to Session API
jwittorf Nov 24, 2025
2958797
Add an early warning/cross reference to headless/SPA when implementin…
jwittorf Nov 24, 2025
59b6a18
Add DOM Injection and Click Attribution to PSN introduction
jwittorf Nov 24, 2025
9055d7d
Add "have a fallback plan" to the implementation plan
jwittorf Nov 24, 2025
0ca883a
Combine headless and SPA implementation methods overview
jwittorf Nov 24, 2025
333b7c3
Nudge towards API if customer group pricing, update PSN table
jwittorf Nov 24, 2025
51fba52
Add note on option to build templates within Nosto, even with JS API …
jwittorf Nov 24, 2025
217605f
Add recommendation for API (when using customer group pricing or high…
jwittorf Nov 24, 2025
b44afcf
Add notes on customer group pricing edge cases
jwittorf Nov 24, 2025
ca6b606
Make fallback plan in implementation plan less spooky
jwittorf Nov 25, 2025
d999613
Fix minor typos and link videos instead of embedding them
jwittorf Nov 25, 2025
54884fe
Exclude getting started additions
timowestnosto Nov 28, 2025
722da9f
Merge branch 'Techdocs' into psn-guide
timowestnosto Nov 28, 2025
6838c2c
Initial plan
Copilot Dec 1, 2025
1ca914d
Address review feedback: grammar, clarity, and examples
Copilot Dec 1, 2025
c097f58
Merge pull request #339 from Nosto/copilot/sub-pr-338
timowestnosto Dec 1, 2025
7410f80
Initial plan
Copilot Dec 1, 2025
91325ac
Remove agency-focused language and update title
Copilot Dec 1, 2025
fbc321b
Merge pull request #340 from Nosto/copilot/sub-pr-338
timowestnosto Dec 1, 2025
b0bedf1
Update implementing-nosto/implement-on-your-website/advanced-implemen…
jwittorf Dec 3, 2025
6911992
Update implementing-nosto/implement-psn/README.md
jwittorf Dec 3, 2025
e8275ed
Update implementing-nosto/implement-psn/README.md
jwittorf Dec 4, 2025
2c3f1d0
Update implementing-nosto/implement-psn/README.md
jwittorf Dec 8, 2025
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 Campaigns](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 based 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 the frontend API of your platform instead of sending the price variations to Nosto. Shopify for example has the [Storefront API](https://shopify.dev/docs/api/storefront/latest) and our Shopware plugin has an [endpoint for multi-currency](https://github.com/Nosto/nosto-shopware6/blob/develop/src/Api/Controller/NostoMulticurrencyController.php) that you can extend. Please [reach out to our team](mailto:onboarding@nosto.com) or your Nosto onboarding manager for additional consultation.

* You can only change the pricing and the availabilities using this feature.
* You cannot use SKUs with this feature.
* 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
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,6 +2,8 @@

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.

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 Implementation - Essentials](./)
* [Setting up your account](setting-up-your-account.md)
* [Adding the Nosto Script](add-nosto-script.md)
Expand Down
Loading