Track the cost and ROAS of paid sources AxiTrace cannot connect to, such as Favi, Ceneo, Skapiec, Idealo or Awin. Describe their traffic with site, medium and campaign rules, import costs as an amount for a date range, a pasted table, a CSV, XLS, XLSX or PDF file or a screenshot, and see spend, ROAS, allocated spend and the conversions the channel reports next to your ad platforms.

Custom paid channels: comparison sites, affiliates and imported costs

Some of the money you spend on traffic never shows up next to your ad platforms: comparison sites such as Favi, Ceneo, Skapiec or Idealo, affiliate networks such as Awin, and any other paid source without an API AxiTrace can connect to. A custom paid channel fixes that. You tell AxiTrace which visits belong to the channel, import its costs from the invoice or the report it sends you, and the channel gets its own tab with spend, ROAS and cost per order, and its spend counts in Overview, Profit, Lead orders, All campaigns and Products.

Where to find it. In AxiTrace open Paid Campaigns → Channels to add and edit channels. Every active channel then has its own tab in Paid Campaigns, named after the channel, with an Import costs button. Custom channels are available on every plan, up to 25 active channels per workspace. Reading a file with AI uses AI credits (section 6).

On this page

1

What a custom channel is

A custom channel has three parts: a name, rules that describe which visits belong to it, and the costs you import. AxiTrace already records every visit and order with its source, medium and campaign. The rules pick out the visits of the channel from that record, so the channel shows sessions, orders and revenue as soon as you save it, also for past months. The costs you import add spend, ROAS and cost per order.

A custom channel does not change how a visit is classified in the traffic reports: a visit from a comparison site stays in the same traffic source and channel group as before (for example Affiliates or Referral). The channel is a layer on top that adds the costs. Nothing is sent to the channel, and AxiTrace never connects to the channel's own account.

Ad platforms that AxiTrace syncs or plans to sync (Google, Meta, Instagram, TikTok, Microsoft, OpenAI, Criteo, Pinterest, Snapchat, LinkedIn and Reddit) cannot be custom channels: their sites are refused in the rules, so their spend is never counted twice.

2

Create a channel from a preset

  1. Open Paid Campaigns → Channels.
  2. Under Add a channel, pick a preset or Other paid source. If AxiTrace already sees traffic from a comparison or affiliate site, it suggests it at the top of the page with the sessions and orders of the last 30 days; Track its cost opens the editor with that site filled in.
  3. Check the name, the currency of the costs you will import, and whether those amounts are gross (section 8).
  4. Look at the Preview next to the rules: sessions, orders and revenue the rules match over the last 30 days, the top campaigns and the matched sources. Zero matches usually means the site value differs from what the channel puts in its links; change it until the preview shows the traffic you expect.
  5. Click Save channel. The channel tab appears in Paid Campaigns at once.
PresetSite in the ruleNotes
Favifavi.plFurniture and home comparison site. Favi reports net amounts, so the preset is set to net.
Ceneoceneo.plPrice comparison site.
Skapiecskapiec.plPrice comparison site.
Idealoidealo.de, idealo.at, idealo.fr, idealo.it, idealo.es, idealo.co.ukOne group per country site.
Awinawin, awin1.comAffiliate network: the utm_source value and the click domain.
Other paid sourceYour ownAny other paid source.

The preset sites are starting points. Each channel can tag its links differently, so always check the preview before you save.

3

Rules and matching order

A rule is a list of groups. A visit belongs to the channel when it matches every condition of any one group. Every group has exactly one Site condition and may add a Medium and a Campaign condition. Use Add another site for a channel that sends traffic from several domains.

FieldOperatorsWhat it compares
SiteisThe referring domain or the utm_source value: favi.pl matches visits whose referrer is favi.pl and visits tagged utm_source=favi.pl. *.example.com also matches every subdomain.
Mediumis, is any ofThe utm_medium value, for example cpc.
Campaignis, starts with, containsThe utm_campaign value, for example everything that starts with favi-.

A rule holds at most 10 groups of 5 conditions each. Values are compared without regard to upper and lower case.

The first matching channel wins

Every visit and order is counted for one custom channel at most: the first channel in the list on the Channels page whose rules match it. Drag the channels or use the arrows to change the order. The preview tells you when traffic is already claimed by a channel higher in the list.

Rule changes apply to the past

Rules are applied when a report is read, not when a visit is recorded. A new or changed rule therefore applies to every past day at once, with no rebuild and no waiting. A source seen for the first time can take up to an hour to appear in the preview.

Archive instead of delete

Archive removes a channel from every report: its tab, its spend in Overview, Profit and All campaigns, and its product costs. Its rules and imported costs are kept, and Restore brings it back. Archived channels do not count towards the limit of 25 active channels.

4

Medium and Other campaigns

Medium. A visit that arrives from a link without UTM tags has no medium. Its order is recorded with the medium referral. A rule that requires a medium therefore matches such orders but not the visits before them. Leave the medium out when the channel sends untagged links, so both are counted.

