Segmentação de usuário no SharePoint

Exiba conteúdo personalizado para segmentos de usuário que você define, por exemplo, com base em localidade, interesses, gênero ou links de referência, usando uma combinação de conjuntos de termos, a Web Part de Pesquisa de Conteúdo e as regras de consulta no SharePoint. O SharePoint fornece os blocos de construção para adaptar o conteúdo que você mostra em um site do SharePoint, dependendo de determinados atributos dos usuários finais, por exemplo, seu gênero, onde eles moram, seus interesses ou links de referência. Esses agrupamentos dos atributos do usuário são conhecidos como segmentos de usuários.

No SharePoint, essa funcionalidade de segmentação de usuário pode ser benéfica em muitos cenários, como:

  • Exibindo faixas diferentes em uma página, dependendo do gênero do usuário final

  • Exibir o desconto diferente oferece dependendo da localidade do usuário final

  • Exibindo artigos diferentes em uma página, dependendo do link de referenciador do usuário final (o site que trouxe o usuário final para sua página).

Para implementar a segmentação de usuário no SharePoint, você fará três coisas: criar um conjunto de termos para cada segmento de usuário, estender a Web Part de Pesquisa de Conteúdo para consciá-la de seus segmentos de usuário e, em seguida, usar regras de consulta para executar ações específicas para cada segmento de usuário.

Pré-requisitos

Antes de você começar a implementar a segmentação de usuário no SharePoint, certifique-se de ter o seguinte instalado em seu ambiente de desenvolvimento:

  • SharePoint

  • Visual Studio 2012

Este artigo pressupõe que você tenha experiência com o desenvolvimento de web parts no SharePoint. Para obter mais informações sobre o desenvolvimento de web parts, consulte Building Block: Web parts

Visão geral sobre como adicionar a funcionalidade de segmentação de usuário para seu site do SharePoint

Figura 1 mostra as etapas básicas para adicionar a funcionalidade de segmentação de usuário ao seu site do SharePoint.

Figura 1. Etapas para adicionar a funcionalidade de segmentação de usuário ao seu site do SharePoint

Steps to add user segmentation functionality

Criar um conjunto de termos

Um termo é uma palavra ou uma frase que pode ser associada a um item no SharePoint. Umconjunto de termos é um conjunto de termos relacionados. Para obter mais informações, confira Visão geral dos metadados gerenciados no SharePoint. Você pode criar conjuntos de termos por meio da ferramenta de gerenciamento do repositório de termos do SharePoint, ou programaticamente.

Observação

Consulte os tópicos a seguir para obter instruções detalhadas sobre como usar a Ferramenta de Gerenciamento de Term Store para criar seu termo set:>Configurar um novo conjunto> de termosCriar e gerenciar termos em um conjunto de termos

Você pode criar um conjunto de termos programaticamente usando os tipos expostos por meio do Microsoft.SharePoint.Taxonomy . O exemplo de código a seguir mostra como criar um objeto TermSet e obter o NavigationTermSet. Em seguida, você cria objetos de Term dentro de sua TermSet. Finalmente, confirmar essas alterações para o TermStore e carregar TermSet a ser usado para navegação.

Cada termo que você adicionar ao seu termo conjunto recebe um identificador exclusivo. Esse identificador é a chave para conscientizar a Web Part da Pesquisa de Conteúdo dos segmentos de usuário.


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

Criar uma Web Part personalizada para segmentação de usuário

No Visual Studio 2012, crie uma Web Part personalizada usando o modelo de Web parts do Visual da categoria SharePoint. Sua Web Part personalizada deve herdar do objeto Web Part da Pesquisa de Conteúdo .

Observação

Este artigo pressupõe que você tenha experiência com o desenvolvimento de web parts no SharePoint. Para obter mais informações sobre o desenvolvimento de web parts, consulte Building Block: Web parts

Configurar uma Web Part personalizada com a lógica de segmentação de usuário

Em sua Web Part personalizada, você pode implementar novamente o OnLoad() método ou o OnInit() método para executar sua lógica personalizada. Ambos os métodos são úteis para definir ou personalizar propriedades do objeto Web Part da Pesquisa de Conteúdo .

Exemplo 1: Adicionar segmentos de usuário masculino e feminino ao seu site do SharePoint

