Có cách nào để đăng sự kiện lên Google Analytics thông qua API phía máy chủ không? [đóng cửa]


178

Tôi đang cố gắng sử dụng Google Analytics từ hệ thống phụ trợ của chúng tôi bằng cách đăng các sự kiện lên nó. Có cách nào để làm điều này với API của GA ở phía máy chủ không?


có, sử dụng ứng dụng khách Giao thức đo lường JS như thế này
Lloyd

Câu trả lời:


231

Hiện tại có thể (và dễ dàng) để theo dõi dữ liệu Analytics từ phía máy chủ. Với việc ra mắt Universal Analytics, giờ đây bạn có thể sử dụng Giao thức đo lường để đăng dữ liệu lên các máy chủ GA.

Mẫu mã tại đây


5
Điều này nên được chấp nhận câu trả lời. Chúng tôi có thể đang ở trong một tình huống tương tự như OP nơi chúng tôi muốn có con số doanh thu khá chính xác với dữ liệu khách truy cập trang web. Và theo dõi phía trình duyệt chỉ không đủ tốt cho bước cuối cùng để hoàn tất thanh toán (ví dụ: khách hàng không quay lại từ trang web của nhà cung cấp thanh toán).
Tadas Sasnauskas

Tôi có cùng một vấn đề với khách hàng không quay lại từ trang web của nhà cung cấp thanh toán, nhưng tôi không có ID khách hàng. Làm thế nào để đính kèm dữ liệu vào phiên khách hàng?
Korjavin Ivan

2
@KorjavinIvan đây là các hướng dẫn để nhận được id khách hàng hoặc paramater cid cần thiết cho Nghị định thư Đo lường: developers.google.com/analytics/devguides/collection/...
Jorge Pedret

1
đây có vẻ là một cách tốt để khắc phục hiệu quả của các trình chặn quảng cáo tìm kiếm các ref như ga.js
JoshuaDavid

cùng một Giao thức đo lường, Google Analytics và Google Tag Manager ??
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();

        }
    }

Điều này sử dụng phân tích phổ quát đúng?
Brady Moritz

@BradyMoritz Đúng vậy
Koby Douek

Ngoài ra - bất kỳ lý do để sử dụng bài viết khi nó có thể sử dụng một yêu cầu nhận là tốt?
Brady Moritz

đây có phải là c # không? bạn nên chỉ định có thể?
Esqarrouth

7

Nếu bạn sử dụng PHP, bạn có thể dễ dàng gọi Giao thức đo lường Analytics để gửi lượt xem trang đến tài khoản Google Analytics của mình:

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');

Mong rằng sẽ giúp!


1
http_build_query () có thể làm cho điều này sạch hơn một chút (và hỗ trợ thoát hiểm thích hợp)
kainjow

2

Hãy nhìn vào mô-đun sử dụng thống kê .

Dòng lệnh

Thống kê theo dõi trong tập lệnh 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

Ví dụ tầm thường nhất.

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

usageStats.screenView('screen name')
usageStats.event('category', 'action')
usageStats.send()
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.