Я написал службу RESTful node.js в качестве backend для http://www.cross-copy.net и хотел бы не только отслеживать использование веб-клиентом, а также другими клиентами (например, командной строкой или приложениями), которые используют эту услугу для копирования/вставки между устройствами. Возможно ли внедрить JavaScript API JavaScript в приложение node.js и выполнить отслеживание на стороне сервера?
Как отслеживать использование службы node.js RESTful с помощью Google Analytics?
Ответ 1
Как Брэд по праву печально, ничего не было для Node... Итак, я написал модуль nodejs, адаптированный для этих последних дней, и только что опубликовал его на NPM: node-ga
Модуль по-прежнему действительно новый (едва ли он работает в проекте для домашних животных), поэтому не стесняйтесь давать свой вклад:)
Ответ 2
Поскольку все ответы действительно старые, я расскажу о новом пакете npm: https://www.npmjs.com/package/universal-analytics
Это действительно здорово и невероятно простое в использовании.
Ответ 3
Вы не сможете просто отправить ga.js в свой проект Node. Он должен быть загружен в браузере для правильной работы.
Я не верю, что есть что-то еще для Node (верьте мне, если я ошибаюсь!), но вы должны легко адаптировать существующие классы PHP для ведения журнала на стороне сервера:
https://developers.google.com/analytics/devguides/collection/other/mobileWebsites
Вы можете увидеть, как URL-адрес, требующий отслеживания GIF, построен в формате ga.php. Перевести ga.php на JS, и вы настроены.
$utmGifLocation = "http://www.google-analytics.com/__utm.gif";
// Construct the gif hit url.
$utmUrl = $utmGifLocation . "?" .
"utmwv=" . VERSION .
"&utmn=" . getRandomNumber() .
"&utmhn=" . urlencode($domainName) .
"&utmr=" . urlencode($documentReferer) .
"&utmp=" . urlencode($documentPath) .
"&utmac=" . $account .
"&utmcc=__utma%3D999.999.999.999.999.1%3B" .
"&utmvid=" . $visitorId .
"&utmip=" . getIP($_SERVER["REMOTE_ADDR"]);
Ответ 4
Установить универсальную аналитику
npm install universal-analytics --save
В файле маршрутов требуется модуль. (Замените process.env.GA_ACCOUNT на строку типа UA-12345678-1)
// Init GA client
var ua = require('universal-analytics');
var visitor = ua(process.env.GA_ACCOUNT);
Теперь, находясь внутри ваших функций конечных точек, вы можете отслеживать просмотр страниц. (Замените request.url на текущую строку url, например '/api/users/1'
)
// Track pageview
visitor.pageview(request.url).send();
Прочтите документацию в UA для получения дополнительной информации об этом модуле.
Ответ 5
Я опробовал node -ga, но не получил отслеживания событий для работы. nodealytics выполнил задание.
Ответ 6
См. Библиотеки клиентских интерфейсов основного кода отчетов и пример кода (v3).
Существует также следующая версия: Google API Клиентская библиотека для Node.js (альфа).
Ответ 7
Я написал script для запроса данных с Node.js из Googles Analytics Core Reporting API (v3). script и подробное описание настройки доступно здесь.
Вот часть script:
'use strict';
var googleapi = require('googleapis');
var ApiKeyFile = require('mywebsiteGAapi-6116b1dg49a1.json');
var viewID = 'ga:123456700';
var google = getdefaultObj(googleapi);
var Key = getdefaultObj(ApiKeyFile);
function getdefaultObj(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var jwtClient = new google.default.auth.JWT(Key.default.client_email, null, Key.default.private_key, ['https://www.googleapis.com/auth/analytics.readonly'], null);
jwtClient.authorize(function (err, tokens) {
if (err) {
console.log(err);
return;
}
var analytics = google.default.analytics('v3');
queryData(analytics);
});
function queryData(analytics) {
analytics.data.ga.get({
'auth': jwtClient,
'ids': viewID,
'metrics': 'ga:users,ga:pageviews',
'start-date': 'yesterday',
'end-date': 'today',
}, function (err, response) {
if (err) {
console.log(err);
return;
}
console.log(JSON.stringify(response, null, 4));
});
}