Anmelden

Benutzeranalyse mit Identität betreiben

Erfahren Sie, wie Auth0 Ihnen bei der Entscheidungsfindung hilft und wie einfach es ist, Daten über Ihre Nutzer zu sammeln. Erkunden Sie ein konkretes Beispiel für Benutzeranalyse, einschließlich Code-Schnipseln.

powering-user-analytics-identity

Das Problem

InnovaShoes ist ein Schuhhersteller, der seine Produkte über einen Online-Shop vertreibt. Das Unternehmen plant die Markteinführung einer neuen Linie von Laufschuhen für Männer mit modernster Technologie. Im Rahmen dieser Markteinführung wird InnovaShoes eine Marketingkampagne starten, die sich an bestehende männliche Kunden richtet, die Interesse an Fitness gezeigt haben. Die Kampagne hat drei Ziele:

  • Versendung einer Vorbestellungs-E-Mail über die neuen Laufschuhe an männliche Kunden ihres Online-Shops. Außerdem möchten sie diese Kunden nach Alter und ihrem Interesse an Fitness segmentieren, da Männer zwischen 20 und 40 Jahren eher das Interesse und das verfügbare Einkommen haben, um ein Premium-Fitnessprodukt zu kaufen.
  • Sie möchten wissen, welche registrierten Benutzer nach der Registrierung nicht zurückgekehrt sind, um ihnen einen speziellen Rabatt anzubieten, der sie zurücklockt.
  • Da InnovaShoes weiß, dass viele seiner Kunden Twitter nutzen, möchte das Unternehmen besser verstehen, wie Kunden, die dieses soziale Netzwerk nutzen, über das Unternehmen denken.

InnovaShoes möchte die notwendigen Informationen über die Benutzer seines Online-Shops sammeln, um seine Marketingkampagne durchführen zu können, und sie sind der Meinung, dass der beste Zeitpunkt zur Datenerfassung die Registrierung und Anmeldung ist. Hier kann das Identitätsmanagement, und insbesondere Auth0, helfen.

Die Lösung

Je besser InnovaShoes seine Kunden kennt, desto besser kann das Unternehmen das Kundenerlebnis auf sie zuschneiden und ihnen einen Mehrwert bieten. Mit sozialen Anmeldungen kann das Unternehmen die von Facebook, Twitter und anderen sozialen Netzwerken gesammelten Daten nutzen, um das Wissen über die Kunden zu verbessern und sie als Individuen zu behandeln. Das Hinzufügen von sozialen Anmeldungen zu Anwendungen ist mit Auth0 sehr einfach und ein guter Ausgangspunkt für die Erfassung von Kundendaten. Soziale Anmeldungen haben mehrere Vorteile, darunter:

  • Bessere Qualität der E-Mail-Adressen: Der Anbieter des sozialen Netzwerks ist für die Verifikation der E-Mail des Benutzers verantwortlich. Wenn der Anbieter diese Informationen weitergibt, erhalten Sie eine echte E-Mail-Adresse und nicht die gefälschten Adressen, die manche Benutzer für die Registrierung in Webanwendungen verwenden.
  • Zugang zu umfangreicheren Benutzerprofilen: Die Anbieter sozialer Netzwerke können oft zusätzliche Informationen über die Nutzer geben, z. B. Standort, Interessen und Geburtstage. Anhand dieser Daten können Sie den Nutzern personalisierte, relevante Inhalte anbieten.
  • Aktuelle Profile: Benutzer halten ihre Profile auf weniger besuchten Websites oft nicht auf dem neuesten Stand, aber sie halten ihre Profile in sozialen Netzwerken aktuell. Soziale Anmeldungen können Ihnen genauere Informationen über Ihre Kunden liefern.
  • Bessere Anmeldesicherheit: Wenn Benutzer nicht noch einen weiteren Benutzernamen und ein weiteres Passwort erstellen müssen, werden sie eher gute Praktiken bei der Auswahl von schwer zu erratenden Passwörtern anwenden und eine Multi-Faktor-Authentifizierung für die wenigen Websites wie z. B. soziale Netzwerke verwenden, die ihre Identitätsdaten enthalten. Ihre Kunden sind die Mühsal von Benutzernamen und Passwörtern leid – deshalb werden sie sich „mit Facebook anmelden“.

