Docs › Logs
Analytics

Logs

There's a moment in every web's life when the affiliate network says "we never got your postback" and you're certain you set everything up right. That argument used to end in the chat: two sides, zero facts, lots of feelings. The Logs screen ends it differently — with a fact. Every event is recorded here: every click, every API call, every postback the tracker tried to send. With the response code, the request body, the error text.

This is the "something broke" screen. Three raw logs live behind one tabbed screen: Clicks, API log and Postbacks. All three are read-only. You don't edit anything, you don't delete anything — you just see what actually happened.

One of the cats loves the Clicks tab, watching the rows drip down from the top, ears up. Not because anything interesting is happening — it just likes it when everything is under watch.

Every tab is built the same way: a paged table with a pager, filters above it, and a row detail view on click. What differs is the columns and which kind of event you're looking at.

One shared trait, learn it up front: there's no sorting here. None. That's not a bug or a missing feature — it's deliberate. Logs always run newest-first (by internal id, descending), and clicking a column header sorts nothing. Want to find something? Filter, don't sort.

Clicks tab

The raw visit log. Each row is one click on your link: who arrived, from where, which campaign they hit and where the stream sent them.

The Clicks tab: the raw visit log, 50 rows per page, newest first.

Columns:

«Кампания», «Поток» and «Лендинг» are the words you're used to; they label the columns across every tab. In the real AlterCPA Lite the same objects are called поток, путь and сайт — the correct words you'll graduate to. The subtlety everyone trips on is the Russian word «поток»: in AlterCPA Lite it's the top object (labelled here «Кампания»), while the familiar «поток» is a branch (labelled «Поток»; AlterCPA Lite calls it «путь»). One word, two floors.

Shows 50 rows per page, newest first. The Device, OS, Browser, utm_campaign and utm_medium columns are hidden by default — see the Columns section below to switch them on.

Filters (the Filters button above the table): date (from/to), campaign, stream, landing, click id, geo, IP, hour, filter (cloaker), browser, OS, mobile, all utm_*, domain, SubID.

The Hour filter trap. The hour filter matches the server's time, while the table displays time in your timezone. If your zone differs from the server's, the numbers drift: set "Hour: 13" and the rows may read, say, 16:xx. It's not a bug — the filter and the column simply measure time from different points. Same zone, same hour.

API log tab

The raw log of incoming API calls: what hit the tracker from the outside — pixels, connectors, third-party integrations. Come here when "the pixel didn't land" or "the integration went quiet."

The API log tab: green OK and red Error pills. The errors-only filter (code -2) leaves just the red rows.

Columns:

Shows 30 rows per page, newest first.

Filters: date (from/to), tags tag1…tag7, and Error — a dropdown with three modes: all records, clean only (no errors), or errors only. "Errors only" is code -2 under the hood; pick it and only the red rows remain. Exactly what you want when you're hunting for what broke.

Postbacks tab

The raw log of outgoing postbacks: what the tracker sent to the network or to your own integration, and what came back. This is the very screen where a web finally sees why the postback didn't fire — instead of blaming the tracker in the chat.

The Postbacks tab: outgoing postbacks — Result, HTTP code and send time.

Columns:

Shows 30 rows per page, newest first.

Filters: date (from/to), campaign, click, lead, landing, event.

Result is about whether the postback was delivered, not about the lead's status. A green pill means "the server accepted it," a red one means "it didn't." Whatever the network later decides about the lead's status — that's in Conversions, a different story.

Row detail view

Clicking a row (or the expand glyph on the right) opens the details. This is where the actual detective work begins.

The detail view: request and response bodies. JSON is pretty-printed — this is where "why it didn't fire" becomes visible.

These two blocks — the request body and the response body — are what answer "why didn't the postback fire." The response code and error text inside them are the proof.

Columns

The Columns button above the table opens the field list — tick fields on and off. In Clicks this is how you pull in the hidden Device, OS, Browser, utm_campaign and utm_medium.

The setting is saved on the server and survives a page reload — it's not browser memory, it's your account preference. Switch Device on once and it stays on tomorrow, and on a different computer.

CSV export

The export button downloads the current tab as CSV. The file ships with a BOM and CRLF line breaks — so Excel opens it with correct Cyrillic right away and doesn't nag about encoding.

In the export the campaign appears as a human name (not its internal hash code), geo is UPPERCASED, money is formatted with currency. So the CSV reads the same as the table on screen.

How to do it: workflows

Workflow 1. Figure out why a postback didn't fire

  1. Open Logs → the Postbacks tab. (Or the API log tab, if the problem is in an incoming call — a pixel or a connector.)
  2. Click Filters, set the date range (from/to). Optionally narrow by campaign, click or lead.
  3. Filter for errors. In the API log, set the Error filter to errors only (code -2) — only the red rows remain. In Postbacks, look for rows with a red Result pill and a non-200 in the HTTP column.
  4. Click the problem row — the detail view opens.
  5. Read the request body and the response body. The HTTP code, the error text, and what actually went to the network's server are all here.

Workflow 2. Trace a specific click

  1. Open Logs → the Clicks tab.
  2. Click Filters and set what you know: click id, geo, IP, campaign, stream, source, SubID, date.
  3. Once you've found the row, click it — the detail view opens with the full visit meta (full User-Agent, domain, all utm_*, payout, etc.).

Workflow 3. Export a log

  1. Open the tab you want and set filters so only what you need remains in the table.
  2. Optionally set up Columns — the export mirrors the current tab.
  3. Click export — you get a CSV with BOM and CRLF, human campaign names and UPPERCASED geo. Open it in Excel.

Coming from an old tracker?

Familiar layout, just gathered into one tabbed screen:

One difference in principle: click and campaign ids travel as short hex codes here. The table shows you the human campaign name, while under the hood a click and a campaign "fold" into a short code and back. You only notice it in one place — filter URLs; it has no effect on working with the log.