See clicks, installs and trends for your app links
WarpLink records each click when it happens and joins installs back to the link that was tapped, so one report shows clicks, unique clicks and installs. Break them down by country, device, operating system, referrer, campaign source and app, compare with the previous period, and export the rows.
How it works
Create links that name their channel
Give each placement its own link, and set utm_source, utm_medium and utm_campaign where it helps. The breakdowns then read in your own words.
Add the SDK to count installs
Clicks are counted from the first redirect. With the SDK in your app, the first launch asks for the match, and installs appear next to the clicks of the link that drove them.
Open the Analytics page
Pick Today, 7 days, 30 days, 90 days or a custom range. Turn on the comparison to see the totals against the previous period, side by side.
Break the numbers down
Filter by country, referrer, device, operating system, browser, campaign source, app, tap source or AI assistant. Check several values in one dimension to read them together.
Pull the same numbers from a script
GET /v1/analytics returns what the page shows, from the same query service. Ratios come back as a numerator and a denominator, so you decide how to round.
Export or ask an assistant
Export click rows as CSV for the whole organization or one link. An AI client can read the same figures over MCP with the query_analytics MCP tool.
Read a summary from the API
// The numbers the Analytics page shows: the last 30 days against the 30 before.
const params = new URLSearchParams({
surface: "summary",
window_preset: "last_30_days",
compare: "previous",
});
const response = await fetch(`https://api.warplink.app/v1/analytics?${params}`, {
headers: {
// API key from Keys > API
Authorization: "Bearer wl_live_YOUR_API_KEY",
},
});
const summary = await response.json();// Start an export of the click rows in one window. Poll the job, then download the file.
const response = await fetch("https://api.warplink.app/v1/exports", {
method: "POST",
headers: {
// API key from Keys > API
Authorization: "Bearer wl_live_YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
since: "2026-10-01T00:00:00Z",
until: "2026-11-01T00:00:00Z",
}),
});
const job = await response.json();{
"tool": "get_link_analytics",
"input": {
"link_id": "3f9a1c2e-6b7d-4e1a-9c2f-8a5b1d0e7c44",
"days": 7
},
"output": {
"total_clicks": 1842,
"unique_clicks": 1290,
"time_series": [
{ "date": "2026-09-15", "total": 240, "unique": 178 },
{ "date": "2026-09-16", "total": 265, "unique": 191 }
],
"sources": [
{ "source": "app_open", "total": 322, "unique": 210 },
{ "source": "redirect", "total": 1520, "unique": 1080 }
]
}
}What you get
- Linking
- Each figure belongs to a link you configured, so the report describes the same links your readers tap.
- Attribution
- Installs that follow a tap on a WarpLink link, in any channel, are joined to the link, with the click to install rate for the window.
- Analytics
- Clicks, unique clicks and installs with trends, comparisons, breakdowns, CSV export, and the same figures over REST and MCP.
Common questions
How fast do clicks show up?
Clicks are recorded at tap time, and recent taps show in the dashboard within minutes.
What counts as a unique click?
A distinct visitor per link in a rolling 24 hour window, computed when the click is written. One person tapping a link four times in an hour is one unique click and four clicks.
Are bots counted?
No. Requests from recognized bots and crawlers are excluded before a click is recorded, so there is no bot figure to subtract.
How far back can I look?
It depends on the plan: 90 days of retention on Free, 180 on Starter, 365 on Growth, and 3 years on Scale and Unlimited. Free reads the last 30 days.
Can a script or an assistant read the same data?
Yes. GET /v1/analytics and the query_analytics MCP tool return what the Analytics page shows for the same window, filters and reporting time zone.