Connexion

Optimisation des analyses des utilisateurs avec identités

Découvrez comment Auth0 renforce vos processus décisionnels et facilite la collecte de données sur vos utilisateurs. Explorez un cas d'utilisation spécifique des analyses d'utilisateurs, avec des snippets de code.

powering-user-analytics-identity

Le problème

InnovaShoes fabrique des chaussures qu'il vend sur une plateforme en ligne. L'entreprise prépare le lancement d'une nouvelle gamme de chaussures de course pour hommes, intégrant une technologie de pointe. Pour ce projet stratégique, InnovaShoes lancera une campagne de marketing ciblée sur ses clients masculins existants qui ont exprimé un intérêt pour le fitness. Trois objectifs ont été définis pour cette campagne :

  • Diffusion d'un e-mail de précommande des nouvelles chaussures de course aux clients masculins enregistrés dans la boutique en ligne. En outre, il a été décidé de segmenter ces utilisateurs par âge et par intérêt pour le fitness. En effet, les hommes de 20 à 40 ans sont plus susceptibles d'avoir à la fois l'intérêt et le revenu disponible pour acheter un produit de fitness haut de gamme.
  • InnovaShoes souhaite identifier les utilisateurs enregistrés qui ne sont pas revenus sur le site après leur inscription. L'objectif est de leur proposer une remise spéciale qui motivera leur retour.
  • Enfin, comme un grand nombre de ses clients utilisent Twitter, InnovaShoes souhaite mieux comprendre ce que les clients utilisateurs de ce réseau social pensent de l'entreprise.

InnovaShoes souhaite collecter les informations nécessaires sur les utilisateurs de sa boutique en ligne pour exécuter sa campagne de marketing, estimant que l'inscription et la connexion lui en donnent les meilleures opportunités. Pour de tels objectifs, la gestion des identités et Auth0, en particulier, apportent des avantages spécifiques.

La solution

Plus InnovaShoes développera sa connaissance client, plus il pourra personnaliser son expérience client et renforcer sa valeur ajoutée. Grâce aux connexions via un réseau social, l'entreprise pourra exploiter les données recueillies par Facebook, Twitter et d'autres réseaux sociaux pour améliorer sa connaissance des clients et développer un marketing relationnel individualisé. Avec Auth0, l'ajout de connexions via un réseau social dans les applications est une opération simplissime. Elle constitue un bon point de départ pour obtenir des données individualisées sur les clients. Les connexions via un réseau social offrent plusieurs avantages, notamment :

  • Des adresses e-mail de meilleure qualité : Le fournisseur de réseau social prend en charge la vérification des adresses e-mail des utilisateurs. Si le fournisseur partage ces informations, vous obtiendrez de véritables adresses e-mail, et non pas les fausses adresses souvent utilisées pour les inscriptions à des applications Internet.
  • Des profils utilisateurs plus riches : Des fournisseurs de réseaux sociaux peuvent souvent donner des informations supplémentaires sur les utilisateurs, notamment leur localisation, leurs intérêts personnels, leur date d'anniversaire, entre autres. Grâce à ces données, vous pouvez cibler des contenus personnalisés pour vos utilisateurs.
  • Des profils actualisés : Souvent, les utilisateurs ne mettent pas à jour leur profil sur les sites Web qu'ils fréquentent moins. Par contre, ils tiennent à jour leurs profils sur leurs réseaux sociaux. Les connexions via un réseau social peuvent révéler des informations plus précises sur vos clients.
  • Une sécurité de connexion renforcée: Lorsque les utilisateurs sont dispensés de créer un autre nom d'utilisateur avec encore un autre mot de passe, ils sont plus enclins à adopter de bonnes pratiques. Par exemple, ils n'hésiteront plus à inventer des mots de passe difficiles à deviner, ni à utiliser l'authentification multi-facteur sur certains sites, tels que les réseaux sociaux, qui conservent des informations sensibles et identifiables. Vos clients n'en peuvent plus de jongler avec des noms d'utilisateur et des mots de passe. C'est pourquoi ils choisiront volontiers l'option « Se connecter avec Facebook ».

Ces données sont très utiles pour obtenir des données et des informations démographiques concernant vos utilisateurs. Cette collecte peut jouer un rôle clé pour créer des campagnes de marketing pour la gestion des produits.

Comment obtenir des analyses des utilisateurs ?

Auth0 offre une fonctionnalité puissante appelée « règles ». Ce sont des snippets de code Javascript qui s'exécutent dans chaque authentification. Elles vous permettent d'étendre la plateforme selon vos besoins et vos préférences pour mettre en œuvre des fonctionnalités avancées. Cette capacité d'extension constitue le secret de la mise en œuvre d'InnovaShoes.