Other campaigns. On a very busy day the traffic reports keep only the campaigns with the most sessions by name and count the rest as Other campaigns. A Campaign condition never matches Other campaigns, while a group with only a Site condition still counts them. For most stores this never happens; if a channel shows fewer sessions than expected, try the rule without the Campaign condition in the preview.

5

Import costs

Open the channel tab and click Import costs. Nothing is saved until you check the preview and click Import costs at the bottom of it. There are three ways in:

WayUse it forAI credits
Amount for a date range An invoice total or a monthly fee. Enter from, to, the amount, the currency and optionally a note or invoice number. This month and Last month fill in the dates. The amount is spread evenly over the days of the range in the workspace time zone. Never
Paste a table Rows copied from a spreadsheet or from the channel's report page, with a date or a campaign and an amount. Only when the columns are not recognised
File or screenshot CSV, XLS or XLSX exports, PDF invoices and reports, or a screenshot of a report. Up to 2 files at once, for example the category report and the product report of the same month. Spreadsheets: only when the layout is new and not recognised. PDF and screenshots: always.

Limits per import:

  • CSV and pasted text up to 10 MB, XLS and XLSX up to 8 MB, PDF up to 10 MB and 10 pages, images up to 10 MB.
  • Up to 50,000 data rows and 30 columns; a spreadsheet up to 400,000 cells. Cells longer than 255 characters are shortened, and the preview says how many.
  • Screenshots are scaled down in the browser to 1568 pixels on the long side before upload.
  • Costs can be imported for up to 730 days back and never for days in the future.
  • One import holds one currency. Amounts in another currency than the channel's are converted in reports at the daily exchange rate.

The period. AxiTrace takes the period from the dates in the file. When the file name carries the month as _YYYYMM (for example report_202610.xlsx) and the dates fall inside that month, or the file has no dates at all, the period is that whole calendar month. You can change the period in the preview.

Rows that are not imported, such as a total row (Total, Grand total, Suma, Razem), a row without an amount or a date that cannot be read, are listed in the preview with their line number.

Uploaded files are not kept. A file is read in memory; AxiTrace stores the rows it read and the file name, never the file. Spreadsheet formulas are not run: only the values saved in the file are read, and a cell that starts with =, +, - or @ is plain data.

6

AI reading and credits

AxiTrace first tries to read a table without AI. It recognises common column names in English and Polish (date, campaign, cost, clicks, product id and more), so most pasted tables and many exports are imported for free and are marked Recognised table.

When it cannot, AI reads the file:

  • Spreadsheets and pasted tables with a new layout: AI decides which column holds the date, the campaign, the cost and the other values, how dates are written and which decimal separator is used. AxiTrace then reads every value itself, so an amount is never invented by AI. Marked Mapped by AI; you can change every column in the preview.
  • PDF invoices and screenshots: AI reads the cost lines from the document. Marked Extracted by AI - check every amount. The preview compares the lines with the document total, and you tick I checked the amounts and want to import them before the import.

Reading with AI takes a few seconds to a minute and uses AI credits of your plan. The credits are reserved before the AI call and only the real use is charged; when the AI call fails, nothing is charged and the page says why. A workspace can start up to 20 AI reads per day (UTC). Manual amounts, recognised tables and remembered layouts never use credits and have no daily limit.

The content of a file is treated as data only. Text in a file that tries to give instructions to the AI is ignored, and the AI can only answer with column numbers or cost lines, which AxiTrace checks before anything is shown.

7

Remembered layouts

When you confirm an import of a file, AxiTrace remembers its layout (the column headings and the settings you confirmed) for that channel. The next export with the same layout, typically the report of the next month, is read with no AI call and no credits, and is marked Recognised layout. If the channel changes the columns of its export, the new layout is read once more and remembered again.

8

Net, gross and VAT

AxiTrace always stores and reports net costs, so ROAS and profit are comparable with your ad platforms. If the costs you import include VAT, turn on Amounts are gross in the channel and enter the VAT rate. Every import of that channel then converts the amounts to net, and the preview shows the total as entered, the VAT removed and the net cost to import. A single import can also say Amounts include VAT with its own rate. When AI reads a file, it also says whether the amounts are net or gross, and the preview shows the conversion before you confirm.

9

Example: the two Favi reports

Favi sends two monthly exports, and you can import either one or both:

  • The category report: one row per campaign (for example favi-stoly-do-jadalni) with the cost, clicks, transactions and revenue of the month, without days.
  • The product report: one row per product per day with the cost and clicks, without campaigns.
What you importWhat you get
Both files togetherCampaign totals from the category report, spread over the days by the daily figures of the product report. Campaign totals and day totals both stay exact. Product costs go to Products (section 11).
The category report onlyCampaign totals spread evenly over the days of the month.
The product report onlyExact daily costs for the whole channel, shared out to campaigns by their sessions on each day (allocated spend), plus product costs.

Upload both files in one go, or one after the other: when the other report of the same month is already imported, the preview offers Combine with the costs already imported for this period, which is on by default. If the campaign total and the daily total of the two files differ, the campaign totals are kept and the preview says so. The transactions and revenue of the category report are stored as Reported by Favi (section 12).

