Documentation sections

Conversion import from CSV

How to upload conversions with a file: the CSV format, row checks, confirming the import and sending notifications.

The import records conversions from a CSV file the same way as the incoming postback does, only without a request from the affiliate network. It is on the Settings → Conversion import («Настройки → Импорт конверсий») tab; owners and admins can see the tab. First the tracker checks all rows, then you confirm the import; while the file has at least one error, nothing is recorded.

File format

The first line is the header: exactly four columns in this order, in lowercase. The separator is a comma.

text
sub_id,payout,tid,status
1a2b3c4d5e6f,25.5,order-1001,sale
7g8h9i0j1k2l,0,,lead
3m4n5o6p7q8r,40,order-1002,rejected
ColumnWhat to enterRules
sub_idThe click ID in the tracker — the value of the {subid} macro1 to 64 characters: Latin letters, digits, _, - and dots (not at the start or end, and not two in a row). The click must be in your workspace
payoutThe payout amountA number not less than zero, with a period as the decimal separator: 25.5. An empty value isn't accepted; for a conversion without a payout, enter 0
tidThe transaction IDUp to 64 characters. It can be left empty — then the tracker substitutes import: and the sub_id value. An unreplaced macro isn't accepted: {txid}, ${txid}, [txid], %txid%, #txid#, <txid>
statusThe conversion statusRequired, up to 64 characters, case-insensitive

The status column accepts lead, sale, rejected, hold and the values mapped to them on the Settings → Conversions («Настройки → Конверсии») tab, see Conversion types.

Limits of one import: 200 data rows and 256 KB. The file has no dates: the moment of the import becomes the conversion time.

Tip.

For several sales on one click, put different tid values in the rows. Two rows with the same sub_id and tid in one file won't pass the check.

Currency and notifications

Below the CSV text field there are two parameters. They apply to the whole file.

  • Currency («Валюта») — a code of three Latin letters, USD by default. All amounts in the file are in this currency. The amount is converted to USD at the rate for the day of the import, see Currencies and rates. The file currency doesn't affect an offer's fixed payout. Upload conversions in different currencies as separate files.
  • Send outgoing S2S and CAPI («Отправлять исходящие S2S и CAPI») — off by default: conversions are recorded in the tracker, but the source and campaign S2S postbacks and the Facebook Conversions API events aren't sent. Turn on the checkbox if the recipients should learn about these conversions.

The amount is recorded by the same rules as for a postback, with one difference: the import always takes the amount from the payout column, even if the offer has its own payout parameter name set through the API in the payout_param field, see Admin API: offers. If the offer has the Payout from postback parameter («Выплата из параметра постбэка») checkbox cleared and a payout greater than zero, the offer's payout is recorded instead of the value from the payout column; for the lead and rejected statuses, 0. The offer's payout is recorded in the offer's currency; for offers created in the panel, that's USD. Details are in the Payout and currency section.

Step 1: check the file

  1. Open Settings → Conversion import.
  2. Select a .csv file or paste the text into the field below the file selection button. The field already contains the header line. A selected file replaces all the text in the field.
  3. Enter the code in the Currency field.
  4. Select Send outgoing S2S and CAPI if you need notifications.
  5. Click Check CSV («Проверить CSV»).

A table with the Row («Строка»), Sub ID, TID, Status («Статус»), Payout («Выплата») and Result («Результат») columns appears below the buttons. The Row column shows the sequence number of the line: the header is the first one, data starts from the second, and empty lines aren't counted.

  • All rows show “Checked” («Проверено»), and above the table it says “Check passed. Confirmation is valid for 15 minutes.” («Проверка пройдена. Подтверждение действительно 15 минут.») — go to step 2.
  • Some rows have an error, and above the table it says “Fix the errors and check again. Nothing was imported.” («Исправьте ошибки и повторите проверку. Ничего не импортировано.») — fix the rows in the field and click Check CSV again.

Step 2: import

  1. Click Import checked rows («Импортировать проверенные строки»). While the rows are being recorded, the button says “Processing…” («Обработка…»).
  2. Wait for the message “Processing complete. Failed rows can be retried with the same tid.” («Обработка завершена. Ошибочные строки можно повторить с тем же tid.»)

