Event de tracking - SocialGouv/code-du-travail-numerique GitHub Wiki

Objectif du document

Avoir une documentation technique et fonctionelle des events de tracking implémentés dans le CDTN, ainsi qu'une méthodologie et des bonnes pratiques pour ajouter un évènement afin de garder de la cohérence.

Fonctionnement général

Le tracking des events du CDTN se fait grâce à une librarie javascript, initialisé dans le code cdtn chaque évènement customisé est envoyé avec un appel à la fonction matopush : matopush(["trackEvent", "eventCategory", "eventAction", "eventName", "eventValue"])

Matomo fusionne les évènements d'une même session à la fin de celle-ci en utilisant un id de visite autogénéré par fingerprinting, cet ID permet de retracer les évènements successifs d'une même visite, qu'on peut retrouver dans la page visit logs.

Visualiser les events dans Matomo:

Dans la section Behaviour --> Events on peut retrouver la liste des évènements categories et les volumes associés sur une période donnée.

Liste des events de tracking:

tracking générique (automatique sur chaque page)

lors d'une visite sur une page du site, par défaut matomo envoie un évènement de visite, qui contient des informations (le nom de la page et son url).

Exemple d'information envoyé suite à une visite sur la page des thèmes:

Type Donnée Info
action_name Thèmes - Code du travail numérique Titre de la page
url https://code.travail.gouv.fr/themes Lien vers la page
urlref / Origine de l'utilisateur (ici la page d'accueil)

Outils

Simulateurs

Voici la liste des simulateurs disponibles (avec leurs étapes)

 Titre Étapes
Indemnités de licenciement info_generales, anciennete, salaires, primes, indemnite_legale
Indemnités de précarité info_cc, info_generales, remuneration, indemnite
heures pour recherche d'emploi info_cc, rupture, infos, résults
Préavis de licenciement situation, info_cc, infos, results
Préavis de démission infos_cc, infos, results
Préavis de retraite origine, ccn, infos, anciennete, result
Évènements génériques sur les simulateurs

Pour chaque simulateur, on va envoyer des évènements générique.

Arrivée sur l'outil
Type Contenu Détail
category outil
action view_step_Nom du simulateur Nom du simulateur à remplacer par le titre du simulateur
name start
Étape suivante
Type Contenu Détail
category outil
action view_step_Nom du simulateur Nom du simulateur à remplacer par le titre du simulateur
name Nom de l'étape L'étape sur laquelle l'utilisateur est arrivé
Étape précédente
Type Contenu Détail
category outil
action click_previous_Nom du simulateur Nom du simulateur à remplacer par le titre du simulateur
name Nom de l'étape L'étape sur laquelle l'utilisateur est revenu
Étape pour renseigner sa convention collective

Cette étape n'est pas présente sur tous les simulateurs.

