2012-05-08 14 views
10

मैंने http://www.cross-copy.net के लिए बैकएंड के रूप में एक RESTful node.js सेवा लिखी है और न केवल वेब-क्लाइंट के उपयोग को ट्रैक करना चाहूंगा बल्कि अन्य क्लाइंट (जैसे कमांडलाइन या ऐप्स) जो इंटर-डिवाइस कॉपी/पेस्ट करें। क्या Google Analytics जावास्क्रिप्ट एपीआई को node.js एप्लिकेशन में एम्बेड करना और सर्वर-साइड ट्रैकिंग करना संभव है?किसी नोड.जेएस पर उपयोग को ट्रैक करने के लिए कैसे करें Google Analytics के साथ त्वरित सेवा?

उत्तर

2

ब्रैड हक दु: खी, नोड के लिए कुछ नहीं था ... तो मैं एक NodeJS मॉड्यूल और NPM पर इसे प्रकाशित इस इन पिछले कुछ दिनों के लिए अनुरूप सिर्फ लिखा: node-ga

मॉड्यूल वास्तव में अब भी है नई (मुश्किल से एक पालतू परियोजना पर उत्पादन में यह कोशिश कर), इसलिए अपने इनपुट देने के लिए संकोच नहीं करते :)


+0

यह वास्तव में मनोरंजक है ... मैं सिर्फ एक मॉड्यूल है कि सटीक एक ही बात करता है इस सप्ताह के अंत पर रूप दे दिया गया था! मैं उत्पादन में इसका एक संस्करण उपयोग कर रहा हूं, लेकिन लगा कि मैं इसे बाहर फेंकने से पहले थोड़ा सा कोड साफ़ कर दूंगा। – Brad

+0

@ ब्रैड: अधिक मॉड्यूल, उपयोगकर्ता को विलय :) – red

+0

हा, शायद। अभी के लिए, मुझे लगता है कि तुम्हारा ज़रूरत सिर्फ ठीक है। अच्छा काम! – Brad

2

आप अपने नोड प्रोजेक्ट में ga.js को छोड़ने में सक्षम नहीं होंगे। सही ढंग से कार्य करने के लिए इसे ब्राउज़र में लोड करना होगा।

मैं नहीं मानता कि नोड के लिए कुछ भी वहाँ अभी तक नहीं है (मुझे ठीक कर लें मैं गलत हूँ!), लेकिन आप आसानी से प्रवेश करने सर्वर साइड करने के लिए मौजूदा पीएचपी कक्षाएं अनुकूल करने के लिए सक्षम होना चाहिए:

https://developers.google.com/analytics/devguides/collection/other/mobileWebsites

आप देख सकते हैं कि ट्रैकिंग जीआईएफ का अनुरोध करने के लिए यूआरएल ga.php के भीतर कैसे बनाया गया है। Ga.php को जेएस में अनुवाद करें और आप सेट हैं।

$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"]); 
1

मैं नोड गा बाहर कोशिश की, लेकिन काम करने के लिए ईवेंट ट्रैकिंग नहीं मिला। nodealytics ने काम किया।

7

के बाद से उत्तर के सभी वास्तव में पुराने हैं, मैं एक नया NPM पैकेज का उल्लेख होगा: https://www.npmjs.com/package/universal-analytics

यह वास्तव में महान और अविश्वसनीय उपयोग करने के लिए आसान है।

2

युनिवर्सल Analytics

npm install universal-analytics --save

अपने मार्गों फ़ाइल में स्थापित करें, मॉड्यूल की आवश्यकता है। (बदलें 'UA-12,345,678-1' की तरह तार के साथ process.env.GA_ACCOUNT)

// Init GA client 
var ua = require('universal-analytics'); 
var visitor = ua(process.env.GA_ACCOUNT); 

अब अपने अंतिम बिंदु कार्यों के अंदर, आप एक पृष्ठ दृश्य ट्रैक कर सकते हैं। (request.url बदलें '/api/users/1' की तरह वर्तमान यूआरएल तार के साथ)

// Track pageview 
visitor.pageview(request.url).send(); 

इस मॉड्यूल के बारे में अधिक जानकारी के लिए यूए पर documentation पढ़ें।

0

मैंने गूगल्स Analytics कोर रिपोर्टिंग API (v3) से नोड.जेएस के साथ डेटा पूछने के लिए एक स्क्रिप्ट लिखी। स्क्रिप्ट और विस्तृत सेटअप विवरण here उपलब्ध है।

यहाँ स्क्रिप्ट हिस्सा है:

'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)); 
    }); 
} 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^