Как настроить сбор расширенной статистики
Юзер кейс
- Ранее мы рассматривали простой способ, как настроить сбор статистики по действиям в боте
- На практике вам может потребоваться собирать не просто нажатия пользователей на кнопки, но и записывать какие-либо динамичные данные, чтобы в дальнейшем выгружать их и анализировать (например, номер заказа, записи на приём, город отправителя/получателя).
- Сбор расширенной статистики мы с вами и рассмотрим ниже
Решение
Для добавления сбора расширенной статистики необходимо:
- Сделать бота
- Добавить узел JavaScript в том месте, где вы хотите сделать запись в статистику (например, после ввода номера накладной, указания записи для отмены, подтверждения изменений в заказе, номера телефона и т.п.)
- Вписать в него скрипт с теми данными, которые вы хотите записать:
return {
Название: key_1,
Название: key_2
}
Вместо слова Название вы можете использовать своё слово или фразу. Например, Заказ, Телефон, накладная – то название, которое хотите видеть в детализации статистики. Если вы хотите использовать фразу, тогда данную фразу необходимо внести в кавычках:
return {
"Моя фраза 1": key_1,
"Моя фраза 2": key_2
}
key_1 и key_2 – это ключи для того, чтобы в ваш скрипт записались те данные, которые вы хотите видеть в статистике. Они могут быть более понятными английскими словами вида: name, order, city и т.п. Количество ключей и строк для записи не ограничено, в примере показано 2 ключа и строки.
Если нужно добавить дополнительные параметры, самый простой вариант – скопировать предыдущую строку и поменять название и ключ.
Данные ключи надо заполнить через раздел Пары переменных. Для этого нужно будет:
- Нажать в вашем узле JavaScript на кнопку Добавить переменную
- Выбрать переменную, в которую вы записали нужное для первой переменной значение
- В поле ключ вписать key_1
- Нажать в вашем узле JavaScript на кнопку Добавить переменную
- Выбрать переменную, в которую вы записали нужное для второй переменной значение
- В поле ключ вписать key_2
Логика работы: в статистику запишется в поле Моя фраза 1 значение из первой переменной, в поле Моя фраза 2 запишется значение из второй переменной.
- В разделе Хранилище включить сохранение данных и создать через кнопку Добавить переменную с типом Временная.
-
После узла JavaScript добавить узел Управление чатом и выбрать тип действия Добавить событие в статистику. Заполнить узел:
-
В поле Тип события внести названия вашего события для статистики. Его можно делать на любом удобном языке. Например, Детализация обращений по городам
-
В поле Путь к объекту выбрать нашу созданную временную переменную через @
-
В поле Оператор можно вписать слово Бот или Оператор, либо переменную, в которой у вас хранятся данные оператора.
-
Поле Подгруппа можно оставить пустым, либо вписать туда стационарное слово или выбрать переменную. Тогда после сбора статистики у вас данные можно будет смотреть в разрезе того, что вы указали в качестве подгруппы.
-
Поле ID события в первую очередь нужно для записи события в статистику. Оно должно быть уникальным, так как два одинаковых события в статистику не запишутся. Самый простой способ – сделать его составным из значений разных системных переменных.
Например: @ID пользователя-@Название_события-@Час-@Минута
- Соединить узлы со всей логикой бота и между собой
- Сделать тестовые прогоны бота, чтобы ваша логика прошла через созданные вами узлы для записи расширенной статистики
- Дождаться ориентировочно 4 часов, чтобы записи появились в событиях статистики.
- В разделе Аналитика – Настройки настроить сбор статистики
- Перейти в созданный отчет
- Нажать на цифру в вашем созданном событии
- В разделе Настраиваемые поля выбрать ваши созданные в скрипте названия
Ошибки
- Если у вас не появляется событие, пройдите путь бота с использованием режима отладки и посмотрите, нет ли в логике ошибок.
- Если ошибка в JavaScript (подсвечивается красным) – скорее всего вы не добавили кавычки, если используете фразы или не добавили нужные запятые между событиями.
- Если у вас не появляются ваши данные, которые вы записываете через скрипт, проверьте, проходит ли ваша логика через те места, где вы эти данные собираете в переменные. Например, если вы добавите запись статистики перед запросом номера телефона и хотите видеть в статистике номер телефона, этого не будет, так как телефон вы спрашиваете уже после того, как записали ваше событие в статистику. Т.е. нужно поменять порядок узлов, чтобы запрос номера телефона был перед записью данных в статистику.
Пример
Задача - требуется настроить сбор города отправителя, города получателя и номера заказа для снятия аналитики в разрезе городов, номеров заказа. Чтобы это настроить, нужно:
- Заранее собрать логику с вопросом города отправителя, города получателя, номера заказа. Добавить узел JavaScript с параметрами:
return {
"Город отправителя": city_1,
"Город получателя": city_2,
"Номер заказа": order
}
В парах переменных добавить 3 пары переменных: в переменных выбрать переменные, куда сохраняются данные по городам и заказам, а в ключах укажем для каждой свое значение: city_1, city_2, order.
Также выбрать из списка созданную заранее временную переменную.
- Добавить узел Управление чатом
- Добавить название типа события. У нас это будет Детализация по городам
- В путь к объекту выбрать созданную ранее временную переменную
- В поле Оператор проставить стационарное слово Бот
- В поле подгруппа будет записываться канал обращения. Для этого выберем системную переменную @Тип канала связи
- В поле ID события сделаем по примеру из инструкции @ID пользователя-@Название_события-@Час-@Минута
- Далее нужно прогнать бота несколько раз до достижения созданных узлов
После того, как вы всё добавите, останется протестировать бота и вывести появившиеся данные в аналитику.