Currencies and rates
All amounts in reports are calculated in USD: the tracker converts payouts and costs in other currencies at the rate for the event date.
Rates are configured on the Settings → Currencies («Настройки → Валюты») tab, in the Exchange rates («Курсы валют») block. The tracker uses them to convert to USD the payouts from postbacks, the amounts from conversion import and the spend from the extension. Owners and admins can see the tab.
Report currency
The report currency is USD and cannot be changed. The Default currency («Валюта по умолчанию») field on the Settings → General («Настройки → Основные») tab shows USD and cannot be edited.
Amounts in USD need no rate. Any other currency needs a rate, either automatic or manual. If there is no rate, the tracker does not count the amount 1:1 but rejects it, see If there is no rate.
Prices in campaign cost models and the click cost from a source parameter are set directly in USD and are not converted by rates, see Campaign cost models.
Which rate the tracker uses
A rate is the number of USD per 1 unit of currency. For each amount, the tracker chooses the rate like this:
- The currency is
USD— the rate is 1. - There is a manual rate for this currency dated no later than the required date — the latest of them is used.
- There is no such manual rate and the Automatic rates («Автоматические курсы») checkbox is on — the latest automatic rate dated no later than the required date and no more than 7 days older than it is used.
- Otherwise there is no rate.
The required date depends on what is being converted:
| What is converted | Rate date |
|---|---|
Payout and cost from a postback | The day the postback was received, UTC |
| Payout from a CSV import | The day of the import, UTC |
| Spend from the extension | The day of the spend |
Automatic rates
The tracker fetches daily reference rates from Frankfurter automatically and checks for new ones every hour.
- Automatic rates — a checkbox, on by default. When the checkbox is off, only manual rates work. The change applies immediately; there is no save button.
- Check for updates («Проверить обновления») — the button requests rates from the source right now, without waiting for the next check.
The status is shown under the line about the source:
| Line | What it means |
|---|---|
| “Received … · currencies available: N” («Получены … · доступно валют: N») | The date and time of the last successful update and the number of currencies whose rate is no older than 7 days |
| “The first update has not finished yet.” («Первое обновление ещё не завершено.») | Rates have never been received from the source yet |
| “· outdated: N” («· устарели: N») | The number of currencies whose latest rate is older than 7 days. These rates are not used |
| “The last update failed. The next check will happen automatically. You can set a rate manually. Automatic rates older than 7 days are not used.” («Последнее обновление не удалось. Следующая проверка произойдёт автоматически. Можно задать курс вручную. Автокурсы старше 7 дней не используются.») | The last attempt to get rates ended with an error. Saved rates remain valid while they are no older than 7 days |
| “No fresh automatic rates yet. You can set a rate manually. Automatic rates older than 7 days are not used.” («Свежих автоматических курсов пока нет. Можно задать курс вручную. Автокурсы старше 7 дней не используются.») | The checkbox is on, but no currency has a rate no older than 7 days |
A rate saved for a date does not change. A rate for a new date is added as a separate row.
Manual rate
You need a manual rate when the source does not have the currency, automatic rates are turned off, or you want to use your own rate.
- Open Settings → Currencies.
- Expand the Add a manual rate («Добавить ручной курс») block.
- Fill in the Currency («Валюта»), Effective from · UTC («Действует с · UTC») and USD per 1 unit of currency («USD за 1 единицу валюты») fields.
- Click Add rate («Добавить курс»).
| Field | What to enter | Rules |
|---|---|---|
| Currency | The currency code. EUR by default | Three Latin letters; input is converted to uppercase. USD is not accepted |
| Effective from · UTC | The date from which the rate applies. Today's UTC date by default | One manual rate per currency per date |
| USD per 1 unit of currency | The rate, for example 1.10 | Greater than 0 and less than 1,000,000,000 |
The Add rate button is inactive while the fields are filled in incorrectly. After saving, the rate appears in the Rate history («История курсов») table with the source “Manual” («Вручную»).
A manual rate takes priority over an automatic one. It applies from the specified date until the next manual rate for this currency and has no age limit. New automatic rates do not replace it.
A manual rate cannot be edited or deleted. It applies to all amounts in this currency from the specified date. Automatic rates for this currency are not used from that date, and from then on you have to update the rate manually. Check the value before saving.
To change a rate, add a new manual rate with a later date in the Effective from · UTC field. It takes effect from that date.
Rate history
The Rate history table shows manual and automatic rates: up to the 1000 most recent rows, newest dates first.
| Column | What it contains |
|---|---|
| Currency | The currency code |
| Date · UTC («Дата · UTC») | The date of the rate at the source, or the start date of a manual rate |
| Rate in USD («Курс в USD») | How many USD per 1 unit of currency |
| Source («Источник») | “Manual” or “Frankfurter” |
The Find currency («Найти валюту») field above the table leaves only the rows with the code you need. An empty table shows “No rates found. No rate is needed for payouts in USD.” («Курсы не найдены. Для выплат в USD курс не требуется.»)
Conversion currency and rate
The tracker takes the currency of a postback amount from the currency parameter of the incoming postback. If the parameter is missing, the offer currency is used: for offers created in the panel, this is USD. For a click without an offer, it is also USD. The payout sent by the network and the cost parameter are both in this currency.
If the network does not pay in USD, pass the currency code in the postback URL, for example currency=EUR. The template in Settings → Postback («Настройки → Postback») already contains this parameter with the value USD — replace it. Where to get the postback URL is covered on the Incoming postback page.
A fixed payout from the offer's Payout $ («Выплата $») field is recorded in the offer currency and does not depend on the currency parameter. For offers created in the panel this is USD, so enter the amount in dollars. How the tracker chooses the amount is covered in the Payout section.
The rate is locked to the conversion when it is received:
- The payout is converted to USD at the rate for the day the postback was received.
- A repeat postback with the same transaction ID and in the same currency is calculated at the rate recorded in the conversion, not the current one. More in Currency rate on repeats.
- New automatic and manual rates do not recalculate conversions that have already been received.
The postback cost parameter sets the conversion cost in the postback currency. If the payout is recorded in the same currency, cost is converted to USD at the same rate as the payout. With a fixed offer payout in a different currency, cost is converted at the postback currency rate for the day the conversion is recorded, and you need a rate for that currency even if the payout is in USD, see The cost parameter in a postback.
Conversion import from CSV locks the rate the same way. The currency is set for the whole file in the Currency field, USD by default. It does not affect a fixed offer payout.
Rate for extension spend
The spend extension sends daily spend in the ad account currency. The tracker converts it to USD at the rate for the spend date. An account in USD needs no rate.
The rate is locked to the account and day on the first accepted collection. Repeat uploads of that day are calculated at the same rate, even if the rates in the tracker have changed since then.
If there is no rate
An amount in a currency without a rate is not recorded. Causes and what to do:
- The Automatic rates checkbox is off and there is no manual rate for the currency. Turn the checkbox on or add a manual rate.
- The source does not have this currency, or its latest rate is more than 7 days older than the event date. Add a manual rate dated no later than the event date.
Then repeat the action:
| Where | What happens | What to do |
|---|---|---|
| Incoming postback | The tracker responds to the network with code 422 and the text “no currency rate found for the event date; add the rate in the settings and retry” («курс валюты на дату события не найден; добавьте курс в настройках и повторите»). The conversion is not recorded | Send the postback again or upload the conversion via CSV import |
| Conversion import | In the Result («Результат») column of the row: “No currency rate or the amount is too large” («Нет курса валюты или сумма слишком велика»). Nothing is imported | Click Check CSV («Проверить CSV») again |
| Spend extension | In the extension window: “The tracker did not accept the spend: check the account currency rate in the tracker” («Трекер не принял расход: проверьте курс валюты аккаунта в трекере»). The day is not accepted | Repeat the collection. Other causes of this message are in the Currency rate and a rejected day section |
Messages on the Currencies tab:
- “A manual rate for this date already exists. Choose another date.” («Ручной курс на эту дату уже есть. Укажите другую дату.») — the currency already has a manual rate for the selected date. Choose another date.
- “Could not get rates. Saved rates remain available within 7 days.” («Не удалось получить курсы. Сохранённые курсы остаются доступны в пределах 7 дней.») — the source did not respond to the Check for updates request. Try again later or add a manual rate.
Limitations
- Automatic rates are daily reference rates. They do not account for bank and payment system fees or the rate at the moment of the actual payout. To calculate at your own rate, add a manual one.
- A currency the source does not have is converted only at a manual rate.
- A manual rate cannot be edited or deleted.
- Conversions and spend that are already recorded are not recalculated at new rates.
Rate of an explicit conversion cost
If an offer has a fixed payout in one currency and the cost in the postback arrived in another, the cost rate is stored separately. With the same transaction ID and cost currency, a status change, an amount change or an exact repeat of the postback does not change the stored rate. A change of the cost currency locks the rate for the new currency; if it matches the payout currency, the payout rate of this transaction is used.
An empty or missing cost keeps the previous cost and rate. cost=auto resets the explicit cost; the next numeric cost sets it again. If a record had no separate cost rate before the tracker update, then on the next numeric cost the tracker uses the rate for the date of the last recorded version once and stores it. Amounts that are already recorded are not recalculated automatically.