Skip to main content
Flux d’intégration
Language

Events API

Intégrez cside fingerprinting dans votre application. Collectez les signaux du navigateur, générez des tokens de session et récupérez des informations détaillées sur les visiteurs depuis votre backend.

Ce guide vous accompagne dans l’intégration de l’Events API de cside fingerprinting de bout en bout : chargement du script client, génération d’un token de session, envoi au backend et interprétation de la réponse.

Flux d’intégration

Ajoutez le script à votre page

Incluez le script cside fingerprinting dans le <head> de votre page. Il doit être chargé avant d’appeler toute fonction de fingerprinting.

<script
  src="https://<YOUR_SUBDOMAIN>.csidefd.com/client.js"
  referrerpolicy="origin"
  data-src="6">
</script>

Envoyez la télémétrie et recevez un token de session

Une fois le script chargé, la fonction globale sendClientTelemetry devient disponible. Charger le script ne crée pas de fingerprint de session tout seul. Appelez sendClientTelemetry(externalIds?) pour envoyer la télémétrie vers /client et recevoir un token de session. Passez un objet externalIds facultatif si vous voulez attacher vos propres identifiants.

const fingerprintResponse = await sendClientTelemetry({
  email: "user@example.com",
  accountId: "1234567890",
});

// Ou appelez-la sans arguments
// const fingerprintResponse = await sendClientTelemetry();

if (!fingerprintResponse?.ok) {
  throw new Error("La requête de télémétrie fingerprint a échoué.");
}

const result = await fingerprintResponse.json();
const sessionToken = result.token;

Paramètres

ParamètreTypeObligatoireDescription
externalIdsRecord<string, string>NonIdentifiants facultatifs que vous souhaitez attacher au fingerprint, comme accountId, orderId ou email.

Pour recevoir le signal throwawayEmail, transmettez l’adresse e-mail dans cet objet avec la clé email.

Valeur de retour

La fonction renvoie la réponse HTTP de l’API /client. Analysez le corps JSON pour récupérer l’objet de réponse qui contient la chaîne du token de session :

{
  "token": "eyJhbGciOiJIUzI1NiIs..."
}

Extrayez result.token comme le token de session de fingerprint dans le navigateur et envoyez uniquement cette chaîne de token de session à votre backend.

Récupérez les données de fingerprint avec le token de session dans votre backend

Dans votre backend, utilisez le token de session extrait avec l’endpoint token cside qui correspond aux données dont vous avez besoin.

if (!sessionToken) {
  throw new Error("Le token de session de fingerprint n'a pas été renvoyé.");
}

const response = await fetch("https://api.cside.com/token/v1/client", {
  method: "POST",
  headers: { "Content-Type": "text/plain" },
  body: sessionToken,
});

const data = await response.json();

Corps de la requête

/client renvoie du JSON comme { "token": "..." }. Extrayez result.token comme le token de session et envoyez cette chaîne comme corps de la requête. N’envoyez pas l’objet JSON complet.

Options de lookup du token

Vous pouvez utiliser le token de session brut avec le service de fingerprinting de cside de deux façons :

EndpointRéponseÀ utiliser lorsque
/token/v1/clientJSONVous avez besoin de la charge utile complète de la réponse de fingerprinting.
/token/v1/clientIdTexte brutVous avez seulement besoin de l’identifiant unique du fingerprint.

L’endpoint clientId renvoie uniquement l’identifiant unique du fingerprint en texte brut. Si aucun identifiant unique du fingerprint n’existe pour le token de session, il renvoie 404.

Exemple de requête backend

const csideResponse = await fetch("https://api.cside.com/token/v1/client", {
  method: "POST",
  headers: { "Content-Type": "text/plain" },
  body: sessionToken,
});

const data = await csideResponse.json();

Interprétez la réponse du backend

Votre backend renvoie une réponse JSON contenant le résultat d’identification et les signaux associés. Consultez la référence complète de la réponse ci-dessous.

Référence de la réponse

Cette référence de réponse s’applique à /token/v1/client.

La réponse du backend comprend l’identification du visiteur, les détails du navigateur, l’intelligence IP et un ensemble de signaux de détection de fraude.

Champs de niveau supérieur

ChampTypeDescription
linked_idstringUn identifiant que vous avez associé à ce visiteur.
tagsobjectMétadonnées personnalisées attachées à l’événement.
timestampnumberHorodatage Unix (millisecondes) de l’événement.
event_idstringIdentifiant unique pour cet événement de fingerprinting.
urlstringL’URL de la page où le fingerprint a été collecté.
ip_addressstringL’adresse IP du visiteur.
user_agentstringLa chaîne User-Agent brute du navigateur du visiteur.
client_referrerstringL’URL de référence de la page.

browser_details

Détails sur le navigateur et le système d’exploitation du visiteur.

ChampTypeDescription
browser_namestringNom du navigateur (par exemple "Chrome").
browser_major_versionstringNuméro de version majeure.
browser_full_versionstringChaîne de version complète.
osstringNom du système d’exploitation.
os_versionstringVersion du système d’exploitation.
devicestringType d’appareil (par exemple "Other", "Mobile").

identification

Le résultat d’identification principal du visiteur.

ChampTypeDescription
visitor_idstringUn identifiant unique et stable pour ce visiteur.
confidence.scorenumberScore de confiance entre 0 et 1.
confidence.versionstringVersion du modèle de confiance utilisé.
visitor_foundbooleanSi ce visiteur a déjà été vu.
first_seen_atnumberHorodatage Unix (ms) de la première identification du visiteur.
last_seen_atnumberHorodatage Unix (ms) de l’identification la plus récente du visiteur.

