Benutzersegmentierung in SharePoint

Hinweis

Wichtig (modernes SharePoint-Update): In diesem Artikel wird ein klassischer SharePoint Server-Ansatz mit Inhaltssuche-Webparts, Abfrageregeln und benutzerdefiniertem serverseitigem Code beschrieben.

In modernen SharePoint (SharePoint Online und SharePoint Server-Abonnementedition) ist dieser Ansatz veraltet oder wird nicht empfohlen.

Ähnliche Ergebnisse können jetzt mit Zielgruppenadressierung, Microsoft Entra ID Gruppen, Microsoft Search und modernen Webparts erzielt werden.

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 zum Anpassen von Inhalten, die Sie auf einer SharePoint-Website anzeigen, abhängig von bestimmten Attributen von Endbenutzern, z. B. ihrem Geschlecht, ihrem Wohnort, ihren Interessen oder Empfehlungslinks. Diese Gruppen von Benutzerattributen werden als Benutzersegmente bezeichnet.

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

  • Anzeigen verschiedener Banner auf einer Seite je nach Geschlecht des Endbenutzers
  • Anzeigen verschiedener Rabattangebote je nach Gebietsschema des Endbenutzers
  • Anzeigen verschiedener Artikel auf einer Seite abhängig vom Verweislink des Endbenutzers (der Website, die den Endbenutzer auf Ihre Seite gebracht hat).

Um die Benutzersegmentierung in SharePoint zu implementieren, führen Sie drei Schritte aus: Erstellen Sie einen Ausdruckssatz für jedes Benutzersegment, erweitern Sie das Inhaltssuche-Webpart, um es auf Ihre Benutzersegmente aufmerksam zu machen, und verwenden Sie dann 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.

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

Erstellen des Ausdruckssatzes

Ein Ausdruck ist ein Wort oder ein Ausdruck, der ein Element in SharePoint zugeordnet werden kann. Ein Ausdruckssatz ist eine Sammlung zusammengehörender 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 Artikeln finden Sie ausführliche Anweisungen zur Verwendung des Terminologiespeicherverwaltungstools zum Erstellen Ihres Ausdruckssatzes:

Sie können einen Ausdruckssatz programmgesteuert erstellen, indem Sie die über Microsoft.SharePoint.Taxonomy verfügbar gemachten Typen verwenden. Im folgenden Codebeispiel wird gezeigt, wie ein TermSet -Objekt erstellt und abgerufen wird NavigationTermSet. Als Nächstes erstellen Term Sie -Objekte in Ihrer TermSet. Führen Sie abschließend einen Commit für diese Änderungen in aus, TermStore und laden Sie die für die TermSet Navigation.

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 würde wie der folgende Code aussehen.

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 basierend auf dem Typ des Webbrowsers, den Der Endbenutzer verwendet, wenn

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

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. Wählen Sie dann aus, um Kontext zu erweitern.

  4. Wählen Sie im Abschnitt Abfrage wird von diesen Benutzersegmenten ausgeführt aus, und wählen Sie dann Benutzersegment hinzufügen aus.

  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. Wählen Sie dann Speichern aus.

  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. Wählen Sie Webpart bearbeiten aus.
  4. Erweitern Sie den Abschnitt Einstellungen, und wählen Sie im Feld ErgebnistabelleSpecialTermResults.
  5. Speichern Sie Ihre Konfiguration.

Siehe auch