Поделиться через


Сегментация пользователей в SharePoint

Отображение содержимого, адаптированного для определяемых сегментов пользователей, например на основе языкового стандарта, интересов, пола или ссылок, с помощью сочетания наборов терминов, веб-части "Поиск контента" и правил запросов в SharePoint. SharePoint предоставляет стандартные блоки для адаптации содержимого, отображаемого на сайте SharePoint, в зависимости от определенных атрибутов конечных пользователей, например их пола, места их проживания, интересов или ссылок. Эти группы атрибутов пользователя известны как сегменты пользователей.

В SharePoint эта функция сегментации пользователей может быть полезна во многих сценариях, таких как:

  • Отображение различных ленты на странице в зависимости от того, Пол конечного пользователя

  • Отображение различных скидку предлагает в зависимости от языкового стандарта конечного пользователя

  • Отображение различных статей на странице в зависимости от ссылки конечного пользователя (веб-сайт, который привел пользователя на вашу страницу).

Чтобы реализовать сегментацию пользователей в SharePoint, необходимо выполнить три действия: создать набор терминов для каждого сегмента пользователя, расширить веб-часть "Поиск контента", чтобы она была осведомлена о пользовательских сегментах, а затем использовать правила запросов для выполнения определенных действий для каждого сегмента пользователя.

Предварительные требования

Перед началом работы, реализации сегментации пользователей в SharePoint, необходимо установить следующие компоненты в среде разработки:

  • SharePoint

  • Visual Studio 2012

В этой статье предполагается, что у вас есть опыт разработки веб-частей в SharePoint. Дополнительные сведения о разработке веб-частей см. в статье Стандартный блок: веб-части

Общие сведения о добавлении функциональности сегментирования пользователей на сайт SharePoint

На рисунке 1 показаны основные действия для добавления функции сегментации пользователей на сайт SharePoint.

Рис. 1. Шаги по добавлению функции сегментации пользователей на сайт SharePoint

Действия по добавлению функциональности сегментирования пользователей

Создайте набор терминов

Термин — это слово или фраза, которые можно связать с элементом в SharePoint. Набор aterm — это коллекция связанных терминов. Дополнительные сведения см. в статье Обзор управляемых метаданных в SharePoint. Наборы терминов можно создавать с помощью средства управления хранилищем терминов SharePoint или программным способом.

Примечание.

Подробные инструкции по использованию средства управления хранилищем терминов для создания набора терминов см. в следующих разделах:>Настройка нового набора терминов>Создание терминов и управление терминами в наборе терминов

Набор терминов можно создать программным способом, используя типы, предоставляемые через Microsoft.SharePoint.Taxonomy . В следующем примере кода показано, как создать объект TermSet и получать NavigationTermSet. Создайте объекты Term в рамках вашей TermSet. И, наконец внести эти изменения TermStore и загружать TermSet для навигации.

Каждый термин, добавляемого к терминов set Получает уникальный идентификатор. Этот идентификатор является ключом к тому, чтобы веб-часть "Поиск контента" учитывала сегменты пользователей.


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

Создание пользовательской веб-части для сегментации пользователей

В Visual Studio 2012 создайте пользовательскую веб-часть с помощью шаблона визуальных веб-частей из категории SharePoint. Пользовательская веб-часть должна наследоваться от объекта веб-части "Поиск контента ".

Примечание.

В этой статье предполагается, что у вас есть опыт разработки веб-частей в SharePoint. Дополнительные сведения о разработке веб-частей см. в статье Стандартный блок: веб-части

Настройка пользовательской веб-части с помощью логики сегментации пользователей

В пользовательской веб-части можно повторно реализовать метод OnLoad() или метод для OnInit() выполнения пользовательской логики. Оба этих метода полезны для задания или настройки свойств объекта веб-части "Поиск контента ".

Пример 1. Добавление сегментов пользователей для мужчин и женщин на сайт SharePoint

Чтобы добавить сегменты пользователей Мужской и Женский , можно повторно реализовать OnLoad() метод, как показано в следующем коде.


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

