Docs

Guía: anónimo → identificado

Captura el consentimiento antes de que alguien inicie sesión y luego asócialo a su cuenta para no perder nada.

El problema: un visitante configura sus preferencias de cookies antes de tener cuenta. Después se registra. No quieres volver a preguntarle, y no quieres que sus elecciones anteriores queden aisladas en un registro anónimo.

La solución: registra al visitante anónimo contra un cookie_id y luego fusiónalo con su identificador real al iniciar sesión. La fusión mueve todas las filas de la bóveda y los identificadores; las lecturas futuras por email: incluyen todo lo que decidió mientras era anónimo.

Antes del inicio de sesión (navegador)

const visitor = 'cookie_id:' + getOrCreateVisitorCookie();

await tc.recordConsent({
  subject: visitor,
  purpose: 'analytics',
  state: 'GRANTED',
  channel: 'cookie_banner',
});

Justo después del inicio de sesión (tu servidor)

La fusión necesita una clave secreta (sk_…): hazla en el servidor, una sola vez, como parte de tu flujo de inicio de sesión.

await tc.mergeSubjects(
  'cookie_id:' + visitorCookieFromRequest,
  'email:' + user.email,
  'login',   // motivo en texto libre, se guarda en el merge
);

A partir de aquí, GET /v1/subjects/email:…/consent refleja también el historial anónimo. Se emite un webhook subject.merged por si necesitas sincronizar algo en tus propios sistemas. Fusionar el mismo par otra vez no tiene efecto.

Si ambos lados ya tenían una decisión para el mismo propósito, gana la más reciente; la fila antigua permanece en el historial, sustituida.