Segmentation des utilisateurs dans SharePointUser segmentation in SharePoint

Affichage du contenu vous adaptez pour utilisateur segments vous définissez — par exemple, en fonction des liaisons de paramètres régionaux, centres d’intérêt, le sexe ou référence — à l’aide d’une combinaison d’ensembles de termes, le composant WebPart de recherche de contenu et les règles de requête dans SharePoint.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 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 emplacement, leurs centres d’intérêt ou des liens de référence.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. Ces groupes d’attributs de l’utilisateur sont appelés des segments d’utilisateur.These groupings of user attributes are known as user segments.

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

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

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

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

Pour implémenter la segmentation des utilisateurs dans SharePoint, vous devez effectuer trois opérations : créer un ensemble de termes pour chaque segment d’utilisateur, étendre le composant WebPart de recherche de contenu pour informés de vos segments d’utilisateur, puis utiliser les 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 suppose que vous disposez d’expérience de développement de composants WebPart dans SharePoint.This article assumes that you have experience with developing web parts in SharePoint. Pour plus d’informations sur le développement de composants WebPart, reportez-vous à bloc de construction : composants WebPartFor 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.

La 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 qui peut être associée à un élément dans SharePoint.A term is a word or a phrase that can be associated with an item in SharePoint. Aterm set est un ensemble de termes associés.Aterm set is a collection of related terms. Pour plus d’informations, voir vue d’ensemble des métadonnées gérées dans SharePoint.For more information, see Overview of managed metadata in SharePoint. Vous pouvez créer des ensembles de termes par le biais de l’outil de gestion SharePoint de magasin de termes, soit par programme.You can create term sets either through the SharePoint Term Store Management Tool, or programmatically.

Note

[!REMARQUE] 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 programme 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 le NavigationTermSet. Ensuite, vous créez les objets Term au sein de votre TermSet. Enfin, valider ces modifications dans le TermStore et charger la 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 terme set reçoit un identificateur unique. Cet identificateur est la clé pour sensibiliser les ContentBySearchWebPart des 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.In Visual Studio 2012, create a custom web part by using the Visual web parts template from the SharePoint category. Votre composant WebPart personnalisé doit hériter de l’objet ContentBySearchWebPart .Your custom web part must inherit from the ContentBySearchWebPart object.

Note

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

Configurer un composant WebPart personnalisé avec une logique de segmentation utilisateurConfigure a custom web part with user segmentation logic

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

L’exemple 1 : Ajouter des segments d’utilisateur homme et femme à votre site SharePointExample 1: Add Male and Female user segments to your SharePoint 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.
        }
   }
}

L'exemple 2: Créer des segments d'utilisateur en fonction du type de navigateur Web que quand est l'aide de vos utilisateurs finauxExample 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, 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 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 utiliser votre composant WebPart personnalisé dans votre page, vous devez télécharger le composant WebPart dans la Galerie de composants WebPart SharePoint.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

Les transformations de requêtes afin d'améliorer la pertinence des résultats de recherche en réagissant intelligemment à ce que l'utilisateur tente de trouver une règle de requête. 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 les résultats de restreindre les résultats ou 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 permet 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, permet d'activer la règle de requête et la 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 requête est effectuée par ces segments d'utilisateurs, choisissez une de ces segments d'utilisateur, puis cliquez sur Ajouter un Segment 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 utilisateur. Choisissez les termes de segment d'utilisateur Ajouter.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 de termes stocker, développez le Service de métadonnées gérées. Sous la 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 n de segment d'utilisateur de 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 mappé à 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 les Conditions de la requête, cliquez sur Supprimer la Condition.Under Query Conditions, choose Remove Condition.

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

  9. Définissez les actions correspondantes qui exécute votre règle de requête. Sous la section Actions, sélectionnez une action correspondante que vous souhaitez prendre à la suite - 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. Accédez à une page de catégorie, choisissez Modifier la page, puis 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.Select Add a web part in the top section of the page. Ensuite, sélectionnez votre composant WebPart personnalisé dans le menu de liste déroulante dans le coin supérieur droit du composant WebPart.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 de la 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