Diese Informationen sind sehr nützlich, um Daten und demografische Angaben über Ihre Nutzer zu erhalten, die wiederum für gezielte Marketingkampagnen oder für Entscheidungen im Produktmanagement nützlich sind.

Wie erhalten Sie Benutzeranalysen?

Auth0 enthält eine leistungsstarke Funktion namens „Regeln“; kleine Javascript-Codeschnipsel, die als Teil jeder Authentifizierung ausgeführt werden, mit denen Sie die Plattform beliebig erweitern und erweiterte Funktionen implementieren können. Genau diese Erweiterbarkeit ist das Geheimnis der Implementierung bei InnovaShoes.

Wenn sich Benutzer über eine soziale Anmeldung für den Online-Shop registrieren, kann InnovaShoes eine Regel verwenden, die eine API für einen Dienst wie FullContact aufruft, um die Informationen des Benutzers zu erweitern – Standort, Alter, Geschlecht, Einkommensklasse, Mitgliedschaften in sozialen Netzwerken usw. – und zusätzlich die API des sozialen Netzwerks aufruft, um das Profil des Benutzers um Interessen, Vorlieben, sozialen Status usw. zu erweitern. Erstellen Sie eine Regel für den Zugriff auf leistungsstarke APIs von Drittanbietern für soziale Analysen. Zum Beispiel können Sie einen Sentiment-Analysedienst aufrufen, um die Tweets von Benutzern auszuwerten, in denen @InnovaShoes erwähnt wird. Erstellen Sie eine weitere Regel, die die Informationen des Benutzers in der von Ihnen gewählten Analyseplattform speichert, sei es in einem Data Warehouse, das mit einer BI-Produktsuite analysiert wird, sei es in einer Big Data-Analyseplattform auf der Basis von Hadoop, in einem Volltext-Indizierungsdienst oder in einem SaaS-Analyseprodukt – was immer Ihre Data Scientists und Ihr Marketingteam benötigen.

Der folgende Ausschnitt zeigt die grundlegenden Informationen eines Auth0-Benutzerprofils:

{
    'email': 'johndoe@gmail.com',
    'email_verified': false,
    'updated_at': '2016-01-18T19:42:13.322Z',
    'picture': 'https://s.gravatar.com/avatar/1fda90f0e712deed531294cd044a2d05?s=480&r=pg&d=https%3A%2F%2Fcdn.auth0.com%2Favatars%2Fkl.png',
    'user_id': 'auth0|569d401336afe17803eba2ba',
    'name': 'johndoe@gmail.com',
    'nickname': 'johndoe',
    'identities': [
        {
            'user_id': '569d401336afe17803eba2ba',
            'provider': 'auth0',
            'connection': 'Username-Password-Authentication',
            'isSocial': false
        }
    ],
    'created_at': '2016-01-18T19:42:11.846Z',
    'last_ip': '174.66.196.104',
    'last_login': '2016-01-18T19:42:13.322Z',
    'logins_count': 1,
    'blocked_for': []
}

Beachten Sie, dass einige dieser Informationen sofort für die Kampagne nützlich sind. Mit der Eigenschaft `last_login` kann Innovashoes z. B. feststellen, ob sich ein Nutzer eine Weile nicht mehr eingeloggt hat, und ihm ein Angebot schicken, wenn er in den Shop zurückkehrt.

Sie können die FullContact API verwenden, um erweiterte Informationen über Ihre Benutzer zu erhalten, wie z. B. die sozialen Netzwerke, die mit ihrer E-Mail-Adresse verbunden sind. Dazu können Sie die Vorlage FullContact verwenden, wenn Sie eine neue Regel im Auth0 Management Dashboard erstellen.

