Sha256: ac0cf7713b46679a999e0bdde863852c77f4b7609a5d5d1cbeaa757131dcbef8
Contents?: true
Size: 1.97 KB
Versions: 62
Compression:
Stored size: 1.97 KB
Contents
'use strict'; var qs = require('querystring'); /** * Tracking providers. * * Each provider is a function(id, path) that should return * options object for request() call. It will be called bound * to Insight instance object. */ module.exports = { // Google Analytics — https://www.google.com/analytics/ google: function (id, path) { var now = Date.now(); var _qs = { // GA Measurement Protocol API version v: 1, // hit type t: 'pageview', // anonymize IP aip: 1, tid: this.trackingCode, // random UUID cid: this.clientId, cd1: this.os, // GA custom dimension 2 = Node Version, scope = Session cd2: this.nodeVersion, // GA custom dimension 3 = App Version, scope = Session (temp solution until refactored to work w/ GA app tracking) cd3: this.appVersion, dp: path, // queue time - delta (ms) between now and track time qt: now - parseInt(id, 10), // cache busting, need to be last param sent z: now }; return { url: 'https://ssl.google-analytics.com/collect', method: 'POST', // GA docs recommends body payload via POST instead of querystring via GET body: qs.stringify(_qs) }; }, // Yandex.Metrica - http://metrica.yandex.com yandex: function (id, path) { var request = require('request'); var ts = new Date(parseInt(id, 10)) .toISOString() .replace(/[-:T]/g, '') .replace(/\..*$/, ''); var qs = { 'wmode': 3, 'ut': 'noindex', 'page-url': 'http://' + this.packageName + '.insight' + path + '?version=' + this.packageVersion, 'browser-info': 'i:' + ts + ':z:0:t:' + path, // cache busting 'rn': Date.now() }; var url = 'https://mc.yandex.ru/watch/' + this.trackingCode; // set custom cookie using tough-cookie var _jar = request.jar(); var cookieString = 'name=yandexuid; value=' + this.clientId + '; path=/;'; var cookie = request.cookie(cookieString); _jar.setCookie(cookie, url); return { url: url, method: 'GET', qs: qs, jar: _jar }; } };
Version data entries
62 entries across 62 versions & 1 rubygems