有没有办法通过服务器端API将事件发布到Google Analytics?
我试图通过向其发布事件来从后端系统使用Google Analytics。 在服务器端使用GA的API有没有办法做到这一点?
现在可以(并且容易)从服务器端跟踪分析数据。 随着Universal Analytics的推出,您现在可以使用Measurement Protocol将数据发布到GA服务器。
代码示例在这里
是的,使用新的Google Analytics测量协议
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("http://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(); } }
如果您使用PHP,则可以轻松调用Google Analytics(分析)衡量协议向您的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');
希望有所帮助!
如果您还没有准备好升级到Google的Universal Analytics,以及那些正在寻找Ruby(和/或Rails)解决scheme的用户,请查看Gabba的gem。
https://github.com/hybridgroup/gabba
对于如何(通常)实现GA的服务器端解决scheme的一些示例,非红gem人也可能会看这个代码。
看看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()