Zusammengenommen können diese Informationen Ihnen dabei helfen, komplexere Analysen durchzuführen, die für die Kampagne benötigt werden – wie z. B. herauszufinden, wer von Ihren Kunden die 20-40 Jahre alten Männer sind (FullContact), die sich für Fitness interessieren (Facebook). Mit diesem erweiterten Profil können Sie eine Verbindung zu einer Datenbank oder einem Indexierungs-/Suchdienst wie ElasticSearch herstellen, um die Daten der registrierten Benutzer zu speichern. Dies kann über eine Regel oder in einem anderen Prozess über einen Cron-Job geschehen, wie in diesem Beispiel gezeigt. Wenn Sie sich für die Speicherung der Benutzerinformationen über eine Regel entscheiden, erhalten Sie Analysen in Echtzeit. Wenn Sie hingegen einen Cron-Job verwenden, erhalten Sie die Analysen nur so oft, wie der Job ausgeführt wird. Sie sollten entscheiden, welcher Ansatz für Ihren Fall bzw. Ihre Bedürfnisse am besten geeignet ist, und dabei die Möglichkeit in Betracht ziehen, dass bei Millionen von Nutzern die Speicherung von Echtzeitinformationen eine enorme Belastung darstellen könnte, die Ihr Dienst möglicherweise nicht bewältigen kann.

Sie können diese Informationen sogar direkt an einen SaaS-Analytics-Anbieter wie Azure Stream Analytics, RapidMiner, eine Hadoop-Instanz oder wohin auch immer Sie wollen senden.

Jedes Mal, wenn sich ein Benutzer anmeldet, ist dieses Ereignis ein starkes Signal für sein Engagement. Sie können sogar noch mehr über die Vorlieben und Interessen des Benutzers erfahren, indem Sie Auth0-Regeln verwenden, um jedes Authentifizierungsereignis in Ihrem Analysesystem aufzuzeichnen und diese Ereignisse dann mit anderen Signalen wie in den Warenkorb gelegten Artikeln, besuchten Seiten, hinterlassenen Kommentaren usw. zu korrelieren. Diese Idee der „progressiven Erkennung“ ist eine leistungsstarke Methode, um im Laufe der Zeit ein umfassendes Profil eines Benutzers zu erstellen, indem Sie ihn nach Informationen fragen und sein Verhalten beobachten.

Sobald die notwendigen Informationen gespeichert sind, können Sie ein Dashboard mit Widgets erstellen, die Ihre Analysen in eine leicht lesbare Form bringen. Das folgende Repository enthält den Quellcode eines einfachen Dashboards, das direkt auf Benutzerprofile in Auth0 zugreift und das Sie als Ausgangspunkt für die Erstellung Ihres eigenen Dashboards nehmen können.

Ihre Data Scientists oder Experten für Marketingmetriken haben möglicherweise ihre eigene bevorzugte Methode zur Visualisierung von Nutzerdaten und abgeleiteten Analysen, die auf Ihren individuellen Bedürfnissen basiert. Die API-gesteuerte, leicht erweiterbare Plattform von Auth0 passt in jede Analyseplattform, egal wie einfach oder komplex sie ist. Auth0 zwingt Ihnen keine vorgefertigten, unflexiblen Analysen und Visualisierungen als Teil Ihrer Identitätsplattform auf – wir überlassen die Analyse- und Entscheidungsunterstützungstools den Experten in diesen Bereichen, aber wir integrieren uns mit nur ein paar Zeilen Javascript in diese erstklassigen Lösungen.

Beispiel für das Analytik Dashboard

Beispiel für das Analytik Dashboard

Schließlich können Sie eine weitere Regel hinzufügen, die den Twitter-Handle eines Benutzers, sofern verfügbar, an eine API sendet, die die Tweets des Benutzers, in denen @InnovaShoes erwähnt wird, durchsucht und deren Stimmung bewertet. Mit diesen Informationen kann die Marketingabteilung eine E-Mail an Nutzer senden, die eine negative Meinung über das Unternehmen getwittert haben, um zu versuchen, die Situation zu bereinigen oder zu neutralisieren.

