Compartir vía


Usar la segmentación en SharePoint

Mostrar el contenido que se adapte a los segmentos de usuario que defina(por ejemplo, en función de la configuración regional, los intereses, el género o los vínculos de referencia) mediante una combinación de conjuntos de términos, el elemento web Búsqueda de contenido y las reglas de consulta en SharePoint. SharePoint proporciona los bloques de creación para adaptar el contenido que se muestra en un sitio de SharePoint, en función de determinados atributos de los usuarios finales, por ejemplo, su sexo, dónde viven, sus intereses o vínculos de referencia. Estas agrupaciones de atributos de usuario se conocen como segmentos de usuario.

En SharePoint, esta funcionalidad de segmentación de usuarios puede ser beneficiosa en muchos escenarios, como:

  • Mostrar diferentes pancartas en una página según el género del usuario final

  • Mostrar distintos de descuento ofrece según la configuración regional del usuario final

  • Mostrar diferentes artículos en una página en función del vínculo de referencia del usuario final (el sitio web que llevó al usuario final a su página).

Para implementar la segmentación de usuarios en SharePoint, hará tres cosas: crear un conjunto de términos para cada segmento de usuario, ampliar el elemento web Búsqueda de contenido para que tenga en cuenta los segmentos de usuario y, a continuación, usar reglas de consulta para realizar acciones específicas para cada segmento de usuario.

Requisitos previos

Antes de empezar a implementar la segmentación de usuario de SharePoint, asegúrese de tener instalado en el entorno de desarrollo lo siguiente:

  • SharePoint

  • Visual Studio 2012

En este artículo se supone que tiene experiencia con el desarrollo de elementos web en SharePoint. Para obtener más información sobre el desarrollo de elementos web, consulte Building Block: web parts (Bloque de creación: elementos web).

Información general sobre cómo agregar funcionalidad de segmentación de usuario a su sitio de SharePoint

La figura 1 muestra los pasos básicos para agregar funcionalidad de segmentación de usuario a su sitio de SharePoint.

Figura 1. Pasos para agregar la funcionalidad de segmentación de usuarios al sitio de SharePoint

Pasos para agregar la función de segmentación de usuarios

Crear un conjunto de términos

Un término es una palabra o una frase que se puede asociar a un elemento de SharePoint. Unconjunto de términos es una colección de términos relacionados. Para obtener más información, vea Información general sobre los metadatos administrados en SharePoint. Puede crear conjuntos de términos a través de la herramienta de administración de almacén de términos de SharePoint, o mediante programación.

Nota:

Consulte los temas siguientes para obtener instrucciones detalladas sobre cómo usar la herramienta de administración de almacén de términos para crear el conjunto de términos:>Configurar un nuevo conjunto> detérminos Crear y administrar términos en un conjunto de términos

Puede crear un conjunto de términos mediante programación mediante los tipos expuestos a través de Microsoft.SharePoint.Taxonomy . En el ejemplo de código siguiente se muestra cómo crear un objeto TermSet y obtener el NavigationTermSet. A continuación, crear objetos de Term dentro de su TermSet. Por último, confirmar estos cambios en el TermStore y cargar la TermSet a usar para la navegación.

Cada término que agregue a su término conjunto recibe un identificador único. Este identificador es la clave para que el elemento web Búsqueda de contenido tenga en cuenta los segmentos de usuario.


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();
        }
    }
}

Creación de un elemento web personalizado para la segmentación de usuarios

En Visual Studio 2012, cree un elemento web personalizado mediante la plantilla Elementos web visuales de la categoría de SharePoint. El elemento web personalizado debe heredar del objeto de elemento web Búsqueda de contenido .

Nota:

En este artículo se supone que tiene experiencia con el desarrollo de elementos web en SharePoint. Para obtener más información sobre el desarrollo de elementos web, consulte Building Block: web parts (Bloque de creación: elementos web).

Configuración de un elemento web personalizado con lógica de segmentación de usuarios

En el elemento web personalizado, puede volver a implementar el OnLoad() método o el OnInit() método para llevar a cabo la lógica personalizada. Ambos métodos son útiles para establecer o personalizar las propiedades del objeto de elemento web Búsqueda de contenido .

Ejemplo 1: Agregar segmentos de usuario masculino y femenino al sitio de SharePoint

Para agregar segmentos de usuario masculino y femenino , puede volver a implementar el OnLoad() método como se muestra en el código siguiente.


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);
}