supplementary_id_high_recall

Une identification secondaire optimisée pour un meilleur rappel (moins de faux négatifs) au prix d’une précision légèrement inférieure.

ChampTypeDescription
visitor_idstringIdentifiant du visiteur sous le modèle à haut rappel.
visitor_foundbooleanSi le visiteur a été trouvé.
confidence.scorenumberScore de confiance entre 0 et 1.
confidence.versionstringVersion du modèle de confiance utilisé.
first_seen_atnumberHorodatage Unix (ms) de la première identification.
last_seen_atnumberHorodatage Unix (ms) de l’identification la plus récente.

proximity

Données de proximité géographique du visiteur.

ChampTypeDescription
idstringIdentifiant de localisation de proximité.
precision_radiusnumberRayon de précision en kilomètres.
confidencenumberScore de confiance pour l’estimation de proximité.

ip_info

Informations sur l’adresse IP du visiteur.

ChampTypeDescription
v4.addressstringAdresse IPv4.
v6.addressstringAdresse IPv6.

ip_blocklist

Si l’IP du visiteur apparaît sur des listes de blocage connues.

ChampTypeDescription
email_spambooleanL’IP est associée à du spam par e-mail.
attack_sourcebooleanL’IP est une source d’attaque connue.
tor_nodebooleanL’IP est un nœud de sortie Tor.

Signaux de fraude et d’environnement

Signaux indiquant des attributs suspects ou notables du visiteur.

ChampTypeDescription
bot.resultstringStatut de détection de bot. Utilisez "detected" ou "not_detected".
bot.scorenumberScore bot numérique.
bot.signalstring[]Signaux qui ont contribué à la détection du bot.
root_appsbooleanL’appareil a des applications root/superutilisateur installées.
emulatorbooleanL’appareil est un émulateur.
proxybooleanLe visiteur utilise un proxy.
proxy_confidencestringNiveau de confiance : "low", "medium" ou "high".
vpnbooleanLe visiteur utilise un VPN.
vpn_confidencestringNiveau de confiance : "low", "medium" ou "high".
incognitobooleanLe navigateur est en mode incognito/privé.
tamperingbooleanLes attributs du navigateur ont été falsifiés.
jailbrokenbooleanL’appareil est jailbreaké.
fridabooleanToolkit d’instrumentation Frida détecté.
virtual_machinebooleanLe visiteur s’exécute dans une machine virtuelle.
developer_toolsbooleanLes outils de développement du navigateur sont ouverts.
mitm_attackbooleanAttaque man-in-the-middle détectée.
replayedbooleanLa requête est une répétition d’une requête précédente.
high_activity_devicebooleanNombre inhabituellement élevé d’identifications depuis cet appareil.
throwawayEmailbooleantrue lorsque l’identifiant email envoyé est une adresse e-mail jetable ou temporaire.

raw_device_attributes

Composants de bas niveau du fingerprint du navigateur.

ChampTypeDescription
mathstringHash de la sortie du moteur mathématique.
vendorstringChaîne du fournisseur GPU/graphique.

Exemple complet de réponse

{
  "linked_id": "somelinkedId",
  "tags": {},
  "timestamp": 1708102555327,
  "event_id": "1708102555327.NLOjmg",
  "url": "http://www.example.com/login",
  "ip_address": "61.127.217.15",
  "user_agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) ...",
  "client_referrer": "https://example.com/blog/my-article",
  "browser_details": {
    "browser_name": "Chrome",
    "browser_major_version": "74",
    "browser_full_version": "74.0.3729",
    "os": "Windows",
    "os_version": "7",
    "device": "Other"
  },
  "identification": {
    "visitor_id": "Ibk1527CUFmcnjLwIs4A9",
    "confidence": { "score": 0.97, "version": "1.1" },
    "visitor_found": false,
    "first_seen_at": 1708102555327,
    "last_seen_at": 1708102555327
  },
  "supplementary_id_high_recall": {
    "visitor_id": "3HNey93AkBW6CRbxV6xP",
    "visitor_found": true,
    "confidence": { "score": 0.97, "version": "1.1" },
    "first_seen_at": 1708102555327,
    "last_seen_at": 1708102555327
  },
  "proximity": {
    "id": "w1aTfd4MCvl",
    "precision_radius": 10,
    "confidence": 0.95
  },
  "bot": {
    "result": "not_detected",
    "score": 0,
    "signal": []
  },
  "root_apps": false,
  "emulator": false,
  "ip_info": {
    "v4": { "address": "94.142.239.124" },
    "v6": { "address": "2001:db8:3333:4444:5555:6666:7777:8888" }
  },
  "ip_blocklist": {
    "email_spam": false,
    "attack_source": false,
    "tor_node": false
  },
  "proxy": true,
  "proxy_confidence": "low",
  "vpn": false,
  "vpn_confidence": "high",
  "incognito": false,
  "tampering": false,
  "jailbroken": false,
  "frida": false,
  "virtual_machine": false,
  "developer_tools": false,
  "mitm_attack": false,
  "replayed": false,
  "high_activity_device": false,
  "throwawayEmail": false,
  "raw_device_attributes": {
    "math": "5f030fa7d2e5f9f757bfaf81642eb1a6",
    "vendor": "Google Inc."
  }
}
Was this page helpful?