Um Statistiken nahezu in Echtzeit zu erhalten, könnten Sie hochfrequente Authentifizierungsereignisse mit einer Warteschlangenkomponente wie dem Open Source RabbitMQ zwischenspeichern und eine Regel aufstellen, die die Anmeldeinformationen an die Warteschlange sendet: Die Warteschlange leitet die Informationen dann an das Data Warehouse, die Analyseplattform oder die SaaS-Analyse-Lösung weiter. Dies wird in dem folgenden Diagramm dargestellt.

Anwendungsfall Architektur mit Echtzeit-Analysen

Anwendungsfall Architektur mit Echtzeit-Analysen

Schlussfolgerung

Auth0 ist eine leistungsstarke Authentifizierungsplattform und keine Analytikmaschine, daher bietet es keine ausgefeilte und sofort einsatzbereite Analytik. Die Regel-Engine von Auth0 gibt Ihnen jedoch die Flexibilität, aus den Authentifizierungsereignissen ganz einfach die Daten zu extrahieren, die Sie benötigen, und die Benutzerprofildaten über Web-APIs zu erweitern, wenn sich Benutzer registrieren und authentifizieren. Mit dieser leistungsstarken Echtzeitfähigkeit können Sie jedes erdenkliche Analyseszenario umsetzen. Auth0 enthält eine ständig wachsende Liste von Regelvorlagen, die nach Kategorien unterteilt sind. So können Sie Ihren Kunden durch fortschrittliche Benutzeranalysen ein noch individuelleres Erlebnis bieten. Das Hinzufügen von sozialen Anmeldungen zu Ihren Anwendungen dauert nur wenige Minuten und liefert umfangreiche, aktuelle Informationen über Ihre Benutzer. Wenn Sie beide Funktionen kombinieren, eröffnen sich Ihnen unendlich viele Möglichkeiten, neue Wege zur Einbindung Ihrer Nutzer zu entdecken.

Erstellen einer neuen Regel unter Verwendung von Vorlagen

Erstellen einer neuen Regel unter Verwendung von Vorlagen

Probieren Sie es noch heute aus! Auth0 hat Pläne für jeden Bedarf, einschließlich eines kostenlosen Dauerplans, der bis zu 7.000 aktive Nutzer und zwei Anbieter von sozialen Identitäten unterstützt. Weitere Informationen finden Sie auf der Preisseite, oder kontaktieren Sie das Auth0-Vertriebsteam, wenn Sie Fragen oder individuelle Anforderungen haben.

Anhang A: Prototyp-Code

Hier finden Sie einige Codebeispiele, die für die Implementierung der in diesem Anwendungsfall beschriebenen Logik nützlich sind.

Regel zur Profilanreicherung

Die Regel, die die FullContact API aufruft, um das Benutzerprofil anzureichern, ist im folgenden Code zu sehen:

function (user, context, callback) {
  const FULLCONTACT_KEY = configuration.FULLCONTACT_KEY;

  // skip if no email
  if (!user.email) return callback(null, user, context);

  // skip if fullcontact metadata is already there
  if (user.user_metadata && user.user_metadata.fullcontact) return callback(null, user, context);

  request.get('https://api.fullcontact.com/v2/person.json', {
    qs: {
      email:  user.email,
      apiKey: FULLCONTACT_KEY
    };
    json: true
  }, (error, response, body) => {
    if (error || (response && response.statusCode !== 200)) {
      // swallow fullcontact api errors and just continue login
      return callback(null, user, context);
    }

    // Wenn wir hier ankommen, bedeutet das, dass FullContact Informationen zurückgegeben hat und wir sie zu den Metadaten hinzufügen werden
    user.user_metadata = user.user_metadata || {};
    user.user_metadata.fullcontact = body;

    auth0.users.updateUserMetadata(user.user_id, user.user_metadata);
    context.idToken['https://example.com/fullcontact'] = user.user_metadata.fullcontact;
    return callback(null, user, context);
  });
}

