Я пытаюсь использовать Google Analytics из нашей бэкэнд-системы, размещая в ней события. Есть ли способ сделать это с помощью API GA на стороне сервера?
Есть ли способ опубликовать события в Google Analytics через API-интерфейс на стороне сервера?
Ответ 1
Теперь можно (и легко) отслеживать данные Google Analytics со стороны сервера. С запуском Universal Analytics теперь вы можете использовать Протокол измерений для отправки данных на серверы GA.
Ответ 2
Да, используйте новый Протокол измерения Google Analytics
Ответ 3
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();
        }
    }
Ответ 4
Если вы используете 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');
Надеюсь, что это поможет!
Ответ 5
Если вы не готовы перейти на Google Universal Analytics и для тех, кто ищет решение Ruby (и/или Rails), посмотрите на камень Gabba.
https://github.com/hybridgroup/gabba
Нерубимые люди также могут посмотреть на этот код для некоторых примеров того, как (в общем) реализовать решение на стороне сервера для GA.
Ответ 6
Взгляните на модуль usage-stats.
Командная строка
Статистика отслеживания в сценариях оболочки:
# 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()
