To get personalization running for a site, configure access to the tracking API to post usage data and get recommendations back.
## Prerequisites
To install and configure, you need the configuration keys and credentials provided by Optimizely during onboarding of the service. [Contact Optimizely](🔗) for questions regarding the onboarding process.
See [Installing Optimizely](🔗)
See [Optimizely Content Recommendations](🔗) to implement **Content Recommendations**.
See [Optimizely Product Recommendations](🔗)
See below for NuGet packages needed for implementing **product and email recommendations**, and **personalized search results**.
## Packages
In addition to onboarding the service, install the following NuGet packages for the tracking and personalization features:
**EPiServer.Find.Personalization.** [Native integrations](🔗) search recommendations (Personalized Search & Navigation).
**EPiServer.Personalization.** Integrates [Personalization UI](🔗) (Optimizely Product Recommendations and Optimizely Email Product Recommendations) with the Optimizely top menu.
**EPiServer.Personalization.Commerce.** [Native integrations](🔗) for product recommendations.
**EPiServer.Personalization.Common.** Common base API classes.
**EPiServer.Profiles.Client.** Main package for tracking of an Optimizely site to [Optimizely Profile Store](🔗).
**EPiServer.Profiles.Client.Common.** Contains common classes used by other packages.
**EPiServer.Tracking.Cms.**Â CMS integration for tracking of data.
**EPiServer.Tracking.Commerce.**Â Commerce integration for tracking (Optimizely Product Recommendations and Optimizely Email Product Recommendations, Optimizely Profile Store, Personalized Search & Navigation).
**EPiServer.Tracking.Core.** Generic package for tracking.
**EPiServer.Tracking.PageView.** Native integration for tracking of Optimizely Content Management System (CMS) and content data to Optimizely Profile Store.

## Native integrations
Installing a _main_ native integration package also installs other packages based on dependencies. The package sets provide product-specific access to the tracking APIs:
**Product recommendations for Optimizely Commerce**
Optimizely Product Recommendations and Optimizely Email Product Recommendations tracking and recommendations: **EPiServer.Personalization.Commerce**.
Optimizely Personalization Portal integration: **EPiServer.Personalization**.
See [Installing and configuring the native integration package](🔗) for Optimizely Customized Commerce 14.
**Personalized search results for Optimizely Search & Navigation (formerly Find)**
Optimizely Personalized Search & Navigation: **EPiServer.Find.Personalization**.
See [Personalized Search & Navigation](🔗) to learn how to install and configure this native integration.
## General integration APIs
Instead of using the native integrations, you can use the Server-to-Server API and JavaScript API to call the HTTP endpoints directly to integrate with the core personalization tracking API, and send and receive tracking data and recommendations in JSON format.
[Server-to-Server API](🔗)
[JavaScript API](🔗)
## Import data
For Optimizely Customized Commerce sites, the core part of the personalization functionality consists of a catalog product feed that provides the input data, combined with a tracking script that enables Optimizely to track behavior and serve suitable recommendations. When you set up the personalization, you configure the feed and import the source data. See [Data import guides](🔗).
Recommendation algorithms learn which products to recommend.
If you see large volumes of orders per week, the system should learn quickly, and start recommending highly relevant products.
If you take limited orders, or you have an incredibly expansive product catalogue, it will take longer for the system to learn as there is less input relative to an extensive inventory.
You should import historic orders prior to launch; see [Offline and historical orders](🔗).
Additionally after launch, you can continue to send offline orders through as an XML file or as a real-time API reporting (if you can hook that up to your offline order processing system), if their volume is pertinent for your business, and the offline orders would help the algorithms to produce optimized results. See [Offline order tracking](🔗).
## Personalization API
Customize personalization with the Personalization API. This API contains header information, endpoints, and response messages for tracking and recommendations. The client calls the Personalization API that (primarily) returns product or content recommendations, to be used in various output channels. See [Personalization API](🔗).
## Profile Store and Visitor Intelligence
Using [Optimizely Profile Store](🔗) and [Optimizely Visitor Intelligence](🔗) depends on how personalization is set up for your solution.
**Optimizely Profile Store**, also known as the _Optimizely Customer Data Management Platform_, stores tracking data, which then can be processed and used for visualizing data, and segmenting visitor profiles.
**Optimizely Visitor Intelligence** is the user interface for visualizing data and segmenting profiles.
See [Visitor Intelligence and Personalization](🔗) to learn how to set up tracking clients and the profile management user interface.
## Feature-specific configurations
Below are some product/feature-specific configurations.
### Email Product Recommendations
[Contact Optimizely](🔗) to provide the mapping of email addresses to pseudonymized IDs (enabling use of **hashed IDs** when using Optimizely Campaign), and Optimizely will configure this in the Personalization Portal.
### Product Recommendations
[Contact Optimizely](🔗) to configure these features:
Allow **updated orders** to affect personalization.
**Multi-site support** for recommendations.
### Content Recommendations
[Contact Optimizely](🔗) to configure availability in [Optimizely DXP](🔗) regions - East/West US, EMEA, APAC.