Dies ist eine vereinfachte Version der von Auth0 bereitgestellten FullContact-Vorlage. Diese Version hat keine Slack-Integration, um Fehler zu protokollieren.

Wie im vorangegangenen Code zu sehen, werden die gefundenen Informationen über den Benutzer der Eigenschaft user.user_metadata.fullcontact hinzugefügt.

So erstellen Sie eine Funktion, die das Alter des Benutzers aus einem angereicherten Benutzerprofil ermittelt

Der folgende Code zeigt, wie eine Methode erstellt wird, die das Alter des Benutzers aus dem angereicherten Profil des Benutzers abruft. Auf ähnliche Weise können Sie weitere Informationen über den Benutzer erhalten.

function getAge(user) {
    if (user.age) {
        return user.age;
    }

    var fullContactInfo = user.user_metadata.fullContactInfo || user.app_metadata.fullContactInfo;

    if (fullContactInfo && fullContactInfo.age) {
        return fullContactInfo.age;
    }
    if (fullContactInfo && fullContactInfo.demographics && fullContactInfo.demographics.age) {
        return fullContactInfo.demographics.age;
    }
    if (fullContactInfo && fullContactInfo.demographics && fullContactInfo.demographics.birthDate) {
        return moment().diff(fullContactInfo.demographics.birthDate, 'years');
    }

    if (user.dateOfBirth) {
        return moment().diff(user.dateOfBirth, 'years');
    }

    if (user.birthday) {
        return moment().diff(user.birthday, 'years');
    }

    return null;
}

Regel zum Abrufen des Twitter-Handles des Nutzers und Senden an die Sentiment-API

Die folgende Regel zeigt, wie Sie den Twitter-Handle eines Benutzers erhalten und die Daten an die Sentiment-API senden können. Dieser Vorgang sollte nur einmal pro Benutzer durchgeführt werden; aus diesem Grund setzen wir die Variable sentiment_initialized auf true, wenn der Benutzer bearbeitet wird.

function (user, context, callback) {
  user.app_metadata = user.app_metadata || {};
  if (user.app_metadata.sentiment_initialized) {
    return callback(null, user, context);
  }

  var twitterHandle = getTwitterHandle(user);

  if (!twitterHandle) {
    return callback(null, user, context);
  }

  // Sie sollten Ihre Anfragen über SSL stellen, um Ihre Anwendungsgeheimnisse zu schützen.
  request.post({
    url: 'https://innovashoes.com/twittersentiment',
    json: {
      twitterHandle: twitterHandle,
      secretToken: configuration.TWITTER_SECRET_TOKEN
    },
    timeout: 15000
  }, function(err, response, body){
    if (err) return callback(new Error(err));
    user.app_metadata.sentiment_initialized = true;
    auth0.users.updateAppMetadata(user.user_id, user.app_metadata)
      .then(function(){
        callback(null, user, context);
      })
      .catch(function(err){
        callback(err);
      });
  });
}

function getTwitterHandle(user) {
    var fullContactInfo = user.user_metadata.fullContactInfo || user.app_metadata.fullContactInfo;
    if (fullContactInfo && fullContactInfo.socialProfiles) {
      for (var key in fullContactInfo.socialProfiles) {
        if (fullContactInfo.socialProfiles[key].type === 'twitter'){
          return fullContactInfo.socialProfiles[key].username;
        }
       }
    }
    return null;
}

Beispielcode für das Dashboard

Sie können den Beispielcode für das Dashboard in diesem Repository finden. Sie können dies als Ausgangspunkt verwenden und Ihr eigenes Dashboard erstellen. In der Readme-Datei finden Sie Informationen zur Ausführung des Beispiels. Eine Live-Version können Sie hier sehen.

Die Anmeldung für kostenlos

Beginnen Sie noch heute mit der Entwicklung und sichern Sie noch heute Ihre Anwendungen mit der Auth0-Identitätsplattform.

3D login box