Pixel & Attribution
The Replyt pixel shows you which threads send visitors to your site — so you know which replies actually worked.
What the pixel tracks
The pixel records each visit to your site — the traffic source (referrer), the page viewed, and a session ID for grouping page views. No personal data is collected. No cookies are set beyond a session identifier.
- Source — where the visitor came from: Reddit, Hacker News, Google, direct, or other.
- Page views — which pages on your site the visitor viewed during the session.
- Session — groups page views from the same visit together.
Installation
Copy the script tag from your project's Settings → Pixel tab and paste it in the <head> of your website — before the closing </head> tag.
<!-- Replyt Pixel — paste in <head> -->
<script
src="https://replyt.co/px/YOUR_SITE_ID.js"
defer
></script>Replace YOUR_SITE_ID with the site ID shown in your project settings. The script is lightweight (under 1 KB) and deferred so it never blocks page render.
Verification
After installing, click Verify pixel in Settings. Replyt will check if it has received a ping from your domain in the last 24 hours. It may take a few minutes after installation before the first ping is recorded.
Traffic sources
Replyt classifies each visit by its source based on the HTTP Referer header:
document.referrer on mobile apps and many link previews. A portion of Reddit-sourced traffic will appear as "Direct" — this is normal and not a pixel error. UTM parameters can't be used in Reddit comments (accounts get banned for posting tracking links).Results dashboard
The Results page shows your traffic over time as a bar chart, grouped by source. Each bar represents one day. Hover over a bar to see the breakdown.
Orange markers on the chart indicate days when you posted replies. This makes it easy to spot a correlation: traffic spikes on or after a day with replies usually indicate that your reply drove visitors.
Thread-based attribution (soft)
When a visitor arrives from Reddit and the referrer URL matches the URL of a thread you replied to, Replyt marks that visit as a "Win" — an attributed conversion. This is a soft signal, not a hard one, since not every Reddit visitor will trigger the referrer header.
Results are shown in the Results dashboard in a separate column alongside the traffic chart.
Privacy & compliance
- No personal identifiable information (PII) is collected
- No third-party scripts are loaded
- Session IDs are random and not tied to any user identity
- Data is retained for 90 days, then automatically purged
- GDPR-friendly by design — no consent banner required for this level of tracking in most jurisdictions
Disconnecting a site
If you installed the pixel on the wrong domain, you can disconnect it from Project Settings → Pixel → Disconnect site. This generates a new site_id for your project, which effectively unlinks any visits recorded under the old ID.
- The old site's visit data is not deleted — it becomes unlinked (orphaned) from your project.
- After disconnecting, the Pixel section shows your new snippet. Install it on the correct domain.
- Traffic data starts fresh from the new installation date.
AI crawler tracking (optional)
Your pixel already tracks people, and it catches the AI assistants that render your pages (ChatGPT and Perplexity when they browse live). But most crawlers (GPTBot, ClaudeBot, Google-Extended) request raw HTML and never run JavaScript, so no script-based analytics can see them. To catch those too, add this optional server-side snippet. It only fires for known AI bots, so your real traffic and your existing pixel stay untouched.
Next.js / Vercel
Add this to your app's middleware.ts (or merge the two lines into your existing one). Replace YOUR_SITE_ID with the Site ID shown in Project Settings → Pixel.
import { NextResponse } from 'next/server'
export const config = { matcher: '/:path*' }
export function middleware(req) {
const ua = req.headers.get('user-agent') || ''
if (/GPTBot|ChatGPT|OAI-SearchBot|Claude|Perplexity|Google-Extended|Amazonbot|Bytespider|CCBot|meta-externalagent/i.test(ua)) {
fetch('https://replyt.co/api/pixel/crawler', {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify({ s: 'YOUR_SITE_ID', p: req.nextUrl.pathname, ua }),
keepalive: true,
}).catch(() => {})
}
return NextResponse.next()
}Any other stack
From any server or edge function, POST to https://replyt.co/api/pixel/crawler with a JSON body of { s: siteId, p: path, ua: userAgent } when the request User-Agent looks like an AI bot. Replyt classifies it and files it under one of three buckets:
- AI answers: an assistant reading your page to answer a user right now (ChatGPT, Perplexity).
- Indexing: a bot building an AI or search index that surfaces your pages (Googlebot, OpenAI Search).
- Training: a crawler collecting content to train a model (GPTBot, ClaudeBot, Amazonbot).