क्या सर्वर-साइड एपीआई के माध्यम से Google Analytics में ईवेंट पोस्ट करने का कोई तरीका है? [बन्द है]


178

मैं घटनाओं को पोस्ट करके अपने बैकएंड सिस्टम से Google Analytics का उपयोग करने का प्रयास कर रहा हूं। सर्वर-साइड पर GA के API के साथ ऐसा करने का कोई तरीका है?


हां, जेएस मापन प्रोटोकॉल क्लाइंट का उपयोग इस
लॉयड

जवाबों:


231

Analytics डेटा को सर्वर-साइड से ट्रैक करना अब (और आसान) संभव है। यूनिवर्सल एनालिटिक्स के लॉन्च के साथ, अब आप जीए सर्वर पर डेटा पोस्ट करने के लिए मापन प्रोटोकॉल का उपयोग कर सकते हैं ।

कोड नमूने यहाँ


5
इसका उत्तर स्वीकार किया जाना चाहिए। हम संभवतः ओपी जैसी स्थिति में हैं, जहां हम वेबसाइट विज़िटर डेटा के साथ काफी सटीक राजस्व आंकड़ा चाहते हैं। और ब्राउज़र पक्ष ट्रैकिंग भुगतान पूरा करने के अंतिम चरण के लिए पर्याप्त नहीं है (उदाहरण के लिए ग्राहक भुगतान प्रदाता साइट से वापस नहीं आता है)।
तदस सासनौसकस

मुझे समस्या है कि ग्राहक को भुगतान प्रदाता साइट से वापस नहीं आता है, लेकिन मेरे पास ग्राहक आईडी नहीं है। ग्राहक सत्र में डेटा कैसे संलग्न करें?
कोजाविन इवान

2
: @KorjavinIvan यहां दिए गए निर्देशों ग्राहक आईडी या सीआईडी परमाटर मापन प्रोटोकॉल के लिए आवश्यक प्राप्त करने के लिए कर रहे हैं developers.google.com/analytics/devguides/collection/...
जॉर्ज Pedret

1
यह विज्ञापन ब्लॉकर्स के प्रभाव के आसपास काम करने के लिए एक अच्छा तरीका है जो ga.js जैसी refs के लिए देखो की तरह लगता है
JoshuaDavid

वही मापन प्रोटोकॉल, Google Analytics और Google टैग प्रबंधक ??
Kiquenet

21
using System;
using System.Collections.Generic;
using System.Web;
using System.Net;
using System.IO;
using System.Text;

    public class GoogleAnalyticsApi
    {
        public static void TrackEvent(string type, string category,
               string action, string label, string value)
        {

            ASCIIEncoding encoding = new ASCIIEncoding();
            string postData = 
                "v=1&tid=UX-XXXXXXX-1&cid=1234&t=" + type +
                "&ec=" + category + 
                "&ea=" + action + 
                "&el=" + label + 
                "&ev=" + value;
            byte[] data = encoding.GetBytes(postData);
            HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("https://www.google-analytics.com/collect");

            myRequest.Method = "POST";
            myRequest.ContentType = "application/x-www-form-urlencoded";
            myRequest.ContentLength = data.Length;
            Stream newStream = myRequest.GetRequestStream();
            newStream.Write(data, 0, data.Length);
            newStream.Close();

        }
    }

यह यूनिवर्सल एनालिटिक्स का सही उपयोग करता है?
ब्रैडी मोरिट्ज़

@ ब्रैडीमोरिट्ज़ हाँ यह करता है
कोबी डोक

इसके अलावा- पोस्ट का उपयोग करने का कोई कारण जब यह प्राप्त अनुरोध का उपयोग कर सकता है?
ब्रैडी मोरिट्ज़

क्या यह c # है? आपको शायद निर्दिष्ट करना चाहिए?
एसकर्रौथ

7

यदि आप PHP का उपयोग करते हैं, तो आप Google Analytics खाते में पृष्ठ दृश्य भेजने के लिए Analytics मापन प्रोटोकॉल को आसानी से कॉल कर सकते हैं :

function sendAnalytics($sGaId, $sHostname, $sPath, $sTitle) {

    $aParams = array();

    //Protocol Version
    $aParams['v'] = '1';

    //Tracking ID / Web Property ID
    $aParams['tid'] = $sGaId;

    //Anonymize IP
    $aParams['aip'] = '1';

    //Data Source
    $aParams['ds'] = 'web';

    //Queue Time
    $aParams['qt'] = 0;

    //Client ID
    $aParams['cid'] = substr(md5($_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT']), 0, 8);

    //User ID
    //$aParams['uid'] = '';

    //Session Control
    //$aParams[''] = '';

    //IP Override
    $aParams['uip'] = $_SERVER['REMOTE_ADDR'];

    //User Agent Override
    $aParams['ua'] = urlencode($_SERVER['HTTP_USER_AGENT']);

    //Geographical Override
    //$aParams['geoid'] = '';

    //Document Referrer
    //$aParams['dr'] = '';

    //Campaign Name
    //$aParams['cn'] = '';

    //Campaign Source
    //$aParams['cs'] = '';

    //Campaign Medium
    //$aParams['cm'] = '';

    //Campaign Keyword
    //$aParams['ck'] = '';

    //Campaign Content
    //$aParams['cc'] = '';

    //Campaign ID
    //$aParams['ci'] = '';

    //Google AdWords ID
    //$aParams['gclid'] = '';

    //Google Display Ads ID
    //$aParams[''] = '';


    ////SystemInfo => see docs

    //Hit type
    $aParams['t'] = 'pageview';

    //Non-Interaction Hit
    //$aParams['ni'] = '';

    //Hostname
    $aParams['dh'] = $sHostname;

    //Document Path
    $aParams['dp'] = $sPath;

    //Document title
    $aParams['dt'] = urlencode($sTitle);


    $sGaUrl = 'http://www.google-analytics.com/collect?';


    foreach($aParams AS $sKey => $sValue) {
        $sGaUrl.= "$sKey=$sValue&";
    }

    $sGaUrl = substr($sGaUrl, 0, -1);

    file_get_contents($sGaUrl);
}


sendAnalytics('UA-XXXXXXXX-1', 'http://foo.com', '/bar', 'Foo Bar');

उम्मीद है की वो मदद करदे!


1
http_build_query () इस एक छोटे से क्लीनर कर सकता है (और उचित एस्केपिंग समर्थन)
kainjow

2

उपयोग-सांख्यिकी मॉड्यूल पर एक नज़र डालें ।

कमांड लाइन

शेल स्क्रिप्ट में आँकड़ों को ट्रैक करना:

# Track an event: category 'Backup', action 'start'
usage-stats event --tid UA-98765432-1 --ec Backup --ea start

# Perform the backup
cp files/** backup/

# Track an event: category 'Backup', action 'complete'
usage-stats event --tid UA-98765432-1 --ec Backup --ea complete

एपीआई

सबसे तुच्छ उदाहरण।

const UsageStats = require('usage-stats')
const usageStats = new UsageStats('UA-98765432-1', { an: 'example' })

usageStats.screenView('screen name')
usageStats.event('category', 'action')
usageStats.send()
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.