Передача офлайн-конверсий

О том, что такое офлайн-конверсии и какие бизнес-задачи можно решить, отслеживая их, см. в разделе Офлайн-конверсии и звонки.
Внимание. Перед началом работы включите учет офлайн-конверсий.
  1. Шаг 1. Подготовка данных
  2. Шаг 2. Проверка готовности Метрики к загрузке конверсий
  3. Шаг 3. Подготовка CSV-файла
  4. Шаг 4. Передача данных
  5. Что делать дальше?

Шаг 1. Подготовка данных

  1. Подготовьте специальные идентификаторы — ClientID, UserID или yclid.
  2. Создайте цель 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-файла

Данные о конверсиях передаются в 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. Передача данных

Совет. Сформируйте CSV-файл с информацией и передайте его с помощью данного метода. Также рекомендуем генерировать запросы к API в автоматическом режиме с помощью модулей языка программирования.
Примечание. Данные появятся в отчетах Метрики в течение 24 часов после их загрузки.

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);

Что делать дальше?

Отслеживайте статус загрузки конверсий с помощью метода GET /management/v1/counter/{counterId}/offline_conversions/uploading/{id}.