Les event envoyé sont divisés en 2 partie. Il y a les events envoyés sur l'action de l'utilisateur et les events envoyés au clic sur le bouton suivant quand on passe à la prochaine étape (les events ne sont pas envoyés s'il y a une erreur dans les données saisies).

Elle est divisée en 3 parcours distints :

  • p1 : Je sais quelle est ma convention collective (je la saisis)
  • p2 : Je ne sais pas quelle est ma convention collective (je la recherche)
  • p3 : Je ne souhaite pas renseigner ma convention collective (je passe l'étape)
  1. Choix du parcours (envoyé au clic sur suivant)
Type Contenu Détail
category cc_search_type_of_users
action click_p1 ou click_p2 ou click_p3 Selon le parcours: p1, p2 et p3
name Nom du simulateur Nom du simulateur à remplacer par le titre du simulateur
  1. Recherche (envoyé sur action de l'utilisateur)

Pour le parcours p1 et p2, on va avoir des events pour la recherche par mots clés de l'utilisateur. L'event est envoyé à chaque recherche de l'utilisateur. La recherche étant automatique (pas de clic sur un bouton recherche), il y a un debounce de 300ms.

Type Contenu Détail
category cc_search Recherche d'un convention collective sur le parcours p1
action Nom du simulateur Nom du simulateur à remplacer par le titre du simulateur
name {"query":"boulan"} JSON contant le contenu de la requête utilisateur
Type Contenu Détail
category enterprise_search Recherche d'une entreprise sur le parcours p2
action Nom du simulateur Nom du simulateur à remplacer par le titre du simulateur
name {"address":"69007","query":"odon"} JSON contant le contenu de la requête utilisateur
  1. Choix de l'entreprise, parcours p2 (envoyé au clic sur suivant)
Type Contenu Détail
category enterprise_select
action Nom du simulateur Nom du simulateur à remplacer par le titre du simulateur
name {"label":"MANUFACTURE FRANCAISE DES PNEUMATIQUES MICHELIN","siren":"855200507"} Information sur l'entreprise sélectionnée
  1. Choix de la convention collective (envoyé au clic sur suivant)
Type Contenu Détail
category cc_select_p1 ou cc_select_p2 Selon le parcours choisi
action Nom du simulateur Nom du simulateur à remplacer par le titre du simulateur
name idcc1234 IDCC de la convention collective choisie préfixée avec idcc
  1. Support de la convention collective (envoyé au clic sur suivant)
Type Contenu Détail
category outil Selon le parcours choisi
action cc_select_traitée ou cc_select_non_traitée Indique si la convention collective est traitée par nos services ou non
name 1234 IDCC de la convention collective
  1. Les CC qui bloquent l'utilisateur qui continue dans les simulateurs où la CC est obligatoire
Type Contenu Détail
category outil Selon le parcours choisi
action view_step_Préavis de démission ou view_step_Heures d'absence pour rechercher un emploi Indique le simulateur dans lequel on est
name user_blocked_info_cc

Se référer à https://github.com/SocialGouv/code-du-travail-numerique/issues/4458

Recherche CC events (ancien)

  • CC_SEARCH:
event_category: "cc_search"
event_action: "/outils/indemnite-precarite" # slug outil
event_name: "uuid : query"
  • CC_SELECT:
event_category: "cc_select"
event_action: "/outils/indemnite-precarite" # slug outil
event_name: "uuid : Bureaux d'études techniques, cabinets d'ingénieurs-conseils et sociétés de conseils" # nom de la CC selectionnée
  • CC_SEARCH_HELP
event_category: "cc_search_help"
event_action: "/outils/indemnite-precarite" # slug outil
event_name: "b8c01ee4-a615-400c-961a-fb676e3691e0" # id session

Recherche CC events (nouveau)

  • START
event_category: "outil"
event_action: "view_step_Trouver sa convention collective"
event_name:"start"
  • CC_SEARCH_TYPE_OF_USERS (click_p1 or click_p2 or je_n_ai_pas_d_entreprise)
event_category: "cc_search_type_of_users"
event_action: "click_p1" or click_p2 or "je_n_ai_pas_d_entreprise" #P1: recherche par cc P2: recherche par entreprise
event_name: "Trouver sa convention collective" # name outil
event_value: "2b451f0b-a398-420f-91f6-a1a4be6ed796" # id session
  • CC_SEARCH
event_category: "cc_search"
event_action: "Trouver sa convention collective"
event_name: {"query":"industrie pharmaceutique"} # objet recherche utilisateur
event_value: "2b451f0b-a398-420f-91f6-a1a4be6ed796" # id session
  • CC_SELECT_P1
event_category: "cc_select_p1" # p1 pour parcours 1: recherche par cc
event_action: "Trouver sa convention collective"
event_name: "idcc44" # numéro de la cc
event_value: "2b451f0b-a398-420f-91f6-a1a4be6ed796" # id session
  • ENTERPRISE_SEARCH
event_category: "enterprise_search"
event_action: "Trouver sa convention collective"
event_name: {"address":"","query":"bnp paribas"} # objet
event_value: "2b451f0b-a398-420f-91f6-a1a4be6ed796" # id session
  • ENTERPRISE_SELECT
event_category: "enterprise_select"
event_action: "Trouver sa convention collective"
event_name: {"label":"JOBTEASER","siren":"508271715"} # objet
event_value: "2b451f0b-a398-420f-91f6-a1a4be6ed796" # id session
  • CC_SELECT_P2:
event_category: "cc_select_p2"
event_action: "Trouver sa convention collective"
event_name: idcc1486 # numéro de cc
event_value: "2b451f0b-a398-420f-91f6-a1a4be6ed796" # id session
  • Click je n'ai pas d'entreprise :
event_category: "cc_search_type_of_users"
event_action: "select_je_n_ai_pas_d_entreprise"
event_name: Nom du Simulateur # e.g Indemnité de Licenciement

Pour l'outil Trouver sa CC

event_category: "cc_search_type_of_users"
event_action: "click_je_n_ai_pas_d_entreprise"
event_name: Trouver sa convention collective

Search & suggestions

  • Suggestions
event_category: "selectedSuggestion"
event_action: "resto" # user query at the selection time
event_name: "tickets restaurants" # selection option actually clicked
event_category: "candidateSuggestions"
event_action: "tickets restaurants###tickets resto###ticket restaurant###titre restaurant###jours fériés travaillés restauratio" # list of options ### delimited at the selection time
  • Search
event_category: "candidateResults" # deprecated?
event_action: "tickets restaurants" # actual query passed in search
search: "tickets restaurants" # default matomo search events
event_category: "nextResultPage" # click sur "plus de résultats"
event_action: "tickets restaurants" # actual query passed in  original search
event_category: "selectResult" # click sur un résultat
event_action: {"algo":"pre-qualified","url":"/code-du-travail/r3262-7"}  # algo: result source, url: result destination.

Pages CC

  • pagecc_clickcontrib
event_category: "pagecc_clickcontrib" # au moment d'un click pour dérouler une  sous-section
event_action: "Bureaux d'études techniques, cabinets d'ingénieurs-conseils et sociétés de conseils" # nom de la CC
event_name: "quelles-sont-les-conditions-dindemnisation-pendant-le-conge-de-maternite" # slug de la sous-section
  • pagecc_clicktheme:
event_category: "pagecc_clicktheme" # au moment d'un click pour dérouler une sous-section des "Articles de la convention collective"
event_action: "Bureaux d'études techniques, cabinets d'ingénieurs-conseils et sociétés de conseils" # nom de la CC
event_name: "raa-45" # ??
  • default outlink when click on articles
  • pagecc_searchcc
event_category: "pagecc_searchcc" # au moment d'une recherche dans la barre "Recherche dans la convention collective"
event_action: "Bureaux d'études techniques, cabinets d'ingénieurs-conseils et sociétés de conseils" # nom de la CC
event_name: "congés payés" # recherches entrée par l'utilisateur

Modèles de courriers

Type Contenu Détail
category page_modeles_de_documents
action type_CTRL_C
name nom de la page par exemple "lettre-de-demission" ou "contrat-de-travail-a-duree-indeterminee"

Contributions

  • Tous les events de recherche de CC
    • sans l'event START
    • avec l'event cc_select_traitée
    • l'event click_p3 est envoyé si l'utilisateur click sur "Accéder aux informations générales sans renseigner ma convention collective"
  • Afficher les informations (pas de CC séléctionné)
event_category: "contribution"
event_action: "click_afficher_les_informations_sans_CC"
event_name: "/contribution/les-conges-pour-evenements-familiaux"
  • Afficher les informations générales (si une CC est séléctionnée)
event_category: "contribution"
event_action: "click_afficher_les_informations_générales"
event_name: "/contribution/les-conges-pour-evenements-familiaux"
  • Bouton afficher les infos personnalisés (click_afficher_les_informations_CC)
event_category: "contribution"
event_action: "click_afficher_les_informations_CC"
event_name: "/contribution/les-conges-pour-evenements-familiaux"

Content Page Events:

  • Contact
event_category: "contact" # click sur un résultat
event_action: "click_contact_sr_modale"
event_name: "/recherche?q=tickets+restaurants" # url source
  • Feedback
event_category: "feedback" # au moment du click sur oui/non
event_action: "negative" # feedback value (positive or negative)
event_name: "/fiche-ministere-travail/la-remuneration-du-salarie-en-contrat-a-duree-determinee" # url source
event_category: "feedback_suggestion" # déclenché au moment du click sur "envoyer"
event_action: "Je préfère plus de rémunération" # suggestion de l'utilisateur
event_name: "/fiche-ministere-travail/la-remuneration-du-salarie-en-contrat-a-duree-determinee" # url source
event_category: "feedback_category" # déclenché au moment du click sur "envoyer"
event_action: "Je ne suis pas satisfait de cette réglementation." # catégorie sélectionnée par l'utilisateur
event_name: "/fiche-ministere-travail/la-remuneration-du-salarie-en-contrat-a-duree-determinee" # url source
  • Contenu lié (recommendations)
event_category: "selectRelated" # déclenché au moment du click sur l'article
event_action: {"reco":"search","selection":"fiche-ministere-travail/le-contrat-a-duree-determinee-cdd#Dans-quels-cas-le-contrat-a-duree-determinee-peut-il-etre-requalifie-en-nbsp"} # reco: type d'algo utilisé pour la reco, selection: contenu de destination
  • Partages:
event_category: "clic_share" # déclenché au moment du click sur l'icon
event_action: "https://code.travail.gouv.fr/fiche-ministere" # url sourceselection: contenu de destination
event_name: "facebook" # type d'icon selectionné
  • glossaire_clicktooltip
event_category: "glossaire_clicktooltip" # déclenché au moment du click sur l'info-bulle "convention-collective"
event_action: "convention collective" ou "collective agreement" # ??
event_name: "/contribution/1501-dans-le-cadre-dun-cdd-quel-est-le-montant-de-lindemnite-de-fin-" # url source

Ajouter un nouvel event

Note: il n'est pas nécessaire de tracker la page sur laquelle l'evenement est déclenché

L'ajout d'un nouvel event dépend de son objectif, il doit suivre de préférence le schéma des events déjà implementé à savoir:

  • event_category: permet de regrouper les évènements que l'on souhaite voir ensemble exemple:
event_category: "feedback",
event_name:"positive" ou "negative"

ou

event_category: "nom d'un outil",
event_name:"étape de l'outil"

Note: ce champ est obligatoire

  • event_action: permet de détailler l'action qui déclenche l'évènement Note: ce champ est optionel Les event de volume,
  • event_name: un nom ou une valeur propre à un évènement exemple:
event_category: "nom d'un outil",
event_action: "select_ancienneté",
event_name: "12 années"

Note: ce champ est optionel

  • event_value même utilisation que event name

Note: il est possible de tracker plusieurs informations dans un même event en utilisant un objet: {"info1":12, "info2": "cdd"}

Tester les events envoyés via un browser

Chrome

  • S'assurer de ne pas avoir d'extension adblocker (page de navigation privée)
  • right click --> inspect
  • onglet network
  • filtrer les events par nom "matomo"
  • chaque ligne correspond à un évènement selectionner l'event qu'on veut inspecter, et descendre à la section Query String Parameters
  • e_c correspond à event_category
  • e_a correspond à event_action
  • e_n correspond à event_name
  • e_v correspond à event_value

:warning: Il est préférable d'éviter les changements non rétro-compatibles les évènements déclenchés permettent d'alimenter les Dashboards Kibana via Monolog