Сбор статистики для метрики, аналитики
В актуальной версии решения появилась встроенная интеграция с Яндекс.Метрикой - через настройки решения вы можете задать цели, выполняемые по клику на определенный контакт. Сбор статистики в другие сервисы или более сложные схемы сбора можно организовать способом описанным ниже
Сбор статистики можно легко организовать через javascript. Сбор нажатий на конкретный контакт можно прикрутить практически к любому элементу решения:
Пример установки событий через javascript при нажатии кнопку открытия и на WhatsApp:
<script>
document.addEventListener("DOMContentLoaded", function(event) {
// Событие клика по Открыть блок
document.querySelector('.js-agchatpanel-button').addEventListener("click", function(){
// console.log('open block');
/* Код целия яндекс метрики или события google аналитики */
return true;
});
// Событие клика по кнопке WhatsApp
document.querySelector('.ag_chatpanel_link_icon_whatsapp').addEventListener("click", function(){
// console.log('open WA');
/* Код целия яндекс метрики или события google аналитики */
return true;
});
});
</script>
Куда размещать данный код?
В любой JS-файл сайта (который не затирается обновлениями чего-либо).
Например у вас есть тиражное решение, в нём всегда есть файл для кастомного js. Туда добавляется код по инструкции (вешаются цели на конкретные кнопки решения) и статистика фиксируется без коррекции кода решения и с сохранением обновлений.
Добавление и изменение элементов по своим условиям
Внимание:
Для работы с событиями необходимы базовые навыки программирования
Решение поддерживает событие для изменения списка контактов и настроек. Это может быть полезно если у вас нестандартная многосайтовость или нужно добавить свой контакт, который не поддерживает решение из коробки.
С помощью данного события вы можете добавить или изменить контакты в зависимости от множества факторов: выбранного города, домена и т.п.
Массив $options - настройки решения, массив $chatList - список отображаемых контактов
1. Пример обработчика с добавлением дополнительной иконки контакта:
AddEventHandler('arturgolubev.chatpanel', "onBeforeWriteHtml", "onBeforeWriteHtml");
function onBeforeWriteHtml(&$options, &$chatList){
if($_SERVER["SERVER_NAME"] == 'test.ru'){
$chatList["mobile_phone_dop"] = array(
"TYPE" => "mobile_phone_dop",
"HREF" => "tel:+79909909091",
"ICON_CLASS" => "ag_chatpanel_link_icon_phone",
"BLANK" => "N",
"SORT" => "100"
);
}
}
2. Пример обработчика для мультирегиональности Аспро:
AddEventHandler('arturgolubev.chatpanel', "onBeforeWriteHtml", "onBeforeWriteHtml");
function onBeforeWriteHtml(&$options, &$chatList){
global $arRegion; // Тут хранятся данные Аспро о регионе
if($arRegion['ID'] == 7894){
// пример смены контакта email для региона с айди 7894
$chatList["email"]["HINT"] = 'regionmail@yandex.ru';
$chatList["email"]["HREF"] = 'mailto:regionmail@yandex.ru';
}
}