Segmentation des utilisateurs dans SharePointUser segmentation in SharePoint

Affichez du contenu que vous adaptez pour les segments d'utilisateur que vous définissez — par exemple, en fonction des paramètres régionaux, des centres d’intérêt, du sexe ou des liens de référence — à l’aide d’une combinaison d’ensembles de termes, du composant WebPart de recherche de contenu et des règles de requête dans SharePoint. SharePoint fournit les blocs de construction pour personnaliser le contenu que vous affichez sur un site SharePoint, en fonction de certains attributs des utilisateurs finaux, par exemple leur sexe, leur lieu de résidence, leurs centres d’intérêt ou des liens de référence. Ces groupes d’attributs de l’utilisateur sont appelés des segments d’utilisateur.Display content you tailor for user segments you define—for example, based on locale, interests, gender, or referral links—by using a combination of term sets, the Content Search web part, and query rules in SharePoint. SharePoint provides the building blocks to tailor content you show on a SharePoint site, depending on certain attributes of end-users, for example their gender, where they live, their interests, or referral links. These groupings of user attributes are known as user segments.

Dans SharePoint, cette fonctionnalité de segmentation des utilisateurs peut être utile dans de nombreux scénarios, tels que :In SharePoint 2013, this user segmentation functionality can be beneficial in many scenarios, such as:

  • Affichage de différentes bannières sur une page en fonction du sexe de l'utilisateur finalDisplaying different banners on a page depending on the end-user's gender

  • Offrir différents offres de remise en fonction des paramètres régionaux de l'utilisateur finalDisplaying different discount offers depending on the end-user's locale

  • Affichage de différents articles sur une page en fonction du lien de point d'accès de l'utilisateur final (le site web qui a amené l'utilisateur final à votre page).Displaying different articles on a page depending on the end-user's referrer link (the web site that brought the end-user to your page).

Pour implémenter la segmentation des utilisateurs dans SharePoint, vous allez effectuer trois opérations : créer un ensemble de termes pour chaque segment d'utilisateur, étendre le composant recherche de contenu WebPart pour le sensibiliser à vos segments d'utilisateur et ensuite utiliser des règles de requête pour effectuer des actions spécifiques pour chaque segment d'utilisateur.To implement user segmentation in SharePoint, you'll do three things: create a term set for each user segment, extend the Content Search Web Part to make it aware of your user segments, and then use query rules to perform specific actions for each user segment.

Conditions préalablesPrerequisites

Avant de commencer l'implémentation de la segmentation des utilisateurs dans SharePoint, vous devez installer les éléments suivants dans votre environnement de développement :Before you get started implementing user segmentation in SharePoint, be sure to have the following installed in your development environment:

  • SharePointSharePoint

  • Visual Studio 2012Visual Studio 2012

Cet article présume que vous disposez d’expérience de développement de composants WebPart dans SharePoint. Pour plus d’informations sur le développement de composants WebPart, reportez-vous à Bloc de construction : composants WebPartThis article assumes that you have experience with developing web parts in SharePoint. For more information on developing web parts, refer to Building Block: web parts

Vue d'ensemble sur l'ajout de fonctionnalité de segmentation des utilisateurs à votre site SharePointOverview on adding user segmentation functionality to your SharePoint site

La figure 1 illustre les étapes de base pour ajouter la fonctionnalité de segmentation des utilisateurs à votre site SharePoint.Figure 1 shows the basic steps to add user segmentation functionality to your SharePoint site.

Figure 1. Procédure pour ajouter une fonctionnalité de segmentation des utilisateurs à votre site SharePointFigure 1. Steps to add user segmentation functionality to your SharePoint site

Étapes de l'ajout d'une fonctionnalité de segmentation des utilisateurs

Créer un ensemble de termesCreate a term set

Un terme est un mot ou une expression que vous pouvez associer à un élément dans SharePoint. Un ensemble de termes est une collection de termes associés. Pour plus d’informations, voir Vue d’ensemble des métadonnées gérées dans SharePoint. Vous pouvez créer des ensembles de termes par le biais de l’outil de gestion SharePoint de magasin de termes, soit par programmation.A term is a word or a phrase that can be associated with an item in SharePoint. Aterm set is a collection of related terms. For more information, see Overview of managed metadata in SharePoint. You can create term sets either through the SharePoint Term Store Management Tool, or programmatically.

Note

Consultez les rubriques suivantes pour obtenir des instructions détaillées sur la façon d'utiliser l'outil de gestion du magasin de termes pour créer votre ensemble de termes : Configurer un nouvel ensemble de termes> Créer et gérer des termes dans un ensemble de termesSee the following topics for detailed instructions on how to use the Term Store Management Tool to create your term set:> Set up a new term set> Create and manage terms in a term set

Vous pouvez créer un terme défini par programmation en utilisant les types exposés par le biais de Microsoft.SharePoint.Taxonomy . L'exemple de code suivant montre comment créer un objet TermSet et obtenir l'ensemble NavigationTermSet. Ensuite, vous créez les objets Term au sein de votre TermSet. Enfin, validez ces modifications dans le TermStore et charger le TermSet à utiliser pour la navigation.You can create a term set programmatically by using the types exposed via Microsoft.SharePoint.Taxonomy . The following code example shows how to create a TermSet object and obtain the NavigationTermSet. Next, you create Term objects within your TermSet. Finally, commit these changes to the TermStore and load the TermSet to use for navigation.

Chaque terme que vous ajoutez à votre ensemble de termes reçoit un identifiant unique. Cet identifiant est la clé pour faire connaître aux composants ContentBySearchWebPart la présence de vos segments d'utilisateur.Each term you add to your term set receives a unique identifier. This identifier is the key to making the ContentBySearchWebPart aware of your user segments.


static void CreateNavigationTermSet(string siteUrl)
{
    using (SPSite site = new SPSite(siteUrl))
    {
        using (SPWeb web = site.OpenWeb())
        {
            TaxonomySession taxonomySession = new TaxonomySession(site);
            taxonomySession.UpdateCache();
            TermStore termStore = taxonomySession.DefaultSiteCollectionTermStore;

            // Create a TermSet object in a default site collection term group.
            Group siteCollectionGroup = termStore.GetSiteCollectionGroup(site, createIfMissing: true);
            TermSet termSet = siteCollectionGroup.CreateTermSet("Navigation Demo", Guid.NewGuid(), lcid: 1033);

            // Obtain navigation term set.
            NavigationTermSet navigationTermSet = NavigationTermSet.GetAsResolvedByWeb(termSet, web, "GlobalNavigationTaxonomyProvider");

            // Create a term that points to a SharePoint page set at the term set level of hierarchy.
            NavigationTerm term1 = navigationTermSet.CreateTerm("Term 1", NavigationLinkType.FriendlyUrl, Guid.NewGuid());

            // Create a term that points to an already existing URL outside of SharePoint.
            NavigationTerm term2 = navigationTermSet.CreateTerm("Term 2", NavigationLinkType.SimpleLink, Guid.NewGuid());
            term2.SimpleLinkUrl = "http://www.bing.com/";

            // Create a term that points to an existing SharePoint page.
            NavigationTerm term3 = navigationTermSet.CreateTerm("Term 3", NavigationLinkType.FriendlyUrl, Guid.NewGuid());

            // Save all changes to the term store.
            termStore.CommitAll();
        }
    }
}

Créer un composant WebPart personnalisé pour la segmentation des utilisateursCreate a custom Web Part for user segmentation

Dans Visual Studio 2012, créez un composant WebPart personnalisé en utilisant le modèle de composants Visual web à partir de la catégorie SharePoint. Votre composant WebPart personnalisé doit hériter de l’objet ContentBySearchWebPart .In Visual Studio 2012, create a custom web part by using the Visual web parts template from the SharePoint category. Your custom web part must inherit from the ContentBySearchWebPart object.

Note

Cet article présume que vous disposez d’expérience de développement de composants WebPart dans SharePoint. Pour plus d’informations sur le développement de composants WebPart, reportez-vous à Bloc de construction : composants WebPartThis article assumes that you have experience with developing web parts in SharePoint. For more information on developing web parts, refer to Building Block: web parts

Configurer un composant WebPart personnalisé avec le code de la segmentation des utilisateursConfigure a custom Web Part with user segmentation logic

Dans votre composant WebPart personnalisé, vous pouvez implémenter à nouveau la méthode OnLoad() ou la méthode OnInit() pour rédiger votre code personnalisé. Ces deux méthodes sont utiles pour définir ou personnaliser les propriétés de l'objet ContentBySearchWebPart.In your custom web part, you can re-implement either the OnLoad() method or the OnInit() method to carry out your custom logic. Both these methods are useful to set or customize properties of the ContentBySearchWebPart object.

Exemple 1 : Ajouter des segments d'utilisateur homme et femme à votre site SharePointExample 1: Add Male and Female user segments to your SharePoint Server 2013 site

Pour ajouter des segments d'utilisateur Male et Female, vous pouvez ré-implémenter la méthode OnLoad() , comme illustré dans le code suivant.To add Male and Female user segments, you can re-implement the OnLoad() method as shown in the following code.


protected override void OnLoad(EventArgs e)
{
    if (this.AppManager != null)
    {
        if (this.AppManager.QueryGroups.ContainsKey(this.QueryGroupName) && this.AppManager.QueryGroups[this.QueryGroupName].DataProvider != null)
        {
            this.AppManager.QueryGroups[this.QueryGroupName].DataProvider.BeforeSerializeToClient += new
                BeforeSerializeToClientEventHandler(AddMycustomProperties);
        }
    }
    base.OnLoad(e);
}

La méthode AddMycustomProperties correspondante se présente comme le code suivant.The corresponding AddMycustomProperties method would look like the following code.


private void AddMycustomProperties(object sender, BeforeSerializeToClientEventArgs e)
{
    DataProviderScriptWebPart dp = sender as DataProviderScriptWebPart;
    string gender = (string)Page.Session["DataProvider.Gender"];
    // Depends on what your DataProvider is: Facebook, LinkedIn, etc.

    if (dp != null && gender != null)
    {   try
        {
            // Set property to male or female GUID.
            if (gender.CompareTo("female") == 0)
            {
                dp.Properties["TermSetName"] = new String[] { "TermUniqueIdentifier" };
                // E.g. 47ba9139-a4c5-4ff0-8f9a-2864be32da92
            }
            else if(gender.CompareTo("male") == 0)
            {
                dp.Properties["UserSegmentTerms"] = new String[] { "TermUniqueIdentifier" };
                // E.g. f5bf2195-2170-4b11-a018-a688a285e579
            }
        }
        catch (ArgumentException exp)
        {
             // Do something with the exception.
        }
   }
}

Exemple 2: Créer des segments d'utilisateur en fonction du type de navigateur Web que votre utilisateur final utilise quandExample 2: Create user segments based on the type of Web browser your end-user is using when

Pour créer des segments d'utilisateur en fonction du type de navigateur web qu'utilise l'utilisateur final, pour afficher votre site SharePoint Server, ré-implémenter la méthode OnLoad comme indiqué dans le code suivant.To create user segments based on the type of web browser the end-user is using, to view your SharePoint Server 2013 site, re-implement the OnLoad method as shown in the following code.


protected override void OnLoad(EventArgs e)
{
    if (this.AppManager != null)
    {
        if (this.AppManager.QueryGroups.ContainsKey(this.QueryGroupName) && this.AppManager.QueryGroups[this.QueryGroupName].DataProvider != null)
        {
             this.AppManager.QueryGroups[this.QueryGroupName].DataProvider.BeforeSerializeToClient += new 
                 BeforeSerializeToClientEventHandler(AddMycustomProperties);
        }
    }
    base.OnLoad(e);
}

Le code de la méthode AddMycustomProperties se présente comme dans l'exemple suivant.The code for the AddMycustomProperties method would look like the following example.


private void AddMycustomProperties(object sender, BeforeSerializeToClientEventArgs e)
{
    DataProviderScriptWebPart dataProvider = sender as DataProviderScriptWebPart;
    SPSite site = SPContext.Current.Site;

    TaxonomySession session = new TaxonomySession(site);
    TermStore defaultSiteCollectionStore = session.DefaultSiteCollectionTermStore;
    List<string> userSegmentTerms = new List<string>();

    var userAgentparts = Page.Request.UserAgent.Split(new char[] { ';', '(', ')' });

    foreach (var part in userAgentparts)
    {
        var entry = part.Trim();
        var terms = termStore.GetTermsWithCustomProperty("UserAgent", entry, false);

            if (terms.Count > 0)
            {
                userSegmentTerms.Add(terms[0].Id.ToString());
            }
    }
    dataProvider.Properties["UserSegmentTerms"] = userSegmentTerms.ToArray();
}

Pour pouvoir utiliser votre composant WebPart personnalisé dans votre page, vous devez télécharger le composant WebPart à la Bibliothèque SharePoint Web Part.In order to use your custom Web Part in your page, you need to upload the Web Part to the SharePoint Web Part Gallery.

Dans la SharePoint Web Part Gallery, choisissez Paramètres du Site et puis cliquez sur Composants WebPart sous Galeries du Concepteur Web. Sous l'onglet Fichiers, cliquez sur Télécharger un Document.In the SharePoint Web Part Gallery, choose Site Settings, and then choose Web parts under Web Designer Galleries. On the Files tab, choose Upload Document.

Ajouter des règles de requête pour effectuer des actions spécifiques qui dépendent du segment d'utilisateurAdd query rules to carry out specific actions that depend on the user segment

Une règle de requête transforme les requêtes afin d'améliorer la pertinence des résultats de recherche en réagissant intelligemment à ce que l'utilisateur tente de trouver. Dans une règle de requête, vous spécifiez les conditions et actions en corrélation. Lorsqu'une requête respecte les conditions dans une règle de requête, le système de recherche effectue les actions spécifiées dans la règle afin d'améliorer la pertinence des résultats de recherche, tels que la réduction du nombre de résultats ou la modification de l'ordre dans lequel les résultats sont affichés.A query rule transforms queries to improve the relevance of search results by reacting intelligently to what the user might be trying to find. In a query rule, you specify conditions and correlated actions. When a query meets the conditions in a query rule, the search system performs the actions specified in the rule to improve the relevance of the search results, such as narrowing down the results or changing the order in which results are displayed.

Lorsque vous implémentez la segmentation des utilisateurs, des règles de requête vous permettent de définir les conditions et actions pour les segments d'utilisateur définis. Lorsqu'un utilisateur final fait partie d'un segment d'utilisateur particulier, la règle de recherche s'active et le composant ContentBySearchWebPart affichera le contenu qui est adapté pour ce segment d'utilisateur particulier.When implementing user segmentation, you use query rules to define conditions and actions for the defined user segments. When an end-user is part of a particular user segment, the query rule will activate and the ContentBySearchWebPart will display content that is tailored for that particular user segment.

Pour créer une règle de requête qui sera activée pour un segment d'utilisateur spécifiqueTo create a query rule that will activate for a particular user segment

  1. Dans votre collection de sites de publication dans Paramètres du Site, cliquez sur Administration de la Collection de sites, puis cliquez sur Règles de requête de recherche.In your publishing site collection in Site Settings, choose Site Collection Administration, and then choose Search Query Rules.

  2. Sélectionnez une origine des résultats, puis cliquez sur Nouvelle règle de requête.Choose a result source, and then choose New Query Rule.

  3. Dans le champ Nom de la règle, tapez un nom de la règle. Ensuite, cliquez pour développer le Contexte.Type a rule name in the Rule Name field. Then, click to expand Context.

  4. Sous la section Cette requête est effectuée par ces segments d'utilisateurs, choisissez L'un de ces segments d'utilisateur, puis cliquez sur Ajouter un segment d'utilisateur.Under the Query is performed by these user segments section, choose One of these user segments, and then click Add User Segment.

  5. Dans le champ Titre, tapez un nom pour cette règle de requête de segment d'utilisateur. Choisissez Ajouter un terme de segment d'utilisateur.In the Title field, type a name for this user segment query rule. Choose Add user segment term.

  6. Dans la boîte de dialogue Importer à partir du magasin de termes, développez le Service de métadonnées gérées. Sous Collection de sites, recherchez l'ensemble de termes qui contient les termes de la segmentation des utilisateurs que vous avez défini précédemment dans Créer un ensemble de termes. Sélectionnez le segment d'utilisateur pour lequel vous voulez appliquer cette règle de requête. Ensuite, cliquez sur Enregistrer.In the Import from term store dialog box, expand the Managed Metadata Service. Under Site Collection, locate the term set that holds the user segmentation terms that you previously defined in Create a term set. Select the user segment for which you want to apply this query rule. Then, click Save.

  7. Nommez votre segment d'utilisateur dans la boîte de dialogue Ajouter un segment utilisateur.Name your user segment n the Add User Segment dialog box.

    Vous avez désormais associé une règle de requête à un segment d'utilisateur, qui à son tour est associé à un terme de segment d'utilisateur.You have now mapped a query rule to a user segment, which in turn is mapped to a user segment term.

  8. Dans Conditions de la requête, cliquez sur Supprimer la condition.Under Query Conditions, choose Remove Condition.

    Ceci spécifie que la requête configurée dans le composant ContentBySearchWebPart agit en tant que condition de la requête.This specifies that the query configured in the ContentBySearchWebPart will act as the query condition.

  9. Définissez les actions correspondantes que votre règle de requête effectuera. Sous la section Actions, sélectionnez une action correspondante que vous souhaitez effectuer suite à la réalisation de votre règle de requête. Vous pouvez choisir d'Ajouter les résultats promus ou Ajouter un bloc de résultats.Set the corresponding actions that your query rule will perform. Under the Actions section, select a corresponding action that you want to take as a result of -your query rule. You can select to either Add Promoted Result or Add a Result Block.

  10. Enregistrez votre règle de requête.Save your query rule.

  11. Répétez les étapes 1 à 10 pour les autres segments d'utilisateur, selon les actions que vous souhaitez effectuer.Repeat steps 1 through 10 for your other user segments, depending on the actions you want to perform.

Ajouter un composant WebPart personnalisé à la page SharePoint et le configurer pour afficher la règle de requêteAdd a custom Web Part to the SharePoint page and configure it to show the query rule

Vous devez ajouter votre composant WebPart personnalisé à votre page SharePoint.You need to add your custom Web Part to your SharePoint page.

Pour ajouter votre composant WebPart personnaliséTo add your custom Web Part

  1. Naviguez vers une page de catégorie, choisissez Modifier la page, et cliquez sur Modifier le modèle de page.Navigate to a category page, choose Edit page, and then choose Edit page template.

  2. Sélectionnez Ajouter un composant WebPart dans la section supérieure de la page. Ensuite, sélectionnez votre composant WebPart personnalisé dans le menu de liste déroulante dans le coin supérieur droit du composant WebPart.Select Add a web part in the top section of the page. Then, select your custom web part from the drop-down menu in the upper right corner of the web part.

  3. Cliquez sur Modifier le composant WebPart.Click Edit Web Part.

  4. Développez la section paramètres, puis dans le champ Table de résultats, sélectionnez SpecialTermResults.Expand the Settings section, and in the Result Table field, choose SpecialTermResults.

  5. Enregistrez votre configuration.Save your configuration.

Voir aussiSee also