Segmentation des utilisateurs dans SharePoint

Affichez le contenu que vous adaptez aux segments d’utilisateur que vous définissez(par exemple, en fonction des paramètres régionaux, des intérêts, du sexe ou des liens de référence) à l’aide d’une combinaison d’ensembles de termes, du partie Web De recherche de contenu et de 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 vie, leurs intérêts ou des liens de référence. Ces regroupements des attributs utilisateur sont appelés des segments d'utilisateur.

Dans SharePoint, cette fonctionnalité de segmentation des utilisateurs 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 de référence de l’utilisateur final (le site web qui a conduit l’utilisateur final à votre 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 service Web De recherche de contenu pour le rendre informé de vos segments d’utilisateurs, puis utiliser des règles de requête pour effectuer des actions spécifiques pour chaque segment d’utilisateur.

Conditions préalables

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 Web SharePoint. Pour plus d’informations sur le développement de composants Web Parts, voir Building Block: Web Parts

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.

La figure 1. Procédure pour ajouter une 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 géré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.

Notes

[!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 termes

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.

Chaque terme que vous ajoutez à votre terme set reçoit un identificateur unique. Cet identificateur est la clé pour que le partie Web De recherche de contenu soit au courant de vos segments d’utilisateur.


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 élément Web Part personnalisé pour la segmentation des utilisateurs

Dans Visual Studio 2012, créez un composant Web Part personnalisé à l’aide du modèle de composants Visual Web Parts de la SharePoint catégorie. Votre partie Web Part personnalisée doit hériter de l’objet de contenu de recherche de contenu.

Notes

Cet article suppose que vous avez de l’expérience dans le développement de composants Web SharePoint. Pour plus d’informations sur le développement de composants Web Parts, voir Building Block: Web Parts

Configurer un élément Web Part personnalisé avec la logique de segmentation des utilisateurs

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

Exemple 1 : ajouter des segments d’utilisateurs d’homme et de femme à votre site SharePoint site

Pour ajouter des segments d’utilisateurs homme et femme, vous pouvez ré-implémenter 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);
}

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’utilisateur en fonction du type de navigateur web utilisé par l’utilisateur final, pour afficher votre site SharePoint, ré-implé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 partie Web Part personnalisée dans votre page, vous devez télécharger le contenu dans la galerie de SharePoint Web Part.

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 volet Web De 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 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.

  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 partie Web De recherche de contenu agit en tant que 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 élément Web Part personnalisé à la page SharePoint et le configurer pour afficher la règle de requête

Vous devez ajouter votre partie Web à votre page SharePoint personnalisée.

Pour ajouter votre partie Web Personnalisée

  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 élément Web Part dans la section supérieure de la page. Ensuite, sélectionnez votre partie Web personnalisée dans le menu déroulant dans le coin supérieur droit du volet Web.

  3. Cliquez sur Modifier le volet Web.

  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