10

Pairing campaign labels

The campaign names in a file do not always match the utm_campaign values of the channel traffic. The preview lists every label of the file under Campaigns with the campaign it is paired with and how it was matched:

  1. exact match, ignoring case, spaces and accents;
  2. the prefix the channel uses in its links, for example favi- in front of the label;
  3. when a new layout is read by AI anyway, AI proposes the remaining pairs in the same call; for a remembered layout, Suggest matches with AI does it on request (charged).

Change any pair in the dropdown, pick No campaign to count the cost for the channel as a whole, or keep the label as a campaign of its own (spend without traffic). The pairs you confirm are remembered for the channel and used again in the next import without AI.

11

Product costs

When a file has a product id column (such as the Favi product report), AxiTrace matches each id to a product of your store: first by the exact SKU, then by the SKU without a leading letter prefix. Matched costs appear in the Products module next to the Google Ads and Meta product costs, and product ROAS includes them. There is no fuzzy matching: products that cannot be matched exactly are listed in the preview under Products not matched and their cost is kept as cost of the whole channel, so the channel total stays exact. See Products.

12

How the figures are counted

FigureHow it is counted
Sessions, orders, revenueThe traffic the rules give the channel, for the whole period, under the attribution model you pick in the tab.
SpendImported costs, net of VAT, converted to the reporting currency at the daily rate.
Allocated spendCosts imported without a campaign split are shared out to campaigns in proportion to their sessions on each day, and labelled as allocated. A day with costs and no sessions shows as Unallocated spend.
ROASRevenue divided by spend, counted only over the days that have imported costs. A month without costs therefore never inflates ROAS; the revenue of the whole period is shown separately.
Cost per orderSpend divided by orders.
Cost per clickSpend divided by the clicks in the imported costs; cost per session when the import has no clicks.
Reported by <channel>The conversions and conversion value the channel claims in its own export. Shown in separate columns and never added to AxiTrace orders or revenue.

The spend of custom channels counts in the Paid scope of Overview (Ad Spend, ROAS, POAS), on the traffic sources row of the channel's site, in Profit, in Lead orders, in All campaigns (the platform column shows the channel name, and the platform filter lists every channel) and in Products. Spend is counted once: the total of the spend column in the traffic sources table equals the Ad Spend tile.

13

Replacing and undoing an import

Every import is listed under Cost imports on the channel tab with its source, period, net total and who imported it. A newer import replaces the costs of every day it covers, whatever kind the older import was, so a manual amount for October followed by the October file never counts twice. The preview tells you which imports will be replaced.

Undo removes an import and brings back what it replaced. An import cannot be undone while a newer import covers some of its days; undo the newer one first.

14

Missing-month notice

When a channel has traffic in a complete month but no costs for it, the panel shows a notice such as No costs for Favi in October 2026 yet with an Import costs button. The channel tab marks the days without costs, the integrations health page lists the channel, and the AI Advisor takes the gap into account. Nothing is e-mailed.

15

API and AI assistants

Channels, rule previews, reports, cost imports and undo are available in the public REST API (Custom paid channels and their costs) and in the MCP server for Claude, ChatGPT and other assistants (AI assistants): list_custom_channels, get_custom_channel_report, preview_custom_channel_rules, list_custom_channel_imports, create_custom_channel, update_custom_channel, import_custom_channel_spend and undo_custom_channel_import. Writes need the settings:write scope. The API imports rows and date ranges; file upload and AI reading are available only in the panel. Axi, the assistant in the panel, can create and edit channels, import costs and undo an import, always after you confirm a preview card.

Managing channels and importing costs needs edit access to the workspace. Viewers see the channel tabs read-only, and demo workspaces cannot be changed.

16

Troubleshooting

What you seeWhy and what to do
The preview shows zero sessionsThe site value differs from what the channel sends. Look at the traffic sources report for the exact source and use it, or add a second group with the utm_source value.
"claimed by" another channelA channel higher in the list matches the same traffic first. Change the order on the Channels page or narrow the earlier channel's rule.
Fewer sessions than in the channel's reportCheck the medium note and Other campaigns (section 4). Channels also count clicks that never load your page, while AxiTrace counts sessions.
"Costs are missing for part of this period"Some days of the selected range have no imported costs. ROAS uses only the days with costs; import the missing period to complete it.
"The daily average is far from the previous one"Usually a wrong decimal separator or the wrong amount column. Fix the column settings in the preview before you confirm.
"This workspace has used AI for 20 imports today"The daily AI limit. Known layouts, recognised tables and manual amounts still import; AI reading is available again the next day (UTC).
"Reading a file with AI uses AI credits"The workspace has no plan with AI credits, or not enough of them. Enter the amount for a date range, paste a table with clear column names, or choose a plan.
"A newer import from ... covers some of these days"Undo the newer import first (section 13).
"The file has too many rows" or "too large"Split the export by month or remove columns you do not need; the limits are in section 5.
Product costs are not in ProductsThe product ids of the file do not match your SKUs. They are listed in the preview under Products not matched, and their cost still counts for the channel.