Соответствующий метод AddMycustomProperties будут выглядеть следующим кодом.


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

Пример 2: Создание сегменты пользователей на основе типа конечного пользователя используется веб-браузера

Чтобы создать сегменты пользователей на основе типа веб-браузера, который использует конечный пользователь, для просмотра сайта SharePoint повторно реализуйте метод OnLoad , как показано в следующем коде.


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

Код для метода AddMycustomProperties будет выглядеть как в следующем примере.


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

Чтобы использовать настраиваемую веб-часть на странице, необходимо отправить ее в коллекцию веб-частей SharePoint.

В SharePoint Web Part Galleryвыберите Параметры сайта и выберите веб-частей в разделе Коллекции веб-дизайнера. На вкладке файлы нажмите кнопку Отправить документ.

Добавление правила запросов для выполнения определенных действий, которые зависят от пользовательский сегмент

Правило запроса преобразований запросов для повышения релевантности результатов поиска путем рационально реагирует на то, что пользователь пытается найти. В правило запроса укажите условия и соответствующих действий. При запросе будут выполнены условия правила запроса, поисковая система выполняет действия, указанные в правиле для повышения релевантности результатов поиска, такие как их результаты или изменение порядка, в котором отображаются результаты.

При реализации сегментации пользователей, используемого правила запросов для определения условия и действия для сегменты определенных пользователей. Если пользователь является частью определенного сегмента пользователей, правило запроса активируется, а в веб-части "Поиск контента" будет отображаться содержимое, адаптированное для этого сегмента пользователя.

Создание правила запроса, который будет активирован для конкретного пользователя сегмента

  1. Публикации семейства веб-сайтов в Настройках сайта выберите Администрирование семейства веб-сайтов и нажмите кнопку Правила запросов поиска.

  2. Выберите источник результатов, а затем выберите Создать правило запроса.

  3. В поле Имя правила введите имя правила. Щелкните и разверните контекста.

  4. В разделе запрос выполняется с эти сегменты пользователей выберите один из этих сегменты пользователей и нажмите кнопку Добавить сегмент пользователей.

  5. В поле Название введите имя для этого правила запроса сегмент пользователей. Нажмите кнопку Добавить пользователя сегмент терминов.

  6. В диалоговом окне Импорт из терминов хранилище разверните узел Службы управляемых метаданных. В разделе Семейство веб-сайтов найдите набор терминов, содержащий термины сегментации пользователей, определенные ранее в разделе Создание набора терминов. Выберите пользовательский сегмент, для которого вы хотите применить это правило запроса. Нажмите кнопку Сохранить.

  7. Имя вашего n сегмент пользователей диалоговое окно Добавление пользовательского сегмента.

    Теперь, которым сопоставлены правило запроса пользовательским сегментом, который в свою очередь сопоставлен термину сегмент пользователей.

  8. В разделе Условия запроса выберите команду Удалить условие.

    Это указывает, что запрос, настроенный в веб-части "Поиск контента" , будет выступать в качестве условия запроса.

  9. Задайте соответствующие действия, которые будут выполнять правила запроса. В разделе действия выберите соответствующее действие, которое требуется получить права из-за - правила запроса. Можно выбрать для Добавления результатов повышенного уровня или Добавить блок результатов.

  10. Сохраните правило запроса.

  11. Повторите шаги с 1 по 10 для других сегментов пользователя, в зависимости от действий, которые требуется выполнить.

Добавление настраиваемой веб-части на страницу SharePoint и ее настройка для отображения правила запроса

Необходимо добавить настраиваемую веб-часть на страницу SharePoint.

Добавление пользовательской веб-части

  1. Перейдите на страницу категорий, выберите команду Изменить страницу и выберите команду Изменить шаблон страницы.

  2. Выберите Добавить веб-часть в верхнем разделе страницы. Затем выберите пользовательскую веб-часть в раскрывающемся меню в правом верхнем углу веб-части.

  3. Щелкните Изменить веб-часть.

  4. Разверните раздел Параметры и выберите SpecialTermResults в поле В таблице результатов.

  5. Сохраните настройки.

См. также