Analytics
lnkify provides real-time click analytics for every shortlink with tracking enabled. Understand where your audience comes from, what devices they use, and when they click your links.
Click Tracking Overview
When tracking is enabled for a shortlink, lnkify records detailed information about every click:
- IP address — the visitor's IP, resolved from Express's trusted
req.ip(derived from the reverse proxy whenTRUST_PROXYis set) so forgedX-Forwarded-Forvalues can't poison analytics. Can be stored anonymized — see Privacy below. - Geographic data — country, city, postal code, and continent (requires
IPREGISTRY_API_KEYconfigured on the server) - ISP — the visitor's internet service provider
- Browser — name and version (e.g. Chrome 125, Safari 17)
- Operating system — name and version (e.g. Windows 11, macOS 14, iOS 17)
- Device timezone — the visitor's local timezone offset
- Timestamp — the exact date and time of the click (server time)
All analytics are private to your account. Visitors are not notified that tracking is occurring.
Viewing Analytics
To see analytics for a specific shortlink:
- Go to the Links screen (
/, the dashboard home) - Find the link you want to analyze
- Click on the link row or the click count number
- The analytics panel opens, showing detailed data for that link
INFO
Only links with tracking enabled collect analytics data. If tracking is off, the click count column shows a dash or "—". You can enable tracking at any time by editing the link.
Click Count
The click count is displayed prominently at the top of the analytics panel:
- Shows the total number of redirects the shortlink has served
- Updated in real-time — new clicks appear within seconds
- The count is cumulative from the moment the link was created (or from when tracking was enabled)
- There is no way to reset the click count without deleting and recreating the link
Geographic Distribution
If your lnkify server has an IPREGISTRY_API_KEY configured, the analytics panel includes:
- By-country chart — a bar chart or choropleth visualization showing which countries your clicks come from
- Each country bar shows the click count and percentage of total
- Hover over a country for exact numbers
Without the IP registry API key, geographic data is unavailable. Contact your instance administrator to enable this feature.
Per-Click Details
Below the summary charts, each individual click is listed with full detail:
| Field | Description |
|---|---|
| IP Address | The visitor's IP address |
| ISP | Internet service provider name (e.g. "Comcast Cable", "Deutsche Telekom") |
| Country | Country name and ISO code (e.g. "United States (US)") |
| City | City name (e.g. "San Francisco") |
| Postal Code | ZIP or postal code where available |
| Continent | Continent name (e.g. "North America") |
| Browser | Name and version (e.g. "Chrome 125.0") |
| OS | Operating system name and version (e.g. "Windows 10") |
| Timezone | Visitor's timezone (e.g. "UTC-7") |
| Timestamp | Date and time of the click (displayed in your local timezone) |
Clicks are listed in reverse chronological order (newest first). Scroll or paginate through the list to see older clicks.
Enabling and Disabling Tracking
You can toggle tracking per-link at any time:
- Click the edit icon on the link in the dashboard
- Toggle the Tracking switch on or off
- Click Save
- Turning tracking off — future clicks are not recorded, but existing analytics data is preserved
- Turning tracking on — clicks from that point forward are recorded (historical clicks during the "off" period are not backfilled)
- The click count only reflects tracked clicks — if you turn tracking off and back on, the count resumes from where it left off
Analytics Are Real-Time
- Each click is recorded at the moment of redirection
- Analytics data appears in the dashboard within seconds
- There is no batching, aggregation delay, or cron job involved
- If your link receives a sudden spike in traffic, you'll see the numbers update live
Limitations
- No analytics export — there is currently no way to download analytics as CSV, JSON, or PDF. This is a planned future feature.
- No time-range filtering — analytics show all-time data; you cannot filter clicks by date range in the current version.
- No aggregate dashboard — each link's analytics are viewed separately; there is no cross-link analytics overview.
- No click-through conversion tracking — lnkify tracks only the redirect event, not what the visitor does after reaching the destination.
- Geo data depends on server config — location data requires the
IPREGISTRY_API_KEYenvironment variable to be set on the server. Without it, only IP, browser, OS, and timestamp are recorded.
Privacy Considerations
- Analytic data is tied to your account and is not shared with other users
- lnkify does not set cookies on visitor browsers for tracking purposes
- Visitor IP addresses are stored alongside click data — consider your privacy obligations
- IP anonymization — server administrators can set
IP_ANONYMIZE=trueso stored IPs are anonymized rather than kept in full - Retention / auto-purge —
IP_RETENTION_DAYSmakes the server purge hit records older than the configured window on a daily sweep - Per-link opt-out — disabling tracking on a link stops all collection for it
See Configuration → Privacy & Data Retention for operator setup.
Next: Custom Domains