В некоторых случаях требуется отслеживать действия на стороне сервера.
Например:
- Слежка за поисковыми роботами
- Редиректы
- Загрузка файлов
- Страницы с ошибками (403, 404, 500)
- RSS
- Время выполнения скриптов
- Время запросов к базам данных
- Треккинг AJAX-запросов
- и пр.
- Загрузка страницы - hit()
- Внешняя ссылка - extLink()
- Загрузка файла - file()
- Параметры визита - params()
- Неотказ - notBounce()
В настройках счётчика во вкладке «Фильтры» / «Фильтрация роботов» необходимо выбрать опцию «Учитывать посещения всех роботов». В противном случае, статистика собираться не будет.
Отчёты, которые будут недоступны в Метрике при серверной отправки:
- Половозрастная структура
- Пол и возраст
- Разрешения дисплеев
- Версия Flash
- Вебвизор, аналитика форм
- Карта кликов
Уникальные посетители считаются по user agent'у и IP-адресу.
npm install yametrika
var http = require('http'); // Создаем счётчик, 12345 — номер счётчика var counter = require('yametrika').counter({id: 12345}); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('okay'); // Заполняем счётчик данными (referer, ip и ua) из запроса к серверу. counter.req(req); // Страница https://example.com, с заголовком 'Main page' // переход был с реферером https://othersite.com counter.hit('https://example.com', 'Main page', 'https://othersite.com'); }).listen(8080);/** * @param {string} pageUrl - Адрес страницы. * @param {string} [pageTitle] - Заголовок страницы. * @param {string} [pageRef] - Реферер страницы. * @param {Object} [userParams] - Параметры визитов. * @param {string} [ut] - Для запрета индексирования 'noindex' * * @returns {Object} this */ counter.hit('https://mysite.org', 'Main page', 'https://google.com/...'); // С запретом на индексирование и параметрами визитов counter.hit('https://mysite.org', 'Main page', 'https://google.com/...', {level1: {level2: 1}}, 'noindex');/** * @param {string} target - Название цели. * @param {Object} [userParams] - Параметры визитов. * * @returns {Object} this */ counter.hit(); counter.reachGoal('goalName'); // или // С параметрами визитов counter.hit(); counter.reachGoal('goalName', {level1: {level2: 1}});Вызов метода hit() перед reachGoal() необходим для корректной привязки цели к визиту.
/** * @param {string} url - Адрес страницы. * @param {string} [title] - Заголовок страницы. * * @returns {Object} this */ counter.extLink('https://nodejs.org');/** * @param {string} file - Ссылка на файл. * @param {string} [title] - Заголовок страницы. * * @returns {Object} this */ counter.file('https://mysite.org/secret.zip');/** * @param {...*} data - Параметры визитов. * * @returns {Object} this */ counter.params({level1: {level2: {level3: 1}}}); // или counter.params('level1', 'level2', 'level3', 1);/** * @returns {Object} this */ counter.notBounce();MIT License