Usar la segmentación en SharePoint

Nota:

Importante (actualización moderna de SharePoint): En este artículo se describe un enfoque clásico de SharePoint Server mediante elementos web de búsqueda de contenido, reglas de consulta y código personalizado del lado servidor.

En SharePoint moderno (SharePoint Online y SharePoint Server Edición de Suscripción), este enfoque está en desuso o no se recomienda.

Ahora se pueden lograr resultados similares mediante la segmentación de audiencia, los grupos de Microsoft Entra ID, la búsqueda de Microsoft y los elementos web modernos.

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 banners en una página en función del sexo del usuario final
  • Mostrar ofertas de descuento diferentes en función de 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 sea consciente de 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 en el desarrollo de elementos web en SharePoint. Para obtener más información sobre el desarrollo de elementos web, vea 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.

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

Crear un conjunto de términos

Un término es una palabra o una frase que se puede asociar a un elemento de SharePoint. Un conjunto 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 artículos 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:

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 TermSet objeto y obtener .NavigationTermSet A continuación, se crean Term objetos dentro de TermSet. Por último, confirme estos cambios en TermStore y cargue para usarlos para la TermSet 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 en el desarrollo de elementos web en SharePoint. Para obtener más información sobre el desarrollo de elementos web, vea Building Block: web parts

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 correspondiente AddMycustomProperties tendría un aspecto similar al código siguiente.

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: Creación de segmentos de usuario en función del tipo de explorador web que use el usuario final cuando

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 del método tendría un AddMycustomProperties aspecto similar al del 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á el 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, seleccione esta opción para expandir Contexto.

  4. En la sección Query is performed by these user segments (La consulta la realizan estos segmentos de usuario ), elija Uno de estos segmentos de usuario y, a continuación, seleccione 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, seleccione 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. Seleccione 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