Dokumentasjon
Kom i gang
Logg inn og opprett et nettsted i dashbordet. Du blir eier av nettstedet og får en ingest-nøkkel med en gang. Nøkkelen kan vises igjen fra siden til nettstedet.
Installasjon
Next.js med proxy (middleware)
Middlewaren kjører på forespørselen etter dokumentet. Den ser derfor alle klienter, også AI-crawlere som aldri kjører JavaScript. I Next 16 heter fila proxy.ts.
npm install @iorg1/trackking-next// proxy.ts
import { createTrackingMiddleware } from "@iorg1/trackking-next";
export const proxy = createTrackingMiddleware();
export const config = { matcher: ["/", "/((?!_next/|api/|.*\\..*).*)"] };Next 13 til 15: fila heter middleware.ts, og eksporten heter middleware.
// middleware.ts
import { createTrackingMiddleware } from "@iorg1/trackking-next";
export const middleware = createTrackingMiddleware();
export const config = { matcher: ["/", "/((?!_next/|api/|.*\\..*).*)"] };# .env i Next.js-appen
TRACKKING_ENDPOINT=https://collector.example.com/collect
TRACKKING_API_KEY=<ingest-nøkkelen til nettstedet>Har du en proxy fra før, for eksempel for språk eller innlogging, kaller du track() og returnerer ditt eget svar. På eldre Next er det det samme i middleware.ts, med funksjonen middleware.
// proxy.ts
import { NextResponse, type NextRequest, type NextFetchEvent } from "next/server";
import { track } from "@iorg1/trackking-next";
export function proxy(req: NextRequest, event: NextFetchEvent) {
track(req, event); // sender i bakgrunnen og kaster aldri
// ...din egen logikk...
return NextResponse.next();
}Andre nettsteder med klientskriptet
For WordPress, Shopify og vanlige HTML-sider finnes et skript. Det hentes fra et underdomene av ditt eget domene, så ingen nøkkel ligger i siden.
- Åpne nettstedet i dashbordet, gå til Tracking script og lagre en sporingsvert, for eksempel
stats.example.com. - Legg inn en CNAME-post fra sporingsverten til collectoren. Dashbordet viser målet.
- Legg denne linjen på hver side:
<script defer src="https://stats.example.com/trackking.js"></script>Skriptet ser bare nettlesere som kjører JavaScript. Crawlerne krever middlewaren.
Konverteringer
Meld en konvertering der handlingen faktisk skjer, for eksempel i ruten som lager kontoen. Konverteringen knyttes til kampanjen den besøkende kom fra samme døgn.
npm install @iorg1/trackking-genericimport { headers } from "next/headers";
import { trackConversion } from "@iorg1/trackking-generic";
await trackConversion("signup", { headers: await headers() });Fra nettleseren går hendelsen gjennom en rute på ditt eget domene. Middlewaren fanger den når TRACKKING_EVENT_ROUTE er satt:
# .env i Next.js-appen
TRACKKING_EVENT_ROUTE=/data/:event
// I nettleseren
navigator.sendBeacon("/data/signup?conversion=1");Pass på: TRACKKING_EVENT_ENDPOINT er adressen til collectoren. Den skal aldri peke på /data-ruten i appen din. Da forsvinner alle hendelser uten feilmelding. Som regel trenger du ikke sette den i det hele tatt.
Nøkler
En nøkkel har ett eller begge av to omfang:
- ingest gir lov til å sende inn, altså
/collectog/event. - read gir lov til å lese fra lese-API-et.
Eiere og administratorer ser, lager og trekker tilbake nøkler på siden til nettstedet. En read-nøkkel lager du ved å velge read i nøkkelpanelet på innstillingssiden til nettstedet, og trykke «Generate key». Det samme går med et kall til API-et, med Logto-tokenet ditt, for eksempel fra et skript:
curl -X POST https://collector.example.com/api/v1/sites/<siteId>/keys \
-H "Authorization: Bearer <Logto-token>" \
-H "Content-Type: application/json" \
-d '{"scopes":["read"]}'Endepunkter
Innsamling
| Endepunkt | Hva det gir |
|---|---|
POST /collect | Sidevisning fra middlewaren. Krever ingest-nøkkel. |
POST /event | Hendelse eller konvertering. Krever ingest-nøkkel. |
GET /trackking.js | Klientskriptet, servert fra sporingsverten din. |
POST /view | Sidevisning fra klientskriptet. Nettstedet finnes fra vertsnavnet. |
GET /confirm.js | Bekreftelsesskriptet som skiller nettlesere fra crawlere. |
POST /confirm | Bekreftelsen skriptet sender tilbake. |
Lese-API
Alle ligger under GET /api/v1/sites/:siteId/. Send read-nøkkelen i Authorization: Bearer. Felles parametre er from og to som ISO-datoer, og limit. Med format=csv kommer de samme radene som CSV, klare for et regneark.
| Endepunkt | Hva det gir |
|---|---|
summary | Sidevisninger, besøkende, crawlere og konverteringer. |
timeseries | Sidevisninger per dag, eller per time med ?interval=hour (opptil 7 døgn). Punktene per time har feltet hour, som 13:00. Perioder uten trafikk står som 0. |
categories | Besøk per kategori. |
sources | Henvisninger for menneskelig trafikk. |
pages | Mest besøkte sider. |
bots | Crawlere per navn. |
countries | Toppland for menneskelig trafikk. |
traffic-classes | Trafikken delt i klasser, med mistenkte boter for seg. |
campaigns | Kampanjer med besøk og konverteringer. |
conversions | Konverteringer per navn. |
events | Alle hendelser per navn, også de uten besøksidentitet. |
funnel | Trakt over steg, for eksempel ?steps=page:/,event:signup. |
visitors | Siste besøkende, gruppert. |
visits | Enkeltbesøk bak en rad, med ?dimension= og ?value=. |
utm | UTM-verdier med antall. |
utm-search | Søk i besøk etter UTM-verdi. |
curl "https://collector.example.com/api/v1/sites/<siteId>/summary?from=2026-09-01&to=2026-09-21" \
-H "Authorization: Bearer <read-nøkkel>"