Accepted rows show “Accepted (an exact repeat doesn't create a duplicate)” («Принято (точный повтор не создаёт дубль)») in the Result column.

The confirmation is valid for 15 minutes. Any edit of the text, the currency or the checkbox resets the check: the import button stays inactive until you click Check CSV again.

Repeats and conversion updates

The tracker finds an already recorded conversion by the sub_id and tid pair:

  • There is no such pair yet — a new conversion is created.
  • The same status and the same payout — the row is skipped, and no duplicate is created.
  • The same status and a different payout — the payout is corrected. Notifications aren't sent even when the checkbox is on.
  • A different status — the conversion is updated. The exception: lead or hold after sale is skipped, and the sale stays.

So you can upload the whole file again. Skipped rows also show “Accepted” («Принято») in the Result column.

To update a conversion that came by postback, put the same transaction ID in tid as the postback had. The import doesn't find a conversion accepted without a transaction ID: such a row creates one more conversion for that click. The full rules are on the Transaction ID, duplicates and conversion corrections page.

Checking the result

Open the campaign's conversion log. Each accepted row has an entry there: sub_id in the Subid column, tid in the Txid column and the payout in USD. If the notifications checkbox was on, the deliveries are visible in the event delivery log.

If something went wrong

Messages about the whole file are shown in red above the buttons; messages about rows, in the Result column.

MessageWhat to do
“Maximum 256 KB” («Максимум 256 КБ»), “File larger than 256 KB” («Файл больше 256 КБ»), “No more than 200 rows per import” («Не больше 200 строк за импорт»)Split the file into parts: up to 200 data rows and up to 256 KB each
“A CSV with the header sub_id,payout,tid,status is required” («Нужен CSV с заголовком sub_id,payout,tid,status»), “Exactly 4 columns are required: sub_id,payout,tid,status” («Нужны ровно 4 колонки: sub_id,payout,tid,status»), “Header: sub_id,payout,tid,status” («Заголовок: sub_id,payout,tid,status»)Make sub_id,payout,tid,status the first line. Separate the columns with commas
“No data in CSV” («В CSV нет данных»)Add at least one row below the header
“Invalid currency” («Некорректная валюта»)Enter a code of three Latin letters in the Currency field
“Invalid CSV row: 4 columns required” («Некорректная CSV-строка: нужны 4 колонки»)Check the number of commas in the row. An empty tid is two commas in a row
“Invalid sub_id” («Некорректный sub_id»), “Payout must be a finite non-negative number” («Выплата должна быть конечным неотрицательным числом»), “tid: up to 64 characters, no macros” («tid: до 64 символов, без макросов»), “Specify the status” («Укажите статус»)Fix the value in the row according to the rules in the File format section. Write the amount in digits with a period, without a currency sign
“Repeated sub_id + tid within the file” («Повтор sub_id + tid внутри файла»)Delete the repeated row or give the rows different tid values. Two rows of one click with an empty tid also count as a repeat
“Click not found in this workspace or storage unavailable” («Клик не найден в этом workspace или хранилище недоступно»)Find the sub_id with click search. If the click is there, repeat the check later
“Unknown status: set up a conversion type” («Неизвестный статус: настройте тип конверсии»)Add this value to a conversion type or replace it in the file with lead, sale, rejected or hold
“No currency rate or the amount is too large” («Нет курса валюты или сумма слишком велика»)Add a rate for this currency on the Settings → Currencies («Настройки → Валюты») tab and check the amount
“Could not check the conversion type” («Не удалось проверить тип конверсии»)Repeat the check later
“The data changed or the check is outdated. Repeat the check.” («Данные изменились или проверка устарела. Повторите проверку.»)More than 15 minutes have passed. Click Check CSV and import again

Not accepted: HTTP 503. Check the postback log; the row can be retried with the same tid. («Не принято: HTTP 503. Проверьте журнал postback; строку можно повторить с тем же tid.»)

The row passed the check, but the tracker didn't accept it when recording. The number in the message is the response code; 503 means a temporary failure. The other rows are recorded independently of it.

  1. Open Logs → Postbacks («Логи → Postbacks»).
  2. Enter the row's sub_id in the Search («Поиск») field — the entries are explained on the System log, postbacks and traffic log page.
  3. Go back to Settings → Conversion import, select the same file and click Check CSV.
  4. Click Import checked rows. Rows that were already accepted won't be recorded a second time.
Updated Need help? ↗