В некоторых случаях требуется отслеживать действия на стороне сервера.
Например:
- Слежка за поисковыми роботами
- Редиректы
- Загрузка файлов
- Страницы с ошибками (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