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

Configure personalized content

Describes how to configure settings for personalization features when using visitor groups.

Provide access for editors to visitor groups

To access Visitor Groups in the global menu, you must be a member of the CmsAdmins or VisitorGroupAdmins access groups. Otherwise, a login page prompts you. If you want editors to add, edit, and delete visitor groups, you can provide access by adding them to VisitorGroupAdmins (CmsAdmins and CmsEditors are already defined in the configuration). The following example shows how to configure access for editors with the virtualRoles element in the <episerver.framework> section in the web.config file:

<virtualRoles replacePrincipal="true">
  <providers>
      ...
      <add name="VisitorGroupAdmins" 
           type="EPiServer.Security.MappedRole, EPiServer" 
           roles="WebEditors" 
           mode="Any" />
  </providers>
</virtualRoles>

Enable a Geolocation provider

📘

Note

As of version 11.4.0 of the Optimizely Content Management System (CMS) Visual Studio extension, new CMS projects will no longer be created with a Geolocation provider configured. The Geolocation provider that has been shipped with CMS will also be removed in a future release as the MaxMind GeoLite database it depends on has been deprecated.

You can enable geographic location-based visitor groups by configuring a Geolocation provider service. Episerver supplies a provider for the free GeoLite2 database from MaxMind through an optional NuGet package named EPiServer.Personalization. MaxMindGeolocation. You can download the GeoLite2 geolocation database from MaxMind’s website. Versions of this database are released regularly as the information is continuously updated.

The provider requires the IP lookup database (.mmdb) and the accompanying locations database (.csv) to serve an updated list of locations. Specify the location of these files in your configuration, such as:

<geolocation defaultProvider="maxmind2">
  <providers>
    <add name="maxmind2" 
         type="EPiServer.Personalization.MaxMindGeolocationProvider, EPiServer.Personalization.MaxMindGeolocation" 
         databaseFileName="path\to\GeoLite2-City.mmdb" 
         locationsFileName="path\to\GeoLite2-City-Locations-en.csv" />
  </providers>
</geolocation>

Alternatively, you can configure the provider in the ConfigureContainer method of an initialization module that implements the IConfigurableModule interface.

public void ConfigureContainer(ServiceConfigurationContext context) {
  context.Services.AddMaxMindGeolocationProvider("path\to\GeoLite2-City.mmdb", "path\to\GeoLite2-City-Locations-en.csv");
}

📘

Note

Continent and Country names are localized using the usual localization in CMS while Regions are loaded directly from the Locations file.

Geographic location provided by a CDN

CMS also provides an option for retrieving geolocation from the current request as a request header when provided by the CDN. You use this option only in cases where no dedicated Geolocation provider is configured and only supports Continent and Country locations. See Content Delivery Network (CDN) Configuration for additional information on how to enable this option.

📘

Note

Support for retrieving location from request headers was added to version 11.9.0 of EPiServer.Framework.AspNet.