SDK Node
Pacchetto zero-dependency per Node 18+. Permette assignment e tracking server-side, utile per SSR, edge functions, webhook handlers.
Installazione
bash
npm install @lvbl/sdk-node
# oppure
pnpm add @lvbl/sdk-node
bun add @lvbl/sdk-nodeInizializzazione
ts
import { LvblClient } from "@lvbl/sdk-node";
const lvbl = new LvblClient({
projectId: "YOUR_PROJECT_ID",
baseUrl: "https://project--YOUR_PROJECT.lovable.app",
});Assignment
ts
// Assegna o recupera la variante per un utente
const assignment = await lvbl.assign({
experimentId: "EXPERIMENT_ID",
userId: "user-123",
});
if (assignment.variant === "treatment") {
// ...
}Tracking conversioni
ts
// Traccia una conversione
await lvbl.track({
experimentId: "EXPERIMENT_ID",
userId: "user-123",
event: "purchase",
value: 49.00,
currency: "EUR",
});Esempio Express
ts
import express from "express";
import { LvblClient } from "@lvbl/sdk-node";
const app = express();
const lvbl = new LvblClient({ projectId: process.env.LVBL_PROJECT_ID! });
app.get("/pricing", async (req, res) => {
const userId = req.cookies.uid || crypto.randomUUID();
const { variant } = await lvbl.assign({
experimentId: "pricing-test",
userId,
});
res.cookie("uid", userId, { httpOnly: true });
res.render(variant === "B" ? "pricing-b" : "pricing-a");
});API
client.assign({ experimentId, userId })โ ritorna{ variant, payload }client.getVariant(id, userId)โ solo il nome della varianteclient.track({ experimentId, userId, event, value?, currency? })