Benutzersegmentierung in SharePoint

Zeigen Sie maßgeschneiderte Inhalte für von Ihnen definierte Benutzersegmente an – z. B. basierend auf Gebietsschema, Interessen, Geschlecht oder Empfehlungslinks –, indem Sie eine Kombination aus Ausdruckssätzen, dem Inhaltssuche-Webpart und Abfrageregeln in SharePoint verwenden. SharePoint bietet die Bausteine, um die Inhalte, die Sie auf einer SharePoint-Website anzeigen, je nach bestimmten Attributen der Endbenutzer maßgeschneidert anzupassen, z. B. auf Basis des Geschlechts, des Wohnorts, ihrer Interessen oder Empfehlungslinks. Diese Gruppierungen von Benutzerattributen werden als Benutzersegmente bezeichnet.

In SharePoint kann diese Funktion für die benutzersegmentierung Vorteil in vielen Szenarien wie sein:

  • Anzeigen von verschiedenen Banner auf einer Seite je nach der Endbenutzer Geschlecht

  • Je nach Gebietsschema des Endbenutzers bietet verschiedene Rabatt anzeigen

  • Anzeigen von verschiedenen Artikeln auf einer Seite je nach Referrer-Link des Endbenutzers (die Website, die den Endbenutzer zu Ihrer Seite geführt hat).

Zum Implementieren der Benutzersegmentierung in SharePoint führen Sie drei Schritte durch: Erstellen eines Ausdruckssatz für jedes Benutzersegment, Erweitern des Inhaltssuche-Webparts, damit es Ihre Benutzersegmente erkennt, und Verwenden von Abfrageregeln, um bestimmte Aktionen für jedes Benutzersegment auszuführen.

Voraussetzungen

Bevor Sie mit der Implementierung der Benutzersegmentierung in SharePoint beginnen, muss Folgendes in Ihrer Entwicklungsumgebung installiert sein:

  • SharePoint

  • Visual Studio 2012

In diesem Artikel wird davon ausgegangen, dass Sie Erfahrung mit der Entwicklung von Webparts in SharePoint haben. Weitere Informationen zum Entwickeln von Webparts finden Sie unter Baustein: Webparts.

Übersicht über das Hinzufügen der benutzersegmentierungsfunktion zu Ihrer SharePoint-Website

Abbildung 1 zeigt die grundlegenden Schritte zum Hinzufügen der benutzersegmentierungsfunktion zu Ihrer SharePoint-Website.

Abbildung 1: Schritte zum Hinzufügen von Benutzersegmentierungsfunktionen zu Ihrer SharePoint-Website

Schritte zum Hinzufügen der Funktion für die Benutzersegmentierung

Erstellen des Ausdruckssatzes

Ein Ausdruck ist ein Wort oder ein Ausdruck, der ein Element in SharePoint zugeordnet werden kann. Ein Ausdruckssatz ist eine Sammlung verwandter Ausdrücke. Weitere Informationen finden Sie unter Übersicht über verwaltete Metadaten in SharePoint. Sie können Ausdruckssätze entweder mit dem SharePoint-Terminologiespeicher-Verwaltungstool oder programmgesteuert erstellen.

Hinweis

In den folgenden Themen finden Sie ausführliche Anweisungen zur Verwendung des Terminologiespeicherverwaltungstools zum Erstellen Ihres Ausdruckssatzes:>Einrichten eines neuen Ausdruckssatzes>Erstellen und Verwalten von Begriffen in einem Ausdruckssatz

Sie können einen Ausdruckssatz programmgesteuert erstellen, indem Sie die über Microsoft.SharePoint.Taxonomy verfügbar gemachten Typen verwenden. Im folgenden Codebeispiel wird veranschaulicht, wie ein TermSet -Objekt erstellt und die NavigationTermSetzu erhalten. Im nächsten Schritt erstellen Sie Term -Objekte innerhalb Ihrer TermSet. Schließlich übernehmen Sie diese Änderungen in der TermStore zu, und Laden Sie die TermSet für die Navigation verwenden.

Jeden Ausdruck in Ihre hinzugefügte Set erhält einen eindeutigen Bezeichner. Dieser Bezeichner ist der Schlüssel, um das Inhaltssuche-Webpart auf Ihre Benutzersegmente aufmerksam zu machen.


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

Erstellen eines benutzerdefinierten Webparts für Benutzersegmentierung

Erstellen Sie in Visual Studio 2012 ein benutzerdefiniertes Webpart unter Verwendung der Vorlage für visuelle Webparts in der SharePoint-Kategorie. Ihr benutzerdefiniertes Webpart muss vom Webpartobjekt der Inhaltssuche erben.

Hinweis

In diesem Artikel wird davon ausgegangen, dass Sie Erfahrung mit der Entwicklung von Webparts in SharePoint haben. Weitere Informationen zum Entwickeln von Webparts finden Sie unter Baustein: Webparts.

Konfigurieren eines benutzerdefinierten-Webparts mit Benutzersegmentierungslogik

In Ihrem benutzerdefinierten Webpart können Sie entweder die OnLoad() -Methode oder die OnInit() -Methode erneut implementieren, um Ihre benutzerdefinierte Logik auszuführen. Beide Methoden sind nützlich, um Eigenschaften des Inhaltssuche-Webpartobjekts festzulegen oder anzupassen.

Beispiel 1: Hinzufügen von männlichen und weiblichen Benutzersegmenten zu Ihrer SharePoint-Website

Um die Benutzersegmente Männlich und Weiblich hinzuzufügen, können Sie die OnLoad()-Methode erneut implementieren, wie im folgenden Code dargestellt.


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

