Skip to main content
Next.js trackingPlatform solution

Conversion tracking for Next.js

Next.js gives you something no other framework in this list does: a server you already own, in the same codebase as the front end. That makes the correct answer unusually clean — money events from route handlers or server actions, funnel events from the client, and a first-party endpoint served from your own domain through a rewrite. The complications are App Router navigation not being a page load, and server components not running client-side effects at all.

Free30 minutesNo obligation

Next.js tracking · what breaks

What goes wrong on Next.js

  1. 01

    App Router navigation isn't a page load

    So page-view-bound events fire once and stop.

  2. 02

    Server components run no client effects

    Code you expected to execute simply doesn't.

  3. 03

    Events split between server and client

    Without a deliberate decision about which does what.

  4. 04

    Hydration timing

    Same as any React app.

Next.js tracking · the fix

What changes — Next.js tracking

  • Route changes emitting events

    From a persistent client component.

  • Money events from route handlers

    Server-side, in the same codebase.

  • A first-party endpoint via rewrite

    On your own domain, no separate infrastructure.

Next.js tracking · architecture

What Next.js actually lets you do

A framework with a server in the same repository, which changes what's easy.

  1. 1

    Route handlers and server actions

    Server-side event emission, in your own codebase.

  2. 2

    Rewrites

    Serve a first-party tagging endpoint from your own domain without separate infrastructure.

  3. 3

    Middleware

    Set first-party cookies in an HTTP response, which escapes the seven-day script cap.

  4. 4

    Server components

    Which don't run client effects — a common surprise.

  5. 5

    App Router navigation

    Client-side, so not a page load.

Next.js tracking · diagnose

Where Next.js tracking breaks, in diagnostic order

Each check rules out a class of cause, so by the last one there is usually a single explanation standing.

  1. 01

    Navigate between routes and watch for events

    One event then silence is the App Router signature.

  2. 02

    Check whether tracking code sits in a server component

    Effects there never run.

  3. 03

    Confirm where the money event is emitted

    Client or route handler.

  4. 04

    Check whether cookies are set in middleware

    The difference between 7 days and 400 in Safari.

  5. 05

    Reconcile against backend records

    For a closed month.

Next.js tracking · prove

The QA evidence — Next.js tracking

Run on Next.js specifically, on a live conversion rather than in preview mode.

Source of truth

your backend order or CRM records

  • Route changes confirmed emitting events across App Router navigation.
  • Money events confirmed arriving from a route handler.
  • First-party cookies confirmed persisting past seven days in Safari on a real device.
  • Endpoint confirmed served from your own domain via rewrite.
  • Counts reconciled against backend records for a closed month.
  • Reconciled over a fully closed window, matched per record rather than on totals.
  • Re-checked 30 days later, and after any platform update.

Next.js tracking · free audit

What we check in the free audit

  • Navigate between routes and watch for events
  • Check whether tracking code sits in a server component
  • Confirm where the money event is emitted
  • Check whether cookies are set in middleware
  • Reconcile against backend records

Checked against

your backend order or CRM records

Get my free conversion tracking audit

Free30 minutesNo obligation

Next.js tracking · when not to buy

When you don't need this on Next.js

Worth reading before you buy anything, from us or anyone.

  • If your Next.js app already emits route-change events and sources money events server-side, you've done the work.
  • Your engineers can do all of this in their own codebase, and on Next.js it's less work than on any other framework here.
  • The rewrite trick is publicly documented and takes an afternoon. You may not need help with it.
  • Reconcile against your backend before assuming anything is broken.

Next.js tracking · what we deliver

The event map on Next.js

  • Route change

    A client component bound to the router, persisting across navigation.

  • Interaction events

    Client-side, after hydration.

  • Money event

    A route handler or server action, at the moment the transaction is recorded.

  • Refund or cancellation

    Server-side, as a reversal.

  • Click identifiers

    Captured on first load, stored, available server-side.

Written guarantee

95%+ tracking accuracy

Measured against your backend order or CRM records. Miss it and we keep working at no cost.

Get my free conversion tracking audit

Pricing

Pick the package that fits your ad spend

Browser-side starter

$400One-time fee · lifetime ownership

Repairs and verifies the browser-side setup you already have, on a live conversion. Honest about its ceiling on this platform.

  • Root cause fixed, not worked around
  • Verified on a live conversion
  • Reconciled against your own records
  • Written handover
Fix what I have

1st-party server-side

Recommended

$800One-time fee · most popular

Money events sent from your own records through a first-party container on your subdomain, so the browser can no longer lose them.

  • First-party server container on your own subdomain
  • Money events from your records, not the browser
  • Deduplicated on a shared event ID at every destination
  • First-party cookies beyond Safari's 7-day cap
  • 95%+ accuracy and 8+ Meta EMQ, guaranteed in writing
Rebuild it server-side

Full 1st-party stack

$1,800One-time fee · lifetime ownership

Every paid channel server-side plus the offline loop, with monitoring so the next break surfaces in days.

  • Everything in 1st-party server-side
  • Pinterest, Snapchat, Reddit and LinkedIn CAPI
  • CRM and offline conversion loop
  • Refunds and cancellations corrected wherever each platform allows it
  • Monitoring on every destination
Get the full stack

FAQ

Next.js tracking questions, answered

App Router navigation is client-side, so it isn't a page load. Bind events to the router in a client component that persists across navigation.

Free · 30 min

Get Next.js tracking done properly

Free30 minutesNo obligation