Reporting
Performance data you can reconcile
One report engine powers the network dashboard, the partner portal, the advertiser portal, CSV exports and the API — so the totals partners see are the totals you pay and invoice.
Group by up to three dimensions, filter by anything you can group by, and open any number down to the click that produced it.
Report builder
Three levels of grouping, one query
Choose up to three dimensions in order, add filters and pick your metrics. Expand a row to drill into the next level. Totals come from the same query — never from adding rows up in the browser.
- Filters on any dimension — is, or is not, one or more values — plus click status and conversion status.
- Date presets from today to last month, or any custom range; daily and hourly trend charts for time groupings.
- Count conversions by conversion time or by the time of their click.
- Start from a ready-made view — daily, offers, partners, sub IDs, Google Ads, geo or devices — and save your own.
Dimensions
Group and filter by any of these, up to three levels deep. Days, hours, weeks (starting Monday) and months follow the report's time zone.
Time
- Date
- Hour
- Week
- Month
Network
- Offer
- Partner
- Advertiser
- Smart link
- Event
Sub IDs
- Sub 1
- Sub 2
- Sub 3
- Sub 4
- Sub 5
- Source ID
Traffic
- Traffic source
- Tracking domain
- Link type
Ad platform
- Campaign ID
- Ad group ID
- Ad / creative ID
- Keyword
- Placement
Geo
- Country
- Region
- City
Device
- Device type
- Operating system
- Browser
Metrics
Every metric has one definition, used in every view, export and API response.
| Metric | Definition |
|---|---|
| Impressions | Impression-pixel hits |
| Clicks | Every logged click |
| Unique clicks | First click per offer, partner, IP address and user agent within 24 hours |
| Bot clicks | Clicks flagged as bots (network view only) |
| CTR | Clicks ÷ impressions |
| Conversions | Approved conversions |
| Pending · Rejected | Conversions awaiting review · rejected, including duplicates |
| CVR | Approved conversions ÷ unique clicks |
| Revenue · Payout | Approved revenue and partner payout, including per-click offers (unique, non-bot clicks × rate) |
| Profit · Margin | Revenue − payout · profit ÷ revenue |
| EPC · RPC · CPC | Earnings, revenue and payout per click |
| Sale amount · Avg. sale | Sum of approved sale amounts · per approved conversion |
Dashboard
The first look of the day
The dashboard answers “how are we doing and what needs attention?” before you open a single report.
- Clicks, conversions, revenue and profit with the change on the previous period and a trend line.
- Hourly trend for single days, daily trend for longer ranges.
- Top offers, partners, countries and traffic sources for the selected range.
- Pending access requests and failed postbacks in the last 24 hours, one click from the queue that resolves them.
- The same date picker and time zone as every report.
Clicks explorer
Every click, searchable
When a number looks wrong, the answer is usually in the raw clicks. The explorer lists them newest first, with everything that was captured.
- Search by click ID, Google click ID (gclid, gbraid, wbraid), Meta or Microsoft click ID, sub 1 or source ID.
- Filter by offer, partner, click status, link type, country, device and traffic source; show or hide bots.
- Open a click to see every stored column, its extra parameters and the conversions it produced.
- Unique, bot and data-centre flags on every row.
- Export the filtered clicks to CSV.
Conversion review
Review conversions before you pay for them
Offers that need checking can record conversions as pending. Your team — and, if you allow it, the advertiser — decides what is approved.
- Filter by status, offer, partner, event, conversion method and duplicates; search by conversion, click or transaction ID.
- Approve or reject one conversion or hundreds at once, with a reason. Approving fires the partner postbacks that have not fired yet.
- Add a conversion by hand, or import a CSV by click ID or transaction ID — preview what will be created, updated or left unchanged, then apply.
- Rejections keep their reason:
duplicate,outside_window,cap_exceeded,postback,manualorimport. - Optionally let advertisers reject their own conversions in their portal. Every change is written to the audit log.
Postback log
A delivery record for every partner postback
When a partner says a conversion never reached them, the log shows exactly what was sent, when, and what their server answered.
- The expanded URL or body, the method, the HTTP status, the duration and the first 500 characters of the response.
- Automatic retries after 1 minute, 5 minutes, 30 minutes, 2 hours and 6 hours, then marked failed.
- Retry one delivery, a selection, or every failed delivery that matches your filter.
- Your team is notified when a workspace has ten or more failed deliveries in an hour.
- Test fires from the partner portal are labelled, so they never look like real conversions.
Live view
Watch traffic arrive as it happens
For launches, new partners and integration tests: clicks and conversions stream in as they are recorded, without refreshing.
- Refreshed every two seconds while the tab is open; pause it to read.
- Each click shows offer, country and device; each conversion shows event, partner and amount.
- Clicks flagged as bots are marked in the stream.
- Slows down automatically when the tab is in the background.
Built so the numbers agree
- Group any report by up to three dimensions
- 3 levels
- Each with one definition everywhere
- 18 metrics
- Network, partner and advertiser views from one engine
- 3 audiences
- Raw click logs kept, then deleted
- 13 months
Exports & API
Take the data wherever you need it
Every report can leave the panel the way you need it — as a file, as a saved view for your team, or through the API.
CSV export
Saved reports
Reporting API
curl "https://app.trackcrown.com/api/v1/reports? preset=last7 &group_by=offer,country &metrics=clicks,unique_clicks,conversions,revenue,payout,profit &filters=country:in:US|CA" \
-H "Authorization: Bearer $API_KEY"Counting rules
The rules behind every number
Most reporting disputes come from two people counting differently. These rules are the same in every view, export and API response.
One time zone per report
Never mixed currencies
Totals from the source
Each audience sees its own view
Your team sees everything. Partner and advertiser views are limited on the server for every page, export and API key — not just hidden in the interface.
| Data | Network | Partner | Advertiser |
|---|---|---|---|
| Traffic and conversions | Everything | Their own | Their own offers |
| Revenue | Yes | Never | Shown as their cost |
| Payout | Yes | Shown as their earnings | Never |
| Profit, margin, RPC, CPC | Yes | Never | Never |
| Bot clicks, IP addresses, fraud flags | Yes | Never | Never |
| Partner identity | Yes | Themselves | Partner ID and code only |
FAQ
Reporting questions
How numbers are counted, how fresh they are and how to get them out.
How quickly do clicks appear in reports?
Why can a partner's total differ from what I see for that partner?
Can I report on conversions by the date of the click?
What happens to money in different currencies?
How far back can I report?
Can I get the data into my own warehouse?
See your own numbers in it
We'll set up a workspace with your offers so you can build the reports you use today.