Справочник по JavaScript-коду Аллоки: из чего он состоит и какие параметры можно в нём настроить. Главная задача скрипта — заменить номер, размещённый на сайте, трекинговым, чтобы отслеживать звонки. Короткая инструкция по установке — в статье «Код трекинга».

Как получить код для сайта

Стандартный код выдаётся в личном кабинете на втором шаге создания объекта. Добавьте его в код сайта внутри тега <head> или <body>. Подмена номера заработает, когда тариф будет активирован, а код — размещён на сайте.

Минимальный код

Минимум, который нужен на сайте для отслеживания звонков:

<script>
var _alloka = {
  objects: {
    'ИДЕНТИФИКАТОР_ВАШЕГО_САЙТА': {}
  }
};
</script>

ИДЕНТИФИКАТОР_ВАШЕГО_САЙТА — уникальный идентификатор, который генерируется автоматически при добавлении сайта в личном кабинете.

Структура кода

Код состоит из двух частей:

  1. Параметры — идентификаторы объектов, классы тегов для подмены номера и прочее. Эту часть можно менять и настраивать.
  2. Подключение скрипта Аллоки с нашего сервера. Эту часть менять не рекомендуется: подмена номеров может перестать работать.

Все параметры скрипта

Все настройки задаются в первой части кода, в глобальной переменной _alloka. Пример со всеми возможностями:

<script>
// Все параметры подмены номера должны содержаться в глобальной переменной _alloka.
var _alloka = {
  // В поле objects задаются объекты отслеживания звонков
  objects: {
    // Ключи — идентификаторы ваших объектов отслеживания
    'ИДЕНТИФИКАТОР_ВАШЕГО_ОБЪЕКТА_НОМЕР_1': {
      // Класс HTML-тегов, в которых будет отображаться номер телефона
      block_class: 'phone_alloka',
      // Формат отображения номера телефона
      format: '+7 (#{XXX}) #{XXX}-#{XX}-#{XX}'
    },
    // Можно задать несколько объектов отслеживания
    'ИДЕНТИФИКАТОР_ВАШЕГО_ОБЪЕКТА_НОМЕР_2': {
      // Одному объекту можно задать несколько классов
      block_class: ['phone_alloka_2', 'one_more_class'],
      // В формате можно заменить +7 на 8 и использовать HTML-теги
      format: '<small>8 (#{XXX})</small> #{XXX}-#{XX}-#{XX}'
    }
  },
  // Данные из custom_data сохраняются в информации о звонке
  custom_data: {
    my_var: 'Hello, World!',
    page_title: 'Примерный текст'
  },
  trackable_source_types: ['referrer', 'utm', 'typein']
};
</script>

Несколько объектов отслеживания на одной странице

Иногда на одной странице нужно подменять несколько разных номеров — например, если у вас разные номера в разных городах. Для каждого номера создайте отдельный объект в личном кабинете и укажите идентификаторы всех объектов в коде.

Допустим, вы создали объект для московского номера и объект для петербургского:

<script>
var _alloka = {
  objects: {
    'ИДЕНТИФИКАТОР_ОБЪЕКТА_МОСКОВСКОГО_НОМЕРА': {
      block_class: 'moscow_number'
    },
    'ИДЕНТИФИКАТОР_ОБЪЕКТА_ПЕТЕРБУРГСКОГО_НОМЕРА': {
      block_class: 'petersburg_number'
    }
  }
};
</script>

Так вы получите статистику звонков отдельно по каждому номеру.

Несколько классов для одного объекта

Если номер нужно показать в нескольких блоках сайта и задавать им всем один класс неудобно, передайте скрипту список классов: block_class: ['phone_alloka_2', 'one_more_class']. Количество классов не ограничено.

Формат отображения номера

По умолчанию Аллока показывает номер в формате +7 (999) 999-99-99. Можно задать любой другой: +7 999 999 9999, 8-999-999-99-99, 8-999-99-99-999 — и использовать HTML-теги. Так номер сохранит привычный вид на странице.

Маска по умолчанию — '+7 (#{XXX}) #{XXX}-#{XX}-#{XX}'. Скрипт выводит 10 цифр номера без кода страны (например, 9876543210) и по очереди подставляет их в блоки вида #{XXX}, где каждый X — одна цифра.

  • Количество блоков и цифр в них можно менять: '+7 (#{XXX}) #{XXX}-#{XXXX}'.
  • Код страны можно заменить или убрать: '8 (#{XXX}) #{XXX}-#{XXXX}'.
  • Отдельные части номера можно обернуть в теги: '<span class="small">+7 (#{XXX})</span> #{XXX}-#{XXXX}'.

Формат задаётся свойством format у объекта:

<script type="text/javascript">
var _alloka = {
  objects: {
    'ИДЕНТИФИКАТОР_ОБЪЕКТА': {
      block_class: 'phone_alloka',
      format: '+7 (#{XXX}) #{XXX}-#{XX}-#{XX}'
    }
  },
  trackable_source_types: ['referrer', 'utm']
};
</script>
<script src="//analytics.alloka.ru/v4/alloka.js" type="text/javascript"></script>

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

Как выглядит номер Значение format
+7 (999) 999-99-99 (стандартный) '+7 (#{XXX}) #{XXX}-#{XX}-#{XX}'
8 800 999 88 55 '8 #{XXX} #{XXX} #{XX} #{XX}'
(495) 123-45-67 '<small>(#{XXX})</small> #{XXX}-#{XX}-#{XX}'
(8342) 24-24-24 '(#{XXXX}) #{XX}-#{XX}-#{XX}'

Как отключить подмену при прямых заходах

Параметр trackable_source_types задаёт, для каких типов источников работает подмена:

  • typein — прямые заходы на страницу;
  • referrer — переходы по ссылкам с других страниц;
  • utm — переходы по ссылкам с UTM-метками с других страниц, из писем, приложений и т. д.

С таким кодом номер не будет подменяться при прямых заходах:

<script type="text/javascript">
var _alloka = {
  objects: {
    'ИДЕНТИФИКАТОР_ОБЪЕКТА': {
      block_class: 'phone_alloka'
    }
  },
  trackable_source_types: ['referrer', 'utm']
};
</script>
<script src="//analytics.alloka.ru/v4/alloka.js" type="text/javascript"></script>

Передача своих данных о звонке

Чтобы прикреплять к каждому звонку собственные данные — например, внутренний идентификатор пользователя, — задайте их в параметре custom_data:

<script>
var _alloka = {
  objects: {
    'ИДЕНТИФИКАТОР_ВАШЕГО_САЙТА': {}
  },
  custom_data: {
    my_var: 'Hello, World!',
    page_title: 'Примерный текст'
  },
  trackable_source_types: ['typein', 'referrer', 'utm']
};
</script>

Можно передать и массив: custom_data: ["Мои", "данные"].

Пример для сайта с подключённым Roistat — передача идентификатора визита:

custom_data: {'roistat': $.cookie('roistat_visit')}

Частые вопросы

Что нужно для работы скрипта Аллоки?

Ничего, кроме нашего кода. Скрипт написан на чистом JavaScript без сторонних библиотек и не конфликтует с библиотеками, которые уже есть на сайте.

Не замедлит ли код Аллоки работу сайта?

Минимальный код подмены номера занимает 8 строк, для лендинга достаточно одной строки. Сам подключаемый скрипт весит около 6,9 КБ — это не повлияет заметно на скорость загрузки даже при медленном интернете.

Остались вопросы по установке и настройке скрипта — напишите на support@alloka.ru.