Para adicionar segmentos de usuário masculino e feminino , você pode implementar novamente o OnLoad() método conforme mostrado no código a seguir.


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

O método AddMycustomProperties correspondente será semelhante ao código a seguir.


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

Exemplo 2: Criar segmentos de usuários com base no tipo de navegador da Web que o usuário final está usando quando

Para criar segmentos de usuário com base no tipo de navegador da Web que o usuário final está usando, para exibir seu site do SharePoint, implemente novamente o método OnLoad , conforme mostrado no código a seguir.


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

O código para o método AddMycustomProperties poderia ter uma aparência semelhante ao seguinte exemplo.


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 sua Web Part personalizada em sua página, você precisa carregar a Web Part na Galeria de Web Part do SharePoint.

No SharePoint Web Part Gallery, escolha Configurações do Site e, em seguida, escolha Web parts em Galerias de Web Designer. Na guia arquivos, selecione Carregar documento.

Adicionar regras de consulta para realizar ações específicas que dependem do segmento do usuário

Uma regra de consulta transforma consultas para aumentar a relevância dos resultados da pesquisa por reagir de forma inteligente para que o usuário talvez esteja tentando localizar. Em uma regra de consulta, você pode especificar condições e ações correlatas. Quando uma consulta atende às condições em uma regra de consulta, o sistema de pesquisa executa as ações especificadas na regra para aumentar a relevância dos resultados da pesquisa, como limitar os resultados ou alterar a ordem na qual os resultados são exibidos.

Ao implementar a segmentação de usuário, você usa regras de consulta para definir as condições e ações para os segmentos de usuário definidos. Quando um usuário final faz parte de um determinado segmento de usuário, a regra de consulta será ativada e a Web Part de Pesquisa de Conteúdo exibirá o conteúdo adaptado para esse segmento de usuário específico.

Para criar uma regra de consulta que ativará um segmento de usuário específico

  1. No seu conjunto de sites de publicação em Configurações do Site, escolha Administração do conjunto de sites e, em seguida, escolha As regras de consulta de pesquisa.

  2. Escolha uma fonte de resultados e clique em Nova regra de consulta.

  3. Digite um nome de regra no campo Nome da regra. Em seguida, clique para expandir o contexto.

  4. Na seção consulta é executada por esses segmentos de usuários, escolha um desses segmentos de usuário e, em seguida, clique em Adicionar segmento do usuário.

  5. No campo título, digite um nome para esta regra de consulta de segmento do usuário. Escolha Adicionar termos de segmento de usuário.

  6. Na caixa de diálogo Importar do termo armazenar, expanda o Serviço de metadados gerenciados. Em Conjunto de Sites, localize o conjunto de termos que contém os termos de segmentação de usuário definidos anteriormente em Criar um conjunto de termos. Selecione o segmento de usuário para o qual você deseja aplicar esta regra de consulta. Em seguida, clique em Salvar.

  7. Nomeie a caixa de diálogo Adicionar segmento do usuário de seu n de segmento do usuário.

    Agora você ter mapeado uma regra de consulta a um segmento de usuário, que por sua vez, é mapeado para um termo de segmento do usuário.

  8. Sob Condições de consulta, escolha Remover condição.

    Isso especifica que a consulta configurada na Web Part de Pesquisa de Conteúdo atuará como a condição de consulta.

  9. Defina as ações correspondentes que executará a regra de consulta. Na seção ações, selecione uma ação correspondente que você deseja obter como resultado - sua regra de consulta. Você pode optar por Adicionar resultados promovidos ou Adicionar um bloco de resultado.

  10. Salve a regra de consulta.

  11. Repita as etapas de 1 a 10 para outros segmentos de usuários, dependendo das ações que você deseja executar.

Adicione uma Web Part personalizada à página do SharePoint e configure-a para mostrar a regra de consulta

Você precisa adicionar sua Web Part personalizada à sua página do SharePoint.

Para adicionar sua Web Part personalizada

  1. Navegue até uma página de categoria, escolha Editar página e escolha Editar modelo de página.

  2. Selecione Adicionar uma Web Part na seção superior da página. Em seguida, selecione sua Web Part personalizada no menu suspenso no canto superior direito da Web Part.

  3. Clique em Editar Web Part.

  4. Expanda a seção configurações e no campo de Tabela de resultado, escolha SpecialTermResults.

  5. Salve a configuração.

Confira também