API path to conversion
Шаг 1. Авторизация
Для взаимодействия с API системы используется метод авторизации через токен типа Bearer. Чтобы авторизовать запрос, нужно включить в заголовок Authorization токен в следующем формате: Bearer <авторизационный токен>.
Чтобы получить авторизационный токен, выполните следующие шаги:
  1. Войдите в личный кабинет на сайте.
  2. Перейдите в раздел "Настройки".
  3. Найдите вкладку "API", где и сможете сгенерировать новый токен для авторизации.
Шаг 2. Запрос
Для получения данных о пути конверсии пожалуйста выполните следующие шаги:
  1. Отправьте POST запрос на следующий URL: http://api.targetads.io/v1/reports/path_to_conversion?project_id=<ваш id проекта>
  2. Убедитесь, что вы заменили <ваш id проекта> на реальный идентификатор вашего проекта в системе.
  3. В теле запроса (BODY) передайте информацию в формате JSON, следуя указанной структуре данных.

{
   "ResponceType": string,
   "Fields": []string,
   "InteractionFilter" InteractionFilter,
   "TargetFilter" TargetFilter,
   "Offset" int,
   "Limit": int 
}
Offset — при первом запросе данный параметр должен иметь значение 0. Для последующих запросов необходимо увеличивать значение Offset на количество строк, полученных в результате предыдущего запроса. Этот процесс повторяется до тех пор, пока в ответе сервера не будет возвращено 0 строк, что указывает на то, что вы загрузили все доступные данные.
Так как ответ может быть чрезвычайно большим из-за timeout или обрывов соединения, то кол-во строк в ответе может быть меньше чем лимит, поэтому offset необходимо инкриминировать на значение полученных строк.
Параметры поля Fields:
Описание объекта TargetFilter
Объект позволяет отфильтровать целевые события, которые нужно получить в ответе:

Описание объекта Interaction Filter
Объект позволяет отфильтровать события взаимодействия, которые нужно получить в ответе

Параметры DateFrom и DateTo обязательны к передаче, в InteractionFilter и/или TargetFilter
Фильтры применяются по условию "И"
Пример запроса:

{
    "ResponceType": "JSON",
    "Fields": ["TargetEventTime", "TargetEventName", "InteractionType",
     "InteractionTime", "InteractionMediaCampaignName", "InteractionUtmSource"],
    "TargetFilter": {
        "DateFrom": "2024-04-01",
        "DateTo": "2024-04-07",
        "TargetEventType": ["type1"],
        "TargetEventName": ["name1", "name2"],
        "TargetUrl": ["/landing/page"],
        
    },
    "InteractionFilter": {
		    "DateFrom": "2024-04-01",
        "DateTo": "2024-04-07",
        "MediaCampaignId": [560, 561, 562, 563],
        "MediaPlacementId": [1022, 1023],
    }
    "Offset": 150000,
    "Limit": 50000
}
Важно: ответ может быть большим и достигать сотен мегабайт в рамках установленного лимита. Используйте для запроса только те поля, которые вам действительно необходимы.
Ответы
В случае успешного ответа отправляется код ответа 200 и JSON следующего вида:

Пример ответа:

{
	"Columns":["TargetEventTime","TargetEventName","InteractionType",
					"InteractionTime","InteractionMediaCampaignName",
					"InteractionUtmSource"],
	"Rows":[
["2024-04-25 09:26:43","leads_form","PageView","2024-04-25 09:26:06","","source"],
["2024-04-30 23:20:50","leads_form","PageView","2024-04-30 23:20:50","",""],
["2024-04-30 23:15:59","leads_form","PageView","2024-04-30 23:15:59","",""],
["2024-04-30 22:54:10","leads_form","Impression","2024-04-30 22:54:10","media_camp",""],
["2024-04-30 22:55:38","leads_form","PageView","2024-04-30 22:55:27","","youtube"],
["2024-04-30 23:39:42","leads_form","PageView","2024-04-30 23:38:23","","yandex"]
["2024-04-30 23:21:18","leads_form","Impression","2024-04-05 14:16:29","media_camp",""],
["2024-04-30 23:21:18","leads_form","PageView","2024-04-24 16:26:39","","yandex"],
["2024-04-30 23:21:18","leads_form","PageView","2024-04-30 23:18:47","","vk"],
					],
	"CountRows": 9
}

Каждая строка в ответе — это взаимодействие с пользователем и атрибуты целевого события. Соответственно, у пользователя, совершившего целевое событие, может быть несколько взаимодействий, то есть часть с описанием целого действия будет повторяться во всех взаимодействиях.


В случае возникновения ошибки в ответе могут быть представлены следующие коды:


  • 400 код означает, что была допущена ошибка в параметрах запроса.
  • 429 код указывает на превышение лимита числа запросов.
  • 500 код свидетельствует о наличии внутренней серверной ошибки.


У API установлены лимиты на ID проекта: 20 запросов за 60 секунд. Это ограничение связано с возможным большим объемом данных, передаваемым в ответе.

В ответе также передаются заголовки вязанные с лимитами:
👌