El método AddMycustomProperties correspondiente tendría un aspecto similar al siguiente código.


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.
        }
   }
}

Ejemplo 2: Crear segmentos de usuario en función del tipo de explorador Web que cuando usa el usuario final

Para crear segmentos de usuario basados en el tipo de explorador web que usa el usuario final, para ver el sitio de SharePoint, vuelva a implementar el método OnLoad como se muestra en el código siguiente.


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);
}

El código para el método AddMycustomProperties tendría un aspecto similar al ejemplo siguiente.


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();
}

Para usar el elemento web personalizado en la página, debe cargar el elemento web en la Galería de elementos web de SharePoint.

En el SharePoint Web Part Gallery, elija Configuración del sitio y, a continuación, elija elementos Web en Galerías del Diseñador Web. En la ficha archivos, elija Cargar documento.

Agregar reglas de consulta para llevar a cabo acciones específicas que dependen del segmento de usuario

Una regla de consulta transforma las consultas para mejorar la relevancia de los resultados de búsqueda por reaccionar de manera inteligente a lo que el usuario que esté intentando encontrar. En una regla de consulta, especifique las condiciones y acciones relacionadas. Cuando una consulta cumple las condiciones en una regla de consulta, el sistema de búsqueda realiza las acciones especificadas en la regla para mejorar la relevancia de los resultados de búsqueda, como limitar los resultados o cambiar el orden en que se muestran los resultados.

Al implementar la segmentación de usuarios, utilice las reglas de consulta para definir condiciones y acciones para los segmentos definida por el usuario. Cuando un usuario final forma parte de un segmento de usuario determinado, se activará la regla de consulta y el elemento web Búsqueda de contenido mostrará contenido adaptado para ese segmento de usuario determinado.

Para crear una regla de consulta que se activará para un segmento de usuario en particular

  1. En la colección de sitios de publicación en Configuración del sitio, elija Administración de la colección de sitios y, a continuación, seleccione Reglas de consulta de búsqueda.

  2. Elija un origen de resultados y, a continuación, elija Nueva regla de consulta.

  3. Escriba un nombre de la regla en el campo Nombre de la regla. A continuación, haga clic para expandir el contexto.

  4. En la sección consulta se realiza por estos segmentos de usuario, elija uno de estos segmentos de usuario y, a continuación, haga clic en Agregar segmento de usuario.

  5. En el campo título, escriba un nombre para esta regla de consulta de segmento de usuario. Elija los términos de segmento de usuario de agregar.

  6. En el cuadro de diálogo Importar desde términos almacenar, expanda el Servicio de metadatos administrados. En Colección de sitios, busque el conjunto de términos que contiene los términos de segmentación de usuario que definió anteriormente en Crear un conjunto de términos. Seleccione el segmento de usuario para la que desea aplicar esta regla de consulta. A continuación, haga clic en Guardar.

  7. Nombre su n de segmento de usuario en el cuadro de diálogo Agregar segmento de usuario.

    Una regla de consulta se ha asignado a un segmento de usuario, que a su vez, se asigna a un término de segmento de usuario.

  8. En Condiciones de consulta, elija Quitar condición.

    Esto especifica que la consulta configurada en el elemento web Búsqueda de contenido actuará como condición de consulta.

  9. Establecer las acciones correspondientes que realizará la regla de consulta. En la sección acciones, seleccione una acción correspondiente que se va a tomar como resultado - de la regla de consulta. Puede seleccionar para Agregar resultados promocionados o Agregar un bloque de resultados.

  10. Guardar la regla de consulta.

  11. Repita los pasos del 1 al 10 para otros segmentos de usuario, dependiendo de las acciones que desea realizar.

Agregar un elemento web personalizado a la página de SharePoint y configurarlo para mostrar la regla de consulta

Debe agregar el elemento web personalizado a la página de SharePoint.

Para agregar el elemento web personalizado

  1. Navegue a una página de categorías, elija Editar página y, a continuación, elija Editar plantilla de página.

  2. Seleccione Agregar un elemento web en la sección superior de la página. A continuación, seleccione el elemento web personalizado en el menú desplegable de la esquina superior derecha del elemento web.

  3. Haga clic en Editar elemento web.

  4. Expanda la sección de configuración y, en el campo de la Tabla de resultados, seleccione SpecialTermResults.

  5. Guarde la configuración.

Vea también