HomeDev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideLegal TermsGitHubNuGetDev CommunitySubmit a ticketLog In


Describes scopes and how to use them properly.

You can use data separation by scope to separate business areas such as brands or markets, or to separate the behaviors of a tracked user. Each user can have a separate profile and history for interactions per scope, so that personalization and marketing activities are relevant to the behavior within the context of that scope.

Also, you can use a single scope for several business areas or sites when you want to create a single profile for each visitor, and you want to base personalization and other features on visitor activity in these areas.

Default scope

There is a default scope in each environment. You cannot update or remove default scope. Track events that are sent to Tracking REST API without a scope are added to the default scope.

Scope-specific data

The following data objects are stored for a specific scope:

  • Events
  • Profiles
  • Segments based on profiles query
  • Segments based on filter definitions
  • Blacklists

Create the scope before manipulating (create, update, and delete) or fetching (get, sort, search) profiles, blacklists, and segments in the scope with Profile Store API. The exception is event tracking because the specified scope is created automatically if it does not exist and the total number of scopes is below 20 when processing the event. If no other scope is set in the event object, default scope is assigned.

You can create filter definitions and re-used cross scopes.

Use the right scope in different applications

You should use the right scope when tracking events in several applications and if you want to use the events together. For example, the company has an e-commerce website and mobile application where visitors can view products, services, and make orders. The company also uses Marketing Automation (Optimizely Campaign) to reach customers and send promotions and other suggestions.

Tracking and storing data for a single scope lets you have a single profile for each identified visitor. You can segment visitors by using data coming from website, application, and Optimizely Campaign together, and personalize the content based on visitor activities across applications and channels.

Track for a scope on CMS-based website

Tracking events sent from a multi-site solution are isolated in its different sites. When you install EPiServer.Tracking.Cms, the default implementation for a scope is the SiteId for the site from which the tracking event was sent.

You can override this behavior and define an optional appsetting episerver:profiles.Scope to use instead of SiteId when you track events.

Track for a scope in Campaign

If nothing else is configured for the Optimizely Campaign client, the default scope is used when tracking.

Make sure that the Optimizely Campaign client uses a corresponding site ID as a scope when you track on a website based on Optimizely Content Management System (CMS) that uses default tracking implementation.

The scope configuration is defined per Optimizely Campaign client but if you want to change it for tracking Optimizely Campaign events, contact Optimizely support.

Manage scopes

Profile Store REST API provides several endpoints to manage scopes.


Profile Store API only supports 20 custom scopes in each environment.