Documentation Index
Fetch the complete documentation index at: https://docs.usehall.com/llms.txt
Use this file to discover all available pages before exploring further.
Use Next.js middleware to forward data to the Log visit endpoint.
In Next.js, Middleware allows you to run code before a request is completed. Read the official documentation for more details.
Setup
- Set up the
HALL_API_KEY environment variable with your Hall API key.
- Create a
middleware.ts file in your Next.js project root to implement the analytics middleware.
Example
The example below demonstrates how to forward data from Next.js headers function.
import { NextRequest, NextResponse } from 'next/server'
export async function middleware(request: NextRequest) {
const requestPath = request.nextUrl.pathname + request.nextUrl.search
const requestMethod = request.method
const requestIp =
request.headers.get('x-forwarded-for')?.split(',')[0] ||
request.headers.get('x-real-ip') ||
request.ip ||
'127.0.0.1'
const requestHeaders = {
'User-Agent': request.headers.get('user-agent'),
'Host': request.headers.get('host'),
'Referer': request.headers.get('referer'),
}
fetch('https://analytics.usehall.com/visit', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${process.env.HALL_API_KEY}`,
},
body: JSON.stringify({
request_path: requestPath,
request_method: requestMethod,
request_ip: requestIp,
request_headers: requestHeaders,
request_timestamp: Date.now()
}),
})
return NextResponse.next()
}
export const config = {
matcher: ['/((?!api|_next/static|_next/image|favicon.ico).*)'],
}