Segmentation des utilisateurs dans SharePoint

Affichez le contenu que vous personnalisez pour les segments d’utilisateurs 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 Recherche de contenu et des règles de requête dans SharePoint. SharePoint fournit les blocs de construction permettant d’adapter 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 les liens de référence. Ces regroupements des attributs utilisateur sont appelés des segments d'utilisateur.

Dans SharePoint, cette fonctionnalité de segmentation utilisateur peut être utile dans de nombreux scénarios, tels que :

  • Affichage des bannières différentes sur une page en fonction du sexe de l'utilisateur final

  • Offre un affichage de remise différents en fonction des paramètres régionaux de l'utilisateur final

  • Affichage de différents articles sur une page en fonction du lien du référent de l’utilisateur final (le site web qui a amené l’utilisateur final à votre 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 WebPart Recherche de contenu afin qu’il prenne en compte vos segments d’utilisateurs, puis utiliser des règles de requête pour effectuer des actions spécifiques pour chaque segment d’utilisateur.

Configuration requise

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 :

  • SharePoint

  • Visual Studio 2012

Cet article suppose que vous avez de l’expérience dans le développement de composants WebPart dans SharePoint. Pour plus d’informations sur le développement de composants WebPart, consultez Bloc de construction : composants WebPart

Vue d'ensemble sur l'ajout de fonctionnalité de segmentation des utilisateurs à votre site SharePoint

La figure 1 illustre les étapes de base pour ajouter la fonctionnalité de segmentation des utilisateurs à votre site SharePoint.

Figure 1. Étapes d’ajout de la fonctionnalité de segmentation des utilisateurs à votre site SharePoint

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

Créer un ensemble de termes

Un terme est un mot ou une expression qui peut être associé à un élément dans SharePoint. Unensemble de termes est une collection de termes associés. Pour plus d’informations, voir Vue d’ensemble des métadonnées managées dans SharePoint. Vous pouvez créer des ensembles de termes par le biais de l'outil d'administration du magasin de termes de SharePoint, soit par programme.

Remarque

Consultez les rubriques suivantes pour obtenir des instructions détaillées sur l’utilisation de 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 termes

Vous pouvez créer un ensemble de termes par programmation à l’aide des types exposés via 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.

Chaque terme que vous ajoutez à votre terme set reçoit un identificateur unique. Cet identificateur est la clé pour que le composant WebPart Recherche de contenu prenne en compte vos segments d’utilisateurs.


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 utilisateurs

Dans Visual Studio 2012, créez un composant WebPart personnalisé à l’aide du modèle Visual WebPart de la catégorie SharePoint. Votre composant WebPart personnalisé doit hériter de l’objet de composant WebPart Recherche de contenu .

Remarque

Cet article suppose que vous avez de l’expérience dans le développement de composants WebPart dans SharePoint. Pour plus d’informations sur le développement de composants WebPart, consultez Bloc de construction : composants WebPart

Configurer un composant WebPart personnalisé avec une logique de segmentation utilisateur

Dans votre composant WebPart personnalisé, vous pouvez ré-implémenter la OnLoad() méthode ou la OnInit() méthode pour exécuter votre logique personnalisée. Ces deux méthodes sont utiles pour définir ou personnaliser les propriétés de l’objet de composant WebPart Recherche de contenu .

Exemple 1 : Ajouter des segments d’utilisateurs masculins et féminins à votre site SharePoint

Pour ajouter des segments d’utilisateurs masculins et féminins , vous pouvez ré-implémenter la OnLoad() méthode comme indiqué dans le code suivant.


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.


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 finaux

Pour créer des segments d’utilisateurs en fonction du type de navigateur web utilisé par l’utilisateur final, pour afficher votre site SharePoint, réapplémentez la méthode OnLoad comme indiqué dans le code suivant.


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.


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 charger le composant WebPart dans la galerie de composants WebPart SharePoint.

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.

Ajouter des règles de requête pour effectuer des actions spécifiques qui dépendent du segment d'utilisateur

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.

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, la règle de requête s’active et le composant WebPart Recherche de contenu affiche le contenu adapté à ce segment d’utilisateur particulier.

Pour créer une règle de requête qui sera activée pour un segment d'utilisateur spécifique

  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.

  2. Sélectionnez une origine des résultats, puis cliquez sur Nouvelle règle de requête.

  3. Dans le champ Nom de la règle, tapez un nom de la règle. Ensuite, cliquez pour développer le contexte.

  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.

  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.

  6. Dans la boîte de dialogue Importer à partir de termes stocker, 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 segmentation utilisateur que vous avez définis 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.

  7. Nommez votre n de segment d'utilisateur de la boîte de dialogue Ajouter un Segment utilisateur.

    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.

  8. Dans les Conditions de la requête, cliquez sur Supprimer la Condition.

    Cela spécifie que la requête configurée dans le composant WebPart Recherche de contenu fera office de condition de requête.

  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.

  10. Enregistrez votre règle de requête.

  11. Répétez les étapes 1 à 10 pour les autres segments d'utilisateur, selon les actions que vous souhaitez effectuer.

Ajouter un composant WebPart personnalisé à la page SharePoint et le configurer pour afficher la règle de requête

Vous devez ajouter votre composant WebPart personnalisé à votre page SharePoint.

Pour ajouter votre composant WebPart personnalisé

  1. Accédez à une page de catégorie, choisissez Modifier la page, puis cliquez sur Modifier le modèle de page.

  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 déroulant situé dans le coin supérieur droit du composant WebPart.

  3. Cliquez sur Modifier le composant WebPart.

  4. Développez la section paramètres, puis dans le champ de la Table de résultats, sélectionnez SpecialTermResults.

  5. Enregistrez votre configuration.

Voir aussi