Как перенаправить utm в api
Перейти к содержимому

Как перенаправить utm в api

  • автор:

Как передать utm в php curl?

введите сюда описание изображения

Как можно передать utm метку в CURLOPT_POSTFIELDS?

Отслеживать

задан 7 ноя 2021 в 12:00

Dennis Williams Dennis Williams

Пожалуйста, уточните вашу конкретную проблему или приведите более подробную информацию о том, что именно вам нужно. В текущем виде сложно понять, что именно вы спрашиваете.

7 ноя 2021 в 12:00

Вы в post передаете json — кто Вам мешает добаваить в него еще одно (или несколько полей) CURL_POSTFIELDS => ‘<"utm_xxx": "value", "name": "", . >‘

Как передать utm метки в amoCRM по API?

Коллеги, подскажите, что нужно вставить, чтобы отслеживать источник посетителя?

spoiler

$api_key = ‘ххх’;
$login = ‘хххх’;
$subdomain = ‘ххх’;

$phone_field_id = 98603;
$phone_type_id = 205485;
$phone = $_POST[‘phone’];
$forma = $_POST[‘forma’];
$lead_name = $_POST[‘name’];
$source = ‘Заявка с сайта ххх’;

// дальше ничего менять не нужно

$data[‘request’][‘unsorted’] = [
‘category’ => ‘forms’,
‘add’ => [[
‘source’ => $source,
‘source_uid’ => NULL,
‘data’ => [
‘leads’ => [[
‘name’ => ‘Заявка на санобработку’,
]],
‘contacts’ => [[
‘name’ => $lead_name,
‘custom_fields’ => [[
‘id’ => $phone_field_id,
‘values’ => [[
‘enum’ => $phone_type_id,
‘value’ => $phone,
]],
]],
]],
],
‘source_data’ => [
‘data’ => [[
‘type’ => ‘multitext’,
‘id’ => $phone_field_id,
‘element_type’ => ‘1’,
‘name’ => ‘Телефон’,
‘value’ => [$phone]
]],
‘form_id’ => 1,
‘form_type’ => 1,
‘origin’ => [‘ip’ => ‘0.0.0.0’],
‘date’ => time(),
‘from’ => $source,
],
]],
];

$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_USERAGENT, ‘amoCRM-API-client/1.0’);
curl_setopt($curl, CURLOPT_HTTPHEADER, [‘Accept: application/json’]);
curl_setopt($curl, CURLOPT_URL, $link);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);

$out = curl_exec($curl);
$code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

/*формируем отчет об ошибках*/
$set = json_encode($set);
$log = »;
$log .= «set:\n$set_str\n\n»;
$log .= «code:\n$code\n\n»;
$log .= «out:\n$out\n\n»;
file_put_contents(‘log.txt’, $out);
/*****/
// echo $code . «
» . $out; // вывод на экран
// file_put_contents(‘log.txt’, $code . «\n» . $out); // запись в файл

Пробовал переделать эту строку

‘origin’ => [[
‘ip’ => ‘0.0.0.0’,
‘datetime’ => »,
‘referer’ => »,
]],

наверно не то делаю.

  • Вопрос задан более трёх лет назад
  • 1620 просмотров

Как передать UTM-метки в CRM Битрикс 24 с помощью PHP?

Все поля, кроме UTM передаются нормально.
Со стороны моего сервера все нормально, я уже дампил этот массив, в нем нет пустых данных.

Кто сталкивался, отпишитесь.

P. S. Нашел платный плагин, который решает эту проблему – https://www.bitrix24.ru/apps/?app=magnator.lead2bit24
В документации все понятно описано и прилагают пример PHP кода.

UPD: 14.12.2020 — решение проблемы описано в статье, раздел Webhook https://all-service.in.ua/blog/lidy-s-form-v-bitrix24/

  • Вопрос задан более трёх лет назад
  • 14915 просмотров

