首页 文章

有没有办法通过服务器端API将事件发布到Google Analytics? [关闭]

提问于
浏览
156

我正在尝试通过向其发布事件从我们的后端系统使用Google Analytics . 有没有办法在服务器端使用GA的API?

4 回答

  • 205

    看一下usage-stats模块 .

    命令行

    跟踪shell脚本中的统计信息:

    # 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
    

    API

    最琐碎的例子 .

    const UsageStats = require('usage-stats')
    const usageStats = new UsageStats('UA-98765432-1', { an: 'example' })
    
    usageStats.screenView('screen name')
    usageStats.event('category', 'action')
    usageStats.send()
    
  • 1

    现在可以(并且很容易)从服务器端跟踪Analytics数据 . 随着Universal Analytics的推出,您现在可以使用Measurement Protocol将数据发布到GA服务器 .

    Code samples here

  • 7
    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();
    
            }
        }
    
  • 16

    如果您使用PHP,则可以轻松调用Analytics Measurement Protocol向您的Google 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');
    

    希望有所帮助!

相关问题