Lorsque des utilisateurs s'inscrivent à la boutique en ligne par le biais d'une connexion via un réseau social, InnovaShoes peut exécuter une règle qui appelle une API, pour activer un service comme FullContact. Il est alors possible d'élargir les informations de l'utilisateur, pour inclure ses données de localisation, âge, sexe, tranche de revenus, adhésion à un réseau social, etc. Cette règle appelle aussi l'API du réseau social pour enrichir le profil de l'utilisateur avec ses intérêts, ses goûts, son graphique social, etc. Vous créez une Règle pour accéder à de puissantes API d'analyse sociale tierces. Par exemple, invoquer un service d'analyse qui évaluera les opinions exprimées dans les tweets contenant @InnovaShoes. Vous créez une autre règle qui enregistre des informations utilisateurs sur la plateforme d'analyse de votre choix. Elles peuvent être sauvegardées dans un référentiel de données et analysées par une suite de produits BI, transmises à une plateforme d'analyses Big Data sur Hadoop, chargées dans un service d'indexation en texte intégral, ou encore extraites vers un outil analytique SaaS. Autant d'informations critiques pour vos équipes de marketing et de scientifiques de données.

Le snippet ci-dessous contient les informations de base d'un profil utilisateur d'Auth0 :

{
    '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': []
}

Vous avez sans doute remarqué comment certaines de ces informations sont immédiatement utiles pour la campagne. Par exemple, avec la propriété « last_login », Innovashoes peut déterminer si un utilisateur s'est connecté ou non depuis un certain temps et lui envoyer une offre pendant sa prochaine visite.

Vous pouvez utiliser l'API FullContact pour obtenir des informations étendues sur vos utilisateurs, incluant le ou les réseaux sociaux associés à leur adresse e-mail. Pour ce faire, vous pouvez utiliser le modèle FullContact pour créer une règle dans le tableau de bord de gestion Auth0.

La combinaison de ces informations vous aidera à réaliser des analyses plus complexes nécessaires à la campagne, par exemple déterminer qui, parmi vos clients, sont les hommes de 20 à 40 ans (FullContact) intéressés par le fitness (Facebook). Grâce à ce profil étendu, vous pouvez vous connecter à une base de données ou à un service d'indexation/recherche, comme ElasticSearch, pour stocker les données des utilisateurs enregistrés. Vous pouvez alors utiliser une règle, ou un processus différent, en utilisant un cron job, comme illustré dans cet exemple. Si vous décidez d'enregistrer des informations utilisateurs à partir d'une règle, vous obtiendrez des résultats analytiques en temps réel. En revanche, si vous utilisez un cron job, vous ne recevrez des résultats analytiques que lorsque ce job est exécuté. Pour choisir votre meilleure approche en fonction de votre projet/de vos besoins, vous devez tenir compte du volume des utilisateurs. Plus ils sont nombreux, plus l'enregistrement de leurs données en temps réel représentera une charge importante. À tel point que votre service pourrait ne pas être à la hauteur des exigences.

Vous pouvez même envoyer ces données directement à un fournisseur d'analyse SaaS, tel qu'Azure Stream Analytics, RapidMiner, une instance Hadoop ou autre.

Chaque connexion d'un utilisateur constitue un signal fort d'engagement. Vous pouvez enrichir vos connaissances sur leurs préférences et leurs intérêts grâce aux règles Auth0 pour enregistrer chaque événement d'authentification dans votre système d'analyse. Vous pouvez ensuite corréler ces événements avec d'autres signaux, tels que les articles placés dans leur panier, les pages visitées, les commentaires laissés, etc. Remarquable par sa puissance, le concept de « découverte progressive » permet de développer le profil complet d'un utilisateur au fil du temps, en lui demandant des informations et en observant ses comportements en ligne.

Une fois les informations nécessaires enregistrées, vous pouvez créer un tableau de bord avec des widgets qui mettent en forme vos analyses sous une forme facilement exploitable. Le référentiel suivant contient le code source d'un tableau de bord simple pour accéder directement aux profils des utilisateurs dans Auth0. Vous pouvez l'utiliser comme point de départ pour créer le vôtre.

Vos spécialistes des données et vos experts des métriques de marketing peuvent utiliser leur propre méthode de visualisation des données utilisateurs et d'analyses dérivées, adaptées à vos besoins les plus spécifiques. Basée sur des API et facilement extensible, la plateforme Auth0 s'intègre parfaitement à toute plateforme analytique, qu'elle soit simple ou complexe. Auth0 ne vous impose aucune analyse ou visualisation inflexible et préétablie dans votre plateforme d'identité. Nous laissons les analyses et les aides à la décision aux experts de ces domaines. Nous intégrons nos services dans ces meilleures solutions avec seulement quelques lignes de JavaScript.

Exemple de tableau de bord analytique

Exemple de tableau de bord analytique