2 комментария

Простой 2 комментария

OldCrazyMan @OldCrazyMan

Тоже интересует этот вопрос!

Все поля, кроме UTM передаются нормально. Название полей форм взял в документации Битрикс 24.

Получилось ли решить данный вопрос?

Илья Петров @petruncho Автор вопроса

Данный платный плагин позволяет передавать UTM-метки – https://www.bitrix24.ru/apps/?app=magnator.lead2bit24
Бесплатных вариантов я не нашел.

Решения вопроса 0
Ответы на вопрос 7
Артем Кулыгин @AllService

Итак, сначала нужно записать утм в массив $_cookie для того, что при переходе на другие страницы не потерялись значения, вот этот код отвечает за это:

if(isset($_GET["utm_source"])) setcookie("utm_source",$_GET["utm_source"],time()+3600*24*30,"/"); if(isset($_GET["utm_medium"])) setcookie("utm_medium",$_GET["utm_medium"],time()+3600*24*30,"/"); if(isset($_GET["utm_campaign"])) setcookie("utm_campaign",$_GET["utm_campaign"],time()+3600*24*30,"/"); if(isset($_GET["utm_content"])) setcookie("utm_content",$_GET["utm_content"],time()+3600*24*30,"/"); if(isset($_GET["utm_term"])) setcookie("utm_term",$_GET["utm_term"],time()+3600*24*30,"/");

Добавляйте его на каждую страницу↑.

Затем создаем в форме невидимые поля, cо значениями:

А в обработчике уже принимаем данные, как и все остальные поля:

'UTM_SOURCE' => $_POST['utm-source'], 'UTM_MEDIUM' => $_POST['utm-medium'], 'UTM_CAMPAIGN' => $_POST['utm-campaign'], 'UTM_CONTENT' => $_POST['utm-content'], 'UTM_TERM' => $_POST['utm-term'],

5ea8c07a0c226249777337.jpeg

Результат:

Ответ написан более трёх лет назад
Нравится 4 8 комментариев
Илья Петров @petruncho Автор вопроса

Я так понял, что данные буду приняты только в формате $_POST?
Потому что я передавал статические данные (код выше), они не работают.

Артем Кулыгин @AllService

Илья Петров, а где код? Должно работать и статическими данными? Только какой толк в эти поля передавать статические значения?

Илья Петров @petruncho Автор вопроса

AllService, код описан выше.
Статические данные я передавал, чтобы проверить получает их сервер или нет.

Артем Кулыгин @AllService

5ea9cb11a1d33264474962.png

Илья Петров, у меня все работает и со статическими данными. Вот код:

5ea9cb3449f06964894536.png

Вот результат:

Илья Петров @petruncho Автор вопроса

AllService, выложи файл API соединения на CodePen, возможно, дело в нем.
Скажи еще, у тебя оплачен Битрикс24 или ты пользуешься бесплатной версией?

Артем Кулыгин @AllService
Илья Петров, бесплатная версия, реализовано через вебхук.
Илья Петров @petruncho Автор вопроса
Артем Кулыгин, скинь, пожалуйста, код вебхука
Артем Кулыгин @AllService
Илья Петров, здесь всю инфу собрал: → https://all-service.in.ua/blog/lidy-s-form-v-bitrix24/
OldCrazyMan @OldCrazyMan

Тоже интересует решение данного вопроса

Все поля, кроме UTM передаются нормально. Название полей форм взял в документации Битрикс 24

Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать

Afres

Product Owner

Потратил 3 часа на поиск решения, так и не нашел, судя по всему через REST API эти переменные не поддерживаются Битриксом.
Переделал на WebHook, там UTM-метки поддерживаются и аналитика считается. Для моего случая даже удобнее вебхук.
Вот тут годная статья по которой перешел с REST на Webhook.

