Передача офлайн-конверсий
- Шаг 1. Подготовка данных
- Шаг 2. Проверка готовности Метрики к загрузке конверсий
- Шаг 3. Подготовка CSV-файла
- Шаг 4. Передача данных
- Что делать дальше?
Шаг 1. Подготовка данных
- Подготовьте специальные идентификаторы — ClientID, UserID или yclid.
Создайте цель JavaScript-событие с помощью метода POST /management/v1/counter/{counterId}/goals. В качестве идентификатора цели укажите событие, которое нужно отслеживать (например, подтверждение заказа — «order_confirmed»). Этот идентификатор понадобится при формировании CSV-файла.
Примечание. При создании цели «JavaScript-событие» обязательно используйте условие «совпадает».Можно использовать ранее созданную цель, если конверсия по этой цели совершается и на сайте, и вне его и вы хотите получать общую статистику.
Шаг 2. Проверка готовности Метрики к загрузке конверсий
Учтенный Метрикой визит может быть дополнен информацией о конверсии в течение 21 дня. Период учета конверсий увеличивается постепенно с момента включения опции. Поэтому передать конверсии можно за отрезок времени равный периоду учета. Загружать конверсии можно спустя примерно сутки после включения опции.
Чтобы проверить, можно ли загружать данные и за какой период, используйте метод GET /management/v1/counter/{counterId}/offline_conversions/visit_join_threshold.
Шаг 3. Подготовка CSV-файла
В первой строке необходимо передать названия колонок.
Колонки | Описание |
---|---|
Обязательные | |
UserId | Идентификатор посетителя сайта, назначенный владельцем сайта (только для client_id_type = USER_ID). |
ClientId | Идентификатор посетителя сайта, назначенный Яндекс Метрикой (только для client_id_type = CLIENT_ID). |
Yclid | Идентификатор клика по рекламному объявлению Яндекс.Директа, назначается Яндекс.Директом. Передается в URL объявления (только для client_id_type = YCLID). |
Target | Идентификатор цели |
DateTime | Дата и время конверсии в формате Unix Time Stamp. В DateTime можно указывать только прошедшее время. Если на момент загрузки файла время из DateTime еще не наступило, возникнет ошибка. |
Необязательные | |
Price | Цена (ценность) цели, десятичным разделителем является точка (.). |
Currency | Валюта в трехбуквенном формате ISO 4217. |
Колонки | Описание |
---|---|
Обязательные | |
UserId | Идентификатор посетителя сайта, назначенный владельцем сайта (только для client_id_type = USER_ID). |
ClientId | Идентификатор посетителя сайта, назначенный Яндекс Метрикой (только для client_id_type = CLIENT_ID). |
Yclid | Идентификатор клика по рекламному объявлению Яндекс.Директа, назначается Яндекс.Директом. Передается в URL объявления (только для client_id_type = YCLID). |
Target | Идентификатор цели |
DateTime | Дата и время конверсии в формате Unix Time Stamp. В DateTime можно указывать только прошедшее время. Если на момент загрузки файла время из DateTime еще не наступило, возникнет ошибка. |
Необязательные | |
Price | Цена (ценность) цели, десятичным разделителем является точка (.). |
Currency | Валюта в трехбуквенном формате ISO 4217. |
Шаг 4. Передача данных
C помощью метода POST /management/v1/counter/{counterId}/offline_conversions/upload. Укажите во входных данных OAuth-токен, номер счетчика, тип идентификатора посетителя.
$counter = ""; // Укажите номер счетчика
$token = ""; // Укажите OAuth-токен
$client_id_type = ""; // Укажите тип идентификаторов посетителей – CLIENT_ID, USER_ID или YCLID
$curl = curl_init("https://api-metrika.yandex.ru/management/v1/counter/$counter/offline_conversions/upload?client_id_type=$client_id_type");
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, array('file' => new CurlFile(realpath('file.csv'))));
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: multipart/form-data", "Authorization: OAuth $token"));
$result = curl_exec($curl);
echo $result;
curl_close($curl);
import requests
counter = 123456
token = "token"
file = open("offline-conversions.csv", "r").read()
id_type = "CLIENT_ID"
url = "https://api-metrika.yandex.net/management/v1/counter/{}/offline_conversions/upload?client_id_type={}".format(counter, id_type)
headers = {
"Authorization": "OAuth {}".format(token)
}
req = requests.post(url, headers=headers, files={"file":file})
Что делать дальше?
Отслеживайте статус загрузки конверсий с помощью метода GET /management/v1/counter/{counterId}/offline_conversions/uploading/{id}.