Website tracker SDK | copernica.identify()

Met copernica.identify() kun je een bezoeker van je website koppelen aan een profiel of subprofiel in Copernica. Dit is handig als je zelf al wel weet wie je website bezoekt, nog voordat iemand vanuit een mailing heeft doorgeklikt, en de webtracker de identiteit van de bezoeker kent.

Omdat deze functie vanuit de frontend wordt aangeroepen, kun je hem om veiligheidsredenen niet direct met een profiel-id of subprofiel-id gebruiken. In plaats daarvan geef je een token mee, dat je backend vervolgens valideert.

copernica.identify(token);

Token

Het token dat je meegeeft kan bijvoorbeeld een klant-id in je systeem zijn. Om de veiligheid te maximaliseren raden we echter aan een random string of een versleutelde string te gebruiken die alleen jij kunt verwerken. Het is onverstandig om tokens te gebruiken die door bezoekers zelf zijn aan te maken.

Wanneer je copernica.identify() aanroept, gebeurt het volgende:

  • Het token wordt naar Copernica gestuurd.
  • Copernica doet een call terug naar jouw backend om het token te valideren. Hiervoor kun je bij het configureren van de webtracker een validatie-URL opgeven.
  • Copernica stuurt een HTTP POST request naar deze URL.
  • Jouw backend stuurt een JSON object terug om het profiel te identificeren.

De volgende variabelen worden aan de HTTP POST call meegegeven:

  • token: de string die je aan copernica.identify() hebt meegegeven
  • ip: het IP-adres van de bezoeker
  • useragent: de user-agent string van de bezoeker

Beveiligingscheck (optioneel, maar aanbevolen)

Voordat je het token verwerkt, kun je controleren of de call daadwerkelijk afkomstig is van Copernica. Dit is optioneel, omdat het token zelf vaak al versleuteld is en alleen jij het kunt decrypten. Maar om de kans op misbruik te verkleinen kun je de headers van het HTTP POST request inspecteren en controleren of het verzoek daadwerkelijk door Copernica is verzonden. Zie Copernica webhook security voor meer informatie.

Verwerking in je backend

Je vangt de POST call op en verwerkt deze als volgt:

  • Decrypt het token – alleen mogelijk met jouw encryptie/decryptiesleutels.
  • Stuur een JSON string terug met de profielgegevens van de bezoeker. Het object heeft de volgende vorm:
{
  type: 'profile', 
  profile: id 
}

of:

{
  type: 'subprofile', 
  subprofile: id 
}

Kortom, je stuurt een eenvoudig object van het type profile of subprofile terug met het bijbehorende id. Dit antwoord wordt gebruikt om de websessie in Copernica te koppelen aan het juiste profiel of subprofiel.

Voorbeeld

// Frontend: identificeer een bezoeker
copernica.identify('versleuteld_token_123').then(profile => {
    console.log('Visitor gekoppeld aan profiel:', profile.id);
});

Een mogelijke implementatie van je backend, voorbeeld in PHP:

// Optioneel: controleer signature van Copernica

$token = decrypt($_POST['token']); // decrypt met je eigen sleutel

// Zoek profiel op basis van token
$profileId = findProfileIdByToken($token);

// Stuur JSON terug
header('Content-Type: application/json');
echo json_encode([
    'type' => 'profile',
    'profile' => $profileId
]);

Waarschuwing

Gebruik deze feature zorgvuldig:

  • Als je token eenvoudig een klantnummer is, kan dit misbruikt worden door derden.
  • Als je te gemakkelijk teruggeeft vanuit je backend, kan dit leiden tot een data-lek.
  • Zorg altijd dat encryptie en de koppeling naar profiel/subprofiel veilig zijn.