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.

  1. Åpne nettstedet i dashbordet, gå til Tracking script og lagre en sporingsvert, for eksempel stats.example.com.
  2. Legg inn en CNAME-post fra sporingsverten til collectoren. Dashbordet viser målet.
  3. 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-generic
import { 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å /collect og /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

Endepunkter for innsamling
EndepunktHva det gir
POST /collectSidevisning fra middlewaren. Krever ingest-nøkkel.
POST /eventHendelse eller konvertering. Krever ingest-nøkkel.
GET /trackking.jsKlientskriptet, servert fra sporingsverten din.
POST /viewSidevisning fra klientskriptet. Nettstedet finnes fra vertsnavnet.
GET /confirm.jsBekreftelsesskriptet som skiller nettlesere fra crawlere.
POST /confirmBekreftelsen 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.

Endepunkter i lese-API-et
EndepunktHva det gir
summarySidevisninger, besøkende, crawlere og konverteringer.
timeseriesSidevisninger 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.
categoriesBesøk per kategori.
sourcesHenvisninger for menneskelig trafikk.
pagesMest besøkte sider.
botsCrawlere per navn.
countriesToppland for menneskelig trafikk.
traffic-classesTrafikken delt i klasser, med mistenkte boter for seg.
campaignsKampanjer med besøk og konverteringer.
conversionsKonverteringer per navn.
eventsAlle hendelser per navn, også de uten besøksidentitet.
funnelTrakt over steg, for eksempel ?steps=page:/,event:signup.
visitorsSiste besøkende, gruppert.
visitsEnkeltbesøk bak en rad, med ?dimension= og ?value=.
utmUTM-verdier med antall.
utm-searchSø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>"