Enfin, vous pouvez ajouter une autre règle pour envoyer l'identifiant Twitter d'un utilisateur (si disponible) à une API qui recherche les tweets de l'utilisateur mentionnant @InnovaShoes et évalue leur opinion. Grâce à ces informations, le service marketing peut envoyer un e-mail aux utilisateurs qui ont tweeté une opinion négative sur votre entreprise, pour tenter de corriger ou de réorienter la situation.

Pour obtenir des statistiques en temps quasi réel, vous pouvez conserver en mémoire des événements d'authentification à haute fréquence à l'aide d'un outil de file d'attente, tel que RabbitMQ en open source, en lui envoyant les informations de connexion avec une autre règle. La file d'attente transmet ensuite les informations au référentiel, à la plateforme d'analyse ou à la solution d'analyse SaaS. Le schéma suivant illustre ce système.

Architecture des cas d'utilisation avec analyse en temps réel

Architecture des cas d'utilisation avec analyse en temps réel

Conclusion

Auth0 est une plateforme d'authentification puissante et non pas un moteur d'analyse. Il ne fournit donc pas d'analyses élaborées prêtes à l'emploi. Cependant, le moteur de règles d'Auth0 vous donne toute la flexibilité requise pour extraire facilement toutes les données dont vous avez besoin à partir des événements d'authentification. Vous pouvez ainsi enrichir les données des profils utilisateurs, avec des API Web, au fur et à mesure que les utilisateurs s'inscrivent et s'authentifient. Grâce à cette puissante fonction en temps réel, vous pouvez mettre en œuvre tous les scénarios d'analyse imaginables. Auth0 offre une liste de modèles de règles, organisés en catégories, qui s'allonge tous les jours. Vous pouvez donc aisément exploiter la puissance d'Auth0 pour fournir une expérience encore plus personnalisée à vos clients, grâce à des analyses avancées des utilisateurs. L'ajout de la fonction Connexion via un réseau social dans vos applications ne prend que quelques minutes. Elle vous apportera des informations riches et actualisées sur vos utilisateurs. En combinant ces deux fonctions, vous élargirez à l'infini le champ de vos possibilités pour découvrir de nouvelles approches et options pour renforcer la participation de vos utilisateurs.

Création d'une nouvelle règle à partir des modèles

Création d'une nouvelle règle à partir des modèles

Essayez aujourd'hui même ! Auth0 propose des formules adaptées aux besoins de chacun. Elles incluent une formule gratuite à vie, qui prend en charge jusqu'à 7 000 utilisateurs actifs et deux fournisseurs d'identité sociale. Pour plus d'informations, consultez la page Tarification ou contactez l'équipe de vente Auth0, si vous avez des questions ou des besoins particuliers.

Annexe A : Prototype de code

Voici quelques exemples de snippets de code pour mettre en œuvre la logique décrite dans ce cas d'utilisation.

Règle d'enrichissement de profil

La règle qui appelle l'API FullContact pour enrichir le profil de l'utilisateur apparaît dans le code suivant :

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

    // si nous arrivons ici, cela signifie que fullcontact a collecté les données que nous ajouterons aux métadonnées.
    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);
  });
}

Ce modèle est une version simplifiée du modèle FullContact fourni par Auth0. L'intégration Slack pour enregistrer les erreurs a été exclue de cette version.

Comme vous le voyez dans le code précédent, lorsque des informations sur l'utilisateur sont collectées, elles sont ajoutées à la propriété user.user_metadata.fullcontact.

Comment créer une fonction qui collecte l'âge de l'utilisateur à partir d'un profil utilisateur enrichi ?

Le code suivant illustre comment créer une méthode d'extraction de l'âge dans le profil utilisateur enrichi. D'autres informations utilisateurs peuvent être collectées par cette même méthode.

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

Règle pour collecter l'identifiant Twitter de l'utilisateur et l'envoyer à l'API Opinion.

La règle suivante montre comment vous pouvez obtenir l'identifiant Twitter d'un utilisateur et envoyer les données à l'API Opinion. Ce processus ne doit être utilisé qu'une seule fois par utilisateur. Par conséquent, la variable sentiment_initialized est définie sur « true » lorsque l'utilisateur est traité.

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

  // Vous devez envoyer vos requêtes via SSL pour protéger les codes secrets de votre appli.
  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;
}

Échantillon de code de tableau de bord

Vous pouvez trouver l'exemple de code du tableau de bord dans ce référentiel. Vous pouvez l'utiliser comme point de départ et construire le vôtre. Vous trouverez dans le fichier « readme » les informations nécessaires pour utiliser cet exemple. Vous pouvez afficher sa version en direct ici.

Inscription gratuite

Commencez à construire et à sécuriser vos applis dès aujourd'hui avec la plateforme d'identité Auth0.

3D login box