Skip to main content
Flujo de integración
Language

Events API

Integre cside fingerprinting en su aplicación. Recopile señales del navegador, genere tokens de sesión y obtenga inteligencia detallada sobre los visitantes desde su backend.

Esta guía le explica cómo integrar la Events API de cside fingerprinting de principio a fin: cargar el script del cliente, generar un token de sesión, enviarlo a su backend e interpretar la respuesta.

Flujo de integración

Agregue el script a su página

Incluya el script de cside fingerprinting en el <head> de su página. Debe cargarse antes de llamar a cualquier función de fingerprinting.

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

Envíe la telemetría y reciba un token de sesión

Una vez que el script se haya cargado, la función global sendClientTelemetry estará disponible. Cargar el script no crea un fingerprint de sesión por sí solo. Llame a sendClientTelemetry(externalIds?) para enviar telemetría a /client y recibir un token de sesión. Pase un objeto externalIds opcional si quiere adjuntar sus propios identificadores.

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

// O llamarla sin argumentos
// const fingerprintResponse = await sendClientTelemetry();

if (!fingerprintResponse?.ok) {
  throw new Error("La solicitud de telemetría de fingerprint falló.");
}

const result = await fingerprintResponse.json();

Parámetros

ParámetroTipoRequeridoDescripción
externalIdsRecord<string, string>NoIdentificadores opcionales que quiere adjuntar al fingerprint, como accountId, orderId o email.

Para recibir la señal throwawayEmail, pase la dirección de correo electrónico en este objeto usando la clave email.

Valor de retorno

La función devuelve la respuesta HTTP de la API /client. Analice el cuerpo JSON para obtener el objeto de respuesta que contiene la cadena del token de sesión:

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

Extraiga result.token como el token de sesión de fingerprint en el navegador y envíe solo esa cadena del token de sesión a su backend.

Recupere datos de fingerprint con el token de sesión en su backend

En su backend, use el token de sesión extraído con el endpoint de token de cside que coincida con los datos que necesita.

if (!sessionToken) {
  throw new Error("No se devolvió un token de sesión de fingerprint.");
}

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

Cuerpo de la solicitud

/client devuelve JSON como { "token": "..." }. Extraiga result.token como el token de sesión y envíe esa cadena como cuerpo de la solicitud. No envíe el objeto JSON completo.

Opciones de lookup del token

Puede usar el token de sesión sin procesar con el servicio de fingerprinting de cside de dos maneras:

EndpointRespuestaÚselo cuando
/token/v1/clientJSONNecesite la carga completa de la respuesta de fingerprinting.
/token/v1/clientIdTexto planoSolo necesite el identificador único del fingerprint.

El endpoint clientId devuelve solo el identificador único del fingerprint como texto plano. Si no existe un identificador único del fingerprint para el token de sesión, devuelve 404.

Ejemplo de solicitud 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();

Interprete la respuesta del backend

Su backend devuelve una respuesta JSON que contiene el resultado de identificación y las señales asociadas. Consulte la referencia completa de la respuesta a continuación.

Referencia de la respuesta

Esta referencia de respuesta se aplica a /token/v1/client.

La respuesta del backend incluye identificación del visitante, detalles del navegador, inteligencia IP y un conjunto de señales de detección de fraude.

Campos de nivel superior

CampoTipoDescripción
linked_idstringUn identificador que usted asoció con este visitante.
tagsobjectMetadatos personalizados adjuntos al evento.
timestampnumberMarca de tiempo Unix (milisegundos) del evento.
event_idstringIdentificador único para este evento de fingerprinting.
urlstringLa URL de la página donde se recopiló el fingerprint.
ip_addressstringLa dirección IP del visitante.
user_agentstringLa cadena User-Agent sin procesar del navegador del visitante.
client_referrerstringLa URL de referencia de la página.

browser_details

Detalles sobre el navegador y el sistema operativo del visitante.

CampoTipoDescripción
browser_namestringNombre del navegador (por ejemplo, "Chrome").
browser_major_versionstringNúmero de versión principal.
browser_full_versionstringCadena de versión completa.
osstringNombre del sistema operativo.
os_versionstringVersión del sistema operativo.
devicestringTipo de dispositivo (por ejemplo, "Other", "Mobile").

identification

El resultado de identificación principal del visitante.

CampoTipoDescripción
visitor_idstringUn identificador único y estable para este visitante.
confidence.scorenumberPuntuación de confianza entre 0 y 1.
confidence.versionstringVersión del modelo de confianza utilizado.
visitor_foundbooleanSi este visitante ha sido visto antes.
first_seen_atnumberMarca de tiempo Unix (ms) de la primera identificación del visitante.
last_seen_atnumberMarca de tiempo Unix (ms) de la identificación más reciente del visitante.

supplementary_id_high_recall

Una identificación secundaria optimizada para mayor recall (menos falsos negativos) a costa de una precisión ligeramente menor.

CampoTipoDescripción
visitor_idstringIdentificador del visitante bajo el modelo de alto recall.
visitor_foundbooleanSi se encontró al visitante.
confidence.scorenumberPuntuación de confianza entre 0 y 1.
confidence.versionstringVersión del modelo de confianza utilizado.
first_seen_atnumberMarca de tiempo Unix (ms) de la primera identificación.
last_seen_atnumberMarca de tiempo Unix (ms) de la identificación más reciente.

proximity

Datos de proximidad geográfica del visitante.

CampoTipoDescripción
idstringIdentificador de ubicación de proximidad.
precision_radiusnumberRadio de precisión en kilómetros.
confidencenumberPuntuación de confianza para la estimación de proximidad.

ip_info

Información de la dirección IP del visitante.

CampoTipoDescripción
v4.addressstringDirección IPv4.
v6.addressstringDirección IPv6.

ip_blocklist

Si la IP del visitante aparece en listas de bloqueo conocidas.

CampoTipoDescripción
email_spambooleanLa IP está asociada con spam de correo electrónico.
attack_sourcebooleanLa IP es una fuente de ataque conocida.
tor_nodebooleanLa IP es un nodo de salida de Tor.

Señales de fraude y entorno

Señales que indican atributos sospechosos o notables del visitante.

CampoTipoDescripción
bot.resultstringEstado de detección de bot. Use "detected" o "not_detected".
bot.scorenumberPuntuación numérica de bot.
bot.signalstring[]Señales que contribuyeron a la detección de bot.
root_appsbooleanEl dispositivo tiene aplicaciones root/superusuario instaladas.
emulatorbooleanEl dispositivo es un emulador.
proxybooleanEl visitante está usando un proxy.
proxy_confidencestringNivel de confianza: "low", "medium" o "high".
vpnbooleanEl visitante está usando una VPN.
vpn_confidencestringNivel de confianza: "low", "medium" o "high".
incognitobooleanEl navegador está en modo incógnito/privado.
tamperingbooleanLos atributos del navegador han sido manipulados.
jailbrokenbooleanEl dispositivo tiene jailbreak.
fridabooleanSe detectó el toolkit de instrumentación Frida.
virtual_machinebooleanEl visitante está ejecutando en una máquina virtual.
developer_toolsbooleanLas herramientas de desarrollo del navegador están abiertas.
mitm_attackbooleanSe detectó un ataque man-in-the-middle.
replayedbooleanLa solicitud es una repetición de una solicitud anterior.
high_activity_devicebooleanNúmero inusualmente alto de identificaciones desde este dispositivo.
throwawayEmailbooleantrue cuando el identificador email enviado es una dirección de correo electrónico desechable o temporal.

raw_device_attributes

Componentes de bajo nivel del fingerprint del navegador.

CampoTipoDescripción
mathstringHash de la salida del motor matemático.
vendorstringCadena del proveedor de GPU/gráficos.

Ejemplo completo de respuesta

{
  "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?