HomeDev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunitySubmit a ticketLog In
GitHubNuGetDev CommunitySubmit a ticket

Recommendations

Describes personalize recommendations in Optimizely Commerce (PaaS).

There are different ways of applying recommendations in Optimizely. You can either use the simple built-in visitor group functionality, or you can add the sophisticated recommendation capabilities that are included with Optimizely Product Recommendations.

By applying machine learning and statistical analysis to behavioral data, the platform uses visitor behavior to create and optimize individual content and product views autonomously.

The native integration for Commerce (PaaS) is part of Optimizely Product Recommendations. You also need an Optimizely Product Recommendations environment to receive tracking data and serve recommendations. See Recommendations and Project recommendations for how to get started with Product Recommendations.

Key integration components for recommendations

Recommendations has key components that you should not alter. If you need to alter the following components, co-ordinate with Optimizely.

User tracking

Changes to user tracking needs can result in loss of behavior and core functionality, such as if you switched from tracking plain email addresses to pseudonymized user IDs or vice versa.

Recommendations  – To prevent user behavior from being lost, you need to send Optimizely an up-to-date mapping between email addresses and pseudonymized user IDs. This only needs to be provided once so that Optimizely Recommendations can replace existing customer email addresses with its corresponding pseudonymized user ID.

Mail  – You need to continually provide your ESP (Email Service Provider) an up-to-date mapping between email addresses and pseudonymized user IDs. Your ESP needs to create a new placeholder (mail merge variable) that represents the pseudonymized user ID. You then replace the email address placeholder from all your Mail campaigns with this new placeholder.

Triggers  – Your ESP must handle pseudonymized user IDs. Currently, in Triggers, this functionality is provided only by Optimizely Campaign. Alternatively, you need to advise your ESP to provide an API extension that lets Optimizely call methods that accept the pseudonymized user ID instead of an email address. Also, provide and maintain a mapping between pseudonymized user ID and customer email address that your ESP can use to lookup, to send the email to the appropriate customer based on their pseudonymized user ID.

Promote   – If provided, Recommendations can use the visitor's IP address within their session to do a geolocation lookup to identify the approximate location of the visitor for a personalized online experience. IP addresses if provided, will no longer be stored, so they cannot be used for analytics and reporting.

When you provide and test a user mapping, coordinate with Optimizely to schedule a deployment and receive further instructions.

Product reference

The product reference (productId) is an important connector between your data and the Optimizely recommendations engine; changes to this identifier break a connection between collected behavior and your product catalog. To prevent this connection from breaking, inform Optimizely of any plans to change the format of product references in your feed and tracking implementation. Provide a mapping from the old to the new product references and coordinate a deployment with Optimizely.

Known limitations

If Optimizely ServiceApi and Optimizely Recommendations are installed in parallel, this imposes the following limitations on recommendation functionality:

  • Client-side tracking is not supported, and user changes cannot be detected.
  • Although the catalog feed export works without limitation, the utility action for locally downloading the latest feed (/episerverapi/downloadcatalogfeed) requires token authentication. For information, see Install and configure - Service API  > Configuring OWIN startup.

To avoid these limitations, install the Service API in a separate application.

Related blog posts