creador - ¿Hay alguna forma de publicar eventos en Google Analytics a través de la API del lado del servidor?
onclick ga (6)
Intento utilizar Google Analytics desde nuestro sistema de back-end mediante la publicación de eventos. ¿Hay alguna manera de hacer esto con la API de GA en el lado del servidor?
Ahora es posible (y fácil) rastrear datos de Analytics desde el lado del servidor. Con el lanzamiento de Universal Analytics, ahora puede usar el protocolo de medición para publicar datos en los servidores GA.
Eche un vistazo al módulo de estadísticas de uso .
Línea de comando
Estadísticas de seguimiento en scripts de 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
El ejemplo más trivial.
const UsageStats = require(''usage-stats'')
const usageStats = new UsageStats(''UA-98765432-1'', { an: ''example'' })
usageStats.screenView(''screen name'')
usageStats.event(''category'', ''action'')
usageStats.send()
Sí, utilice el nuevo protocolo de medición de Google Analytics
Si no está listo para actualizar a Universal Analytics de Google y para aquellos que buscan una solución de Ruby (y / o Rails), eche un vistazo a la joya de Gabba.
https://github.com/hybridgroup/gabba
Los que no usan ruby también pueden consultar este código para ver ejemplos de cómo (generalmente) implementar una solución del lado del servidor para GA.
Si usa PHP, puede llamar fácilmente al Protocolo de medición de Analytics para enviar vistas de página a su cuenta de 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'');
¡Espero que ayude!
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();
}
}