Die entsprechende AddMycustomProperties -Methode sieht wie im folgenden Code aus.


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

Beispiel 2: Erstellen von Benutzersegmenten abhängig vom Typ des vom Endbenutzer verwendeten Webbrowsers

Um Benutzersegmente basierend auf dem Typ des Webbrowsers zu erstellen, den der Endbenutzer zum Anzeigen Ihrer SharePoint-Website verwendet, implementieren Sie die OnLoad-Methode erneut, wie im folgenden Code dargestellt.


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

Der Code für die AddMycustomProperties-Methode würde wie im folgenden Beispiel aussehen.


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

Um das benutzerdefinierte Webpart auf Ihrer Seite zu verwenden, müssen Sie das Webpart in den SharePoint-Webpartkataloghochladen.

Wählen Sie in der SharePoint Web Part GalleryWebsiteeinstellungen aus, und wählen Sie dann auf Webparts im Rahmen der Web-Designer-Kataloge. Wählen Sie auf der Registerkarte DateienDokument hochladen.

Fügen Sie Abfrageregeln, um bestimmte Aktionen auszuführen, die abhängig von der Benutzersegment hinzu

Eine Abfrageregel überträgt Abfragen zur Verbesserung der Relevanz von Suchergebnissen durch Intelligent reagieren, was der Benutzer möglicherweise versucht, zu erhalten. In einer Abfrageregel Geben Sie Bedingung und Aktion korrelierte. Wenn eine Abfrage die Bedingungen in einer Abfrageregel erfüllt, führt das Suchsystem die Aktionen in der Regel zur Verbesserung der Relevanz der Suchergebnisse, wie die Ergebnisse Eingrenzung oder Ändern der Reihenfolge, in der Ergebnisse angezeigt werden, angegeben.

Bei der Implementierung der benutzersegmentierung verwenden Sie Abfrageregeln, um Bedingungen und Aktionen für die Segmente definierten Benutzer zu definieren. Wenn ein Endbenutzer Teil eines bestimmten Benutzersegments ist, wird die Abfrageregel aktiviert, und das Inhaltssuche-Webpart zeigt Inhalte an, die auf dieses bestimmte Benutzersegment zugeschnitten sind.

Erstellen eine Abfrageregel, die für ein bestimmtes Benutzersegment aktivieren

  1. Wählen Sie in der veröffentlichungswebsitesammlung in den WebsiteeinstellungenDie Verwaltung von Websitesammlungen, und wählen Sie dann auf Suchabfrageregeln.

  2. Wählen Sie eine ergebnisquelle aus, und wählen Sie dann auf Neue Abfrageregel.

  3. Geben Sie im Feld Regelname einen Regelnamen. Klicken Sie auf, um Kontext zu erweitern.

  4. Klicken Sie im Abschnitt Abfrage erfolgt über diese Benutzersegmente wählen Sie eine der folgenden Benutzersegmente, und klicken Sie dann auf Benutzersegment hinzufügen.

  5. Geben Sie im Feld Titel einen Namen für diese Benutzer Segment Abfrageregel ein. Wählen Sie Add User Segment Begriff.

  6. Erweitern Sie den Verwalteten Metadatendienst, klicken Sie im Dialogfeld Import von Ausdruck zu speichern. Suchen Sie unter Websitesammlung den Ausdruckssatz, der die Benutzersegmentierungsbegriffe enthält, die Sie zuvor unter Erstellen eines Ausdruckssatzes definiert haben. Wählen Sie die Benutzersegment diese Abfrageregel angewendet werden soll. Klicken Sie auf Speichern.

  7. Nennen Sie Ihre Benutzer Segment n im Dialogfeld Benutzersegment hinzufügen.

    Sie haben nun eine Abfrageregel auf ein Benutzersegment zugeordnet, das wiederum zu einem Benutzer Segment Ausdruck zugeordnet ist.

  8. Wählen Sie unter AbfragebedingungenBedingung entfernen.

    Dies gibt an, dass die im Inhaltssuche-Webpart konfigurierte Abfrage als Abfragebedingung fungiert.

  9. Legen Sie die entsprechenden Aktionen, die Abfrageregel ausgeführt wird. Wählen Sie eine entsprechende Aktion, die Sie als Ergebnis - Ihrer Abfrageregel übernehmen möchten, klicken Sie im Abschnitt Aktionen. Sie können entweder Heraufgestuft Ergebnis hinzufügen oder Hinzufügen eines Ergebnisblocks auswählen.

  10. Speichern Sie die Abfrageregel.

  11. Wiederholen Sie die Schritte 1 bis 10 für die anderen Benutzersegmente, je nach den Aktionen, die Sie ausführen möchten.

Fügen Sie ein benutzerdefiniertes Webpart zu der SharePoint-Seite hinzu und konfigurieren Sie es, um die Abfrageregel anzuzeigen.

Sie müssen Ihr benutzerdefiniertes Webpart zu Ihrer SharePoint-Seite hinzufügen.

Hinzufügen des benutzerdefinierten Webparts

  1. Navigieren zu einer Kategorieseite, wählen Sie Bearbeiten (Seite), und wählen Sie dann auf Bearbeiten Seitenvorlage.

  2. Wählen Sie im oberen Abschnitt der Seite Webpart hinzufügen aus. Wählen Sie dann ihr benutzerdefiniertes Webpart aus dem Dropdownmenü in der oberen rechten Ecke des Webparts aus.

  3. Klicken Sie auf Webpart bearbeiten.

  4. Erweitern Sie den Abschnitt Einstellungen, und wählen Sie im Feld ErgebnistabelleSpecialTermResults.

  5. Speichern Sie Ihre Konfiguration.

Siehe auch