Ir al contenido

SDKs de servidor: quickstart

Todo lo de abajo usa tu write key secreta (configuración del proyecto → API keys). Guárdala en una variable de entorno; jamás debe llegar a un browser.

Terminal window
composer require kilden/kilden-php
$kilden = new Kilden\Client(getenv('KILDEN_SECRET_KEY'));
$kilden->track('user_42', 'order_completed', [
'revenue' => 99.9,
'currency' => 'CLP',
]);

Los eventos se encolan en memoria y se envían en batches. Llama a close() cuando tu proceso se apaga (en PHP lo cubren Laravel, FPM y los shutdown hooks; en Go usa defer client.Close()); lo que siga encolado pasado un deadline de 10 segundos se descarta en lugar de colgar tu proceso.

identify hace upsert de los traits de la persona. El distinct_id es explícito en cada llamada — los SDKs de servidor no guardan estado de identidad.

$kilden->identify('user_42', ['plan' => 'pro', 'email' => '[email protected]']);

La verificación de identidad necesita que tu backend firme un JWT de vida corta para el usuario logueado. IdentitySigner lo hace sin librería de JWT — y tu endpoint son tres líneas. Firma únicamente un id que tu backend haya autenticado: firmar un user id tomado del input del request permite que cualquiera se haga pasar por cualquiera, y encima con sello de “verificado”.

$signer = new Kilden\IdentitySigner(getenv('KILDEN_IDENTITY_SECRET'), ['kid' => 'k1']);
$token = $signer->sign($user->id, [
'traits' => ['plan' => $user->plan],
]);

¿Usas Laravel? kilden/laravel trae una ruta POST /kilden/identity publicable detrás de tu middleware de auth — sin escribir código.

El plugin de WordPress expone lo mismo en /wp-json/kilden/v1/identity, cache-safe por construcción.

isEnabled(flag_key, distinct_id, { person_properties?, default? })
getFeatureFlag(flag_key, distinct_id, { person_properties?, default? })

Los evalúa Kilden server-side, con cache in-process de 30 segundos por distinct_id, un intento con timeout duro y después tu default. La semántica completa está en la guía de feature flags.