Ответ написан более трёх лет назад
Нравится 1 2 комментария
прошёл год, изменилось ли что-то?)
как передавать utm — метки?
Илья Петров @petruncho Автор вопроса
Читайте ответ Артема Кулыгина @AllService
Он предоставил решение проблемы, актуально на май 2020 г.

dimonchik2013

Dimonchik @dimonchik2013
non progredi est regredi

Все поля, кроме UTM передаются нормально.

а поля с УТМ . ( продолжите предложение)

в то время как в GET / GLOBALS я вижу
(сюда дамп)

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать

vladsold

т е решения нет? (
Ответ написан более трёх лет назад

Afres

Ну пока Битрикс не допилят API, нет.
Для форм Открытых линий я сделал так:

if(isset($_GET["utm_source"])) setcookie("utm_source",$_GET["utm_source"],time()+3600*24*30,"/"); if(isset($_GET["utm_medium"])) setcookie("utm_medium",$_GET["utm_medium"],time()+3600*24*30,"/"); if(isset($_GET["utm_campaign"])) setcookie("utm_campaign",$_GET["utm_campaign"],time()+3600*24*30,"/"); if(isset($_GET["utm_content"])) setcookie("utm_content",$_GET["utm_content"],time()+3600*24*30,"/"); if(isset($_GET["utm_term"])) setcookie("utm_term",$_GET["utm_term"],time()+3600*24*30,"/"); if(isset($_COOKIE["utm_source"]) and !isset($_GET["utm_source"])) $_GET["utm_source"] = $_COOKIE["utm_source"]; if(isset($_COOKIE["utm_medium"]) and !isset($_GET["utm_medium"])) $_GET["utm_medium"] = $_COOKIE["utm_medium"]; if(isset($_COOKIE["utm_campaign"]) and !isset($_GET["utm_campaign"])) $_GET["utm_campaign"] = $_COOKIE["utm_campaign"]; if(isset($_COOKIE["utm_content"]) and !isset($_GET["utm_content"])) $_GET["utm_content"] = $_COOKIE["utm_content"]; if(isset($_COOKIE["utm_term"]) and !isset($_GET["utm_term"])) $_GET["utm_term"] = $_COOKIE["utm_term"];

Т.е. при входе на сайт мы записываем метки в куки. А после перехода из кук записываем в GET откуда формы ОК забирают метки автоматически.

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать

Ichi

Увлекаюсь программированием

Может кому надо, у меня работает так:

update_bitrix_entity('deal', 13,array('UTM_SOURCE' =>'NEW')); function update_bitrix_entity($entity, $id, $fiels = array()) < if (!in_array($entity, array('lead', 'deal', 'contact', 'company'))) < return false; >$name = "crm..update"; $post = array( 'id' => $id, 'fields' => $fiels); $ret = bitrix::call($name, $post); return $ret; >

Настройка и передача статических UTM-меток для обращений

Статические UTM-метки, указанные в настройках рекламной кампании, используются в отчетах по обращениям в параметре « Расширенные UTM-метки »:

Параметр « Расширенные UTM-метки » заполняется по следующей логике:

  • Если обращение связано с сессией и одноименная UTM-метка определена для сессии, ее значение отображается в расширенной UTM-метке;
  • Если обращение связано с сессией и одноименная UTM-метка НЕ определена для сессии, в расширенной UTM-метке отображается значение из настройки одноименной статической UTM-метки;
  • Если обращение не связано с сессией, в расширенной UTM-метке отображается значение из настройки одноименной статической UTM-метки.

Данные правила работают для всех рекламных кампаний, независимо от того, подключен ли динамический коллтрекинг или нет. Если по рекламной кампании с динамическим коллтрекингом есть обращения на статический номер, для них в « Расширенных utm-метках » отображаются значения из настроек статических UTM-меток.

Передача расширенных UTM-меток через HTTP-уведомления

Расширенные UTM-метки можно передавать через HTTP-уведомления с помощью параметров eq_utm:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *