JS-функции скрипта Calltouch

Читать 11

Получение id сессии Calltouch


Идентификатор сессии Calltouch. С помощью него Calltouch присвоит переданной заявке источник перехода на сайт посетителя, отправившего ее. Идентификатор сессии Calltouch присутствует в коде сайта, с которого отправляется заявка, если в этом коде установлен скрипт отслеживания Calltouch. Чтобы получить ID сессии скрипта Calltouch или проверить отработал ли он или нет, используйте JS-функцию calltracking_params., например:

window.ct('calltracking_params','mod_id').sessionId
   

Идентификатор mod_id вы можете скопировать из вашего кабинета Calltouch «Интеграции => API и Webhooks»:


______________2022-03-02___17.48.39.png

Получение информации о подменившихся номерах

Функция

window.ct('calltracking_params')
   

Ответ будет выглядеть так, пример:

[
      {
            "modId": "8e82d48b",
            "siteId": 18990,
            "sessionId": 2238555035,
            "ctClientId": "100000002923152859",
            "ctGlobalId": "7546b24d-8028-5e89-a7d6-bc3df4684e22",
            "phoneNumbers": ["79165555555"]
      },
      {
            "modId": "1g3ddb2j",
            "siteId": 18991,
            "sessionId": 5345435445,
            "ctClientId": "100000002923152858",
            "ctGlobalId": "2b2368c0-2f5a-5285-8764-cba5742853fd",
            "phoneNumbers": ["79167777777"]
     }
]

Где:

  • siteId – идентификатор личного кабинета Calltouch
  • sessionId – идентификатор сессии Calltouch у пользователя на сайте
  • phoneNumbers – массив из выделившихся для подмены номеров Calltouch
  • modId – идентификатор счетчика Calltouch.

Если необходимо получить информацию по конкретному счетчику Calltouch, то можно указать его идентификатор при вызове функции:

window.ct('calltracking_params', 'modId')
   

Для получения информации о выделенных номерах с данными о сабпулах необходимо передать третий параметр 'withSubPools':

window.ct('calltracking_params', 'modId', 'withSubPools')
   

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

{
      "modId": "8e37d68b",
      "siteId": 3033,
      "sessionId": 1711373087,
      "ctClientId": "100000002923152859",
      "ctGlobalId": "7546b24d-8028-5e89-a7d6-bc3df4684e22",
      "phonesAndSubpools": [
         {
              "subPoolId": "124125125",
              "subPoolName": "Остальные Москва",
              "phoneNumber": "74951111111"
         },
         {
              "subPoolId": "123123123",
              "subPoolName": "Остальные регионы",
              "phoneNumber": "78001111111"
         }]
}

Для того, чтобы в ответе получить все идентификаторы после того, как они сформированы, предоставлена возможность использования объект Promise. Для формирования ответа в виде не стандартного JS-объекта, а в виде JS-объекта Promise, требуется передать четвертый параметр 'withPromise':

window.ct('calltracking_params', 'modId', 'withSubPools', 'withPromise');
window.ct('calltracking_params', 'modId', null, 'withPromise');

Обработать объект Promise можно двумя способами:

const params = window.ct('calltracking_params', 'mod_id', 'withSubPools', 'withPromise);
params.then(result =>
     { ...some code }
)

async function getParams()
      {
            const params = await window.ct('calltracking_params', 'mod_id', null, 'withPromise');
            ... some code
      }

Получение информации о шаблонах подмены номеров

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

Для работы функции, вам необходимо отправить заявку вашему аккаунт-менеджеру или в тех. поддержку Calltouch с просьбой «Прошу включить функцию calltracking_patterns для ЛК ...» и указать siteId или название ЛК. Функция может быть включена только если в настройках подмены не используются кастомные решения.

Функцию нельзя будет вызвать подряд несколько раз, если после первого вызова на бэк отправился запрос, но еще не выполнился до конца. Функция будет всегда возвращать Promise – он будет резолвиться моментально, если данные есть, или резолвиться/реджектиться после обновления данных с бэка (1-2 сек).

Функция

window.ct('modId', 'calltracking_patterns', [{ patternType: 'class', patternName: 'phone_call' }, { patternType: 'id', patterName: 'call' }])
   

Где:

  • modId – уникальный идентификатор счетчика Calltouch, получить его можно из ответа 1-ой функции, либо заранее скопировать из настроек ЛК.
  • calltracking_patterns – название функции
  • patternType – необходимо указать один из трех типов шаблонов подмены:
    • class
      Подмена номера по классу
    • id
      Подмена номера по идентификатору
    • matcher
      Подмена номера автоопределением по номеру телефона
      Вот все эти типы у нас в ЛК:

Screenshot_2020-06-01_at_13.37.12.png

  • patternName – необходимо указать название класса, ид или номера соответственно. Вот эти названия у нас в ЛК:

Screenshot_2020-06-01_at_13.38.45.png
Screenshot_2020-06-01_at_13.39.02.png
Screenshot_2020-06-01_at_13.39.14.png

За один вызов функции можно указать сразу несколько шаблонов { patternType: 'class', patternName: 'phone_call' } для получения по ним данным.

Формат ответа

Если успешно:

{
siteId: 111
modId: 'ff',
fields: [
{ patternType: 'class', patternName: 'phone_call', patternValue: '<a href="+74993703119">Телефон: +7 (499) 370-31-19</a>' },
{ patternType: 'id', patternName: 'phone', patternValue: '<a href="+74993703119">Телефон: +7 (499) 370-31-19</a>' },
],
}

Если заданных параметров не найдено:

{
siteId: 111
modId: 'ff',
fields: [
{ patternType: 'class', patternName: 'phone_call', patternValue: undefined, error: 'PatternName not found' },
{ patternType: 'id', patternName: 'phone', patternValue: '<a href="+74993703119">Телефон: +7 (499) 370-31-19</a>' },
],
}

Если функция отключена:

 {error: true, errorText: "No params found"}
   

Пример использования функции

 var promise = window.ct('79aad35c', 'calltracking_patterns', [{ patternType: 'class', patternName: 'ctClass' }]);
promise.then(
(data) => {
console.log(data); },
(error) => {
console.log(error);
}
);

Отправка данных вашей cookie в статистику Calltouch

При переходе посетителя на сайт, где установлен новый скрипт Calltouch (актуальная версия скрипта здесь), мы фиксируем всю возможную информацию о посетителе, включая источник его перехода. Помимо этого, вы так же можете записать в статистику Calltouch необходимые вам дополнительные параметры посетителя. Например, это могут быть ваши собственные идентификаторы клиента на сайте. Сделать это можно вызвав специальную JS-функцию:

ct('set_attrs', '{"cookie":"123"}');
   

Где cookie – имя вашего параметра, а 123 – его значение.

Если на вашем сайте размещен скрипт с несколькими mod_id (когда один домен вашего сайта подключен одновременно в нескольких личных кабинетах Calltouch), то перед вызовом функции выше, первым параметром должно быть значение mod_id:

ct('mod_id', 'set_attrs', '{"cookie":"123"}');
   

Переданный таким образом параметр и его значение будут сохранены в нашу статистику вместе с остальными данными пользователя, которые мы зафиксировали. В последствии эти переданные данные, склеенные на нашей стороне с нашими данными по звонкам и заявкам, которые совершил посетитель, вы сможете выгрузить обратно к себе с помощью API-метода выгрузки звонков, API-метода выгрузки заявок и вебхуков, см. параметр attrs.

Количество передаваемых параметров в функции не ограничено.

Пример использования функции

Данный функционал может быть полезен вам для сквозной аналитики между Calltouch и другими сервисами.

Разберем на примере возможности использования. Сервис, в котором есть собственный инструмент отслеживания действий посетителей сайта, хочет видеть в своей статистике источники звонков этих посетителей. Сам сервис не может выяснить источники звонков, потому что него нет коллтрекинга, и он принимает решение сделать интеграцию с Calltouch. У данного сервиса, как и любого другого сервиса аналитики, есть собственные идентификаторы посетителей (например, myuserid), которые он присваивает посетителям с помощью своего скрипта отслеживания. Если этот сайт также подключен к нашему сервису и на нем установлен скрипт отслеживания Calltouch, то мы, помимо всей информации, что собираем о посетителе сайта, можем попутно фиксировать и идентификатор посетителя из этого стороннего сервиса. Для этого в скрипте отслеживания стороннего сервиса необходимо вызвать функцию нашего скрипта:

ct('set_attrs', '{"myuserid":"1234567890"}');
   

где myuserid – название идентификатора посетителя из стороннего сервиса, а 1234567890 – значение этого идентификатора.

Обратите внимание, что эту функцию рекомендуется вызывать только заранее проверив:

  1. Наличие на сайте пользовательской куки myuserid. Это необходимо для успешной отправки myuserid к нам в статистику.
  2. Существование функции window.ct. Если функция существует, то скрипт Calltouch установлен на странице.

Если функция set_attrs будет вызвана до того, как выполнился скрипт Calltouch (при условие, что он вообще установлен на странице, см. пункт 2 выше), то функция set_attrs выполнится автоматически сразу после загрузки скрипта Calltouch.

Если посетитель сайта выполнит звонок или оставит заявку, источник этого звонка или заявки будут отображены в статистике Calltouch. А в API и вебхуках, помимо источника звонка или заявки, будет так же доступен переданный myuserid из стороннего сервиса. В результате сторонний сервис аналитики может выгрузить источник звонка или заявки из сервиса Calltouch, используя наш API, и склеить полученные данные со своими с помощью своего же идентификатора, который ранее был передан нам.

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

 

advice_ver2.pngСм. так же:

Отправка JS-событий для фиксирования выполнения цели Calltouch

Отправка JS-событий модуля электронной торговли Calltouch


Не нашли решение проблемы?
Заполните форму, и мы вам поможем.