Skip to main content
Integratieflow
Language

Events API

Integreer cside fingerprinting in uw applicatie. Verzamel browsersignalen, genereer sessietokens en haal gedetailleerde bezoekersinformatie op via uw backend.

Deze handleiding begeleidt u bij het integreren van de cside fingerprinting Events API van begin tot eind: het laden van het clientscript, het genereren van een sessietoken, het verzenden naar uw backend en het interpreteren van de respons.

Integratieflow

Voeg het script toe aan uw pagina

Neem het cside fingerprinting-script op in de <head> van uw pagina. Het moet worden geladen voordat u fingerprintingfuncties aanroept.

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

Verzend telemetry en ontvang een sessietoken

Zodra het script is geladen, wordt de globale functie sendClientTelemetry beschikbaar. Het laden van het script maakt niet zelf een sessiefingerprint. Roep sendClientTelemetry(externalIds?) aan om telemetry naar /client te verzenden en een sessietoken te ontvangen. Geef optioneel een externalIds-object mee als u eigen identifiers wilt koppelen.

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

// Of roep de functie zonder argumenten aan
// const fingerprintResponse = await sendClientTelemetry();

if (!fingerprintResponse?.ok) {
  throw new Error("Fingerprint telemetry-aanvraag is mislukt.");
}

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

Parameters

ParameterTypeVereistBeschrijving
externalIdsRecord<string, string>NeeOptionele identifiers die u aan de fingerprint wilt koppelen, zoals accountId, orderId of email.

Geef het e-mailadres in dit object mee met de sleutel email om het throwawayEmail-signaal te ontvangen.

Retourwaarde

De functie retourneert de HTTP-respons van de /client-API. Parse de JSON-body om het response-object op te halen dat de sessietokenstring bevat:

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

Haal result.token als het fingerprint-sessietoken uit de browserrespons en stuur alleen die sessietokenstring naar uw backend.

Haal fingerprintdata op met het sessietoken in uw backend

Gebruik in uw backend het uitgehaalde sessietoken met het cside token-endpoint dat past bij de data die u nodig heeft.

if (!sessionToken) {
  throw new Error("Fingerprint-sessietoken is niet geretourneerd.");
}

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

Verzoekbody

/client retourneert JSON zoals { "token": "..." }. Haal result.token eruit als het sessietoken en verstuur die string als request body. Verstuur niet het volledige JSON-object.

Token lookup-opties

U kunt het ruwe sessietoken op twee manieren gebruiken met de cside fingerprinting-service:

EndpointResponseGebruik wanneer
/token/v1/clientJSONU de volledige fingerprinting response payload nodig hebt.
/token/v1/clientIdPlatte tekstU alleen de unieke fingerprint-ID nodig hebt.

Het clientId-endpoint retourneert alleen de unieke fingerprint-ID als platte tekst. Als er geen unieke fingerprint-ID voor het sessietoken bestaat, retourneert het 404.

Voorbeeld van een backendrequest

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

Interpreteer de backendrespons

Uw backend retourneert een JSON-respons met het identificatieresultaat en bijbehorende signalen. Zie de volledige responsreferentie hieronder.

Responsreferentie

Deze responsreferentie geldt voor /token/v1/client.

De backendrespons bevat bezoekersidentificatie, browsergegevens, IP-intelligentie en een reeks fraudedetectiesignalen.

Velden op het hoogste niveau

VeldTypeBeschrijving
linked_idstringEen identificatie die u aan deze bezoeker hebt gekoppeld.
tagsobjectAangepaste metadata gekoppeld aan het evenement.
timestampnumberUnix-tijdstempel (milliseconden) van het evenement.
event_idstringUnieke identificatie voor dit fingerprinting-evenement.
urlstringDe pagina-URL waar de fingerprint is verzameld.
ip_addressstringHet IP-adres van de bezoeker.
user_agentstringDe onbewerkte User-Agent-string van de browser van de bezoeker.
client_referrerstringDe verwijzings-URL van de pagina.

browser_details

Details over de browser en het besturingssysteem van de bezoeker.

VeldTypeBeschrijving
browser_namestringBrowsernaam (bijv. "Chrome").
browser_major_versionstringHoofdversienummer.
browser_full_versionstringVolledige versiereeks.
osstringNaam van het besturingssysteem.
os_versionstringVersie van het besturingssysteem.
devicestringApparaattype (bijv. "Other", "Mobile").

identification

Het primaire identificatieresultaat van de bezoeker.

VeldTypeBeschrijving
visitor_idstringEen stabiele, unieke identificatie voor deze bezoeker.
confidence.scorenumberBetrouwbaarheidsscore tussen 0 en 1.
confidence.versionstringVersie van het gebruikte betrouwbaarheidsmodel.
visitor_foundbooleanOf deze bezoeker eerder is gezien.
first_seen_atnumberUnix-tijdstempel (ms) van de eerste identificatie van de bezoeker.
last_seen_atnumberUnix-tijdstempel (ms) van de meest recente identificatie van de bezoeker.

supplementary_id_high_recall

Een secundaire identificatie geoptimaliseerd voor hogere recall (minder vals-negatieven) ten koste van iets lagere precisie.

VeldTypeBeschrijving
visitor_idstringBezoekersidentificatie onder het high-recall-model.
visitor_foundbooleanOf de bezoeker is gevonden.
confidence.scorenumberBetrouwbaarheidsscore tussen 0 en 1.
confidence.versionstringVersie van het gebruikte betrouwbaarheidsmodel.
first_seen_atnumberUnix-tijdstempel (ms) van de eerste identificatie.
last_seen_atnumberUnix-tijdstempel (ms) van de meest recente identificatie.

proximity

Geografische nabijheidsgegevens van de bezoeker.

VeldTypeBeschrijving
idstringNabijheidslocatie-identificatie.
precision_radiusnumberPrecisieradius in kilometers.
confidencenumberBetrouwbaarheidsscore voor de nabijheidsschatting.

ip_info

IP-adresinformatie van de bezoeker.

VeldTypeBeschrijving
v4.addressstringIPv4-adres.
v6.addressstringIPv6-adres.

ip_blocklist

Of het IP-adres van de bezoeker op bekende blokkeerlijsten staat.

VeldTypeBeschrijving
email_spambooleanIP is geassocieerd met e-mailspam.
attack_sourcebooleanIP is een bekende aanvalsbron.
tor_nodebooleanIP is een Tor-exitnode.

Fraude- en omgevingssignalen

Signalen die verdachte of opvallende bezoekerskenmerken aangeven.

VeldTypeBeschrijving
bot.resultstringBotdetectiestatus. Gebruik "detected" of "not_detected".
bot.scorenumberNumerieke botscore.
bot.signalstring[]Signalen die hebben bijgedragen aan de botdetectie.
root_appsbooleanApparaat heeft root-/supergebruikersapps geïnstalleerd.
emulatorbooleanApparaat is een emulator.
proxybooleanBezoeker gebruikt een proxy.
proxy_confidencestringBetrouwbaarheidsniveau: "low", "medium" of "high".
vpnbooleanBezoeker gebruikt een VPN.
vpn_confidencestringBetrouwbaarheidsniveau: "low", "medium" of "high".
incognitobooleanBrowser is in incognito-/privémodus.
tamperingbooleanBrowserkenmerken zijn gemanipuleerd.
jailbrokenbooleanApparaat is gejailbreakt.
fridabooleanFrida-instrumentatietoolkit gedetecteerd.
virtual_machinebooleanBezoeker draait in een virtuele machine.
developer_toolsbooleanBrowser-ontwikkelaarstools zijn geopend.
mitm_attackbooleanMan-in-the-middle-aanval gedetecteerd.
replayedbooleanHet verzoek is een herhaling van een eerder verzoek.
high_activity_devicebooleanOngebruikelijk hoog aantal identificaties van dit apparaat.
throwawayEmailbooleantrue wanneer de meegestuurde email-identifier een wegwerp- of tijdelijk e-mailadres is.

raw_device_attributes

Laag-niveau browserfingerprint-componenten.

VeldTypeBeschrijving
mathstringHash van de wiskundige engine-uitvoer.
vendorstringGPU-/grafische leveranciersreeks.

Volledig responsvoorbeeld

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