22

我有一个网站,我使用 javascript 函数向 Google Analytics 发送事件:

ga('send', 'event', 'showphone', 'feedback', 'result');

但是,我还需要server-side使用 PHP 发送一些类似的事件。我尝试了这个快速入门教程:Hello Analytics API:服务帐户和报告的 PHP 快速入门就像一个魅力,但我不知道如何发送事件。

您能否逐步向我展示我应该编写什么代码来发送与上面提到的完全相同的事件。

4

3 回答 3

32

Hello Analytics API:服务帐户的 PHP 快速入门对您没有任何帮助。该代码使用核心报告 API,核心报告 API 用于从Google Analytics请求数据,而不是Google Analytics 发送数据。

要将数据发送到 Google Analytics,我们使用Measurement Protocol。测量协议用于向 Google 分析发送信息,您发布的 JS 代码段也使用测量协议。

您可以使用任何支持 HTTP post 或 Http Get 的语言的测量协议。话虽如此,没有 PHP 特定的库可用于将信息发送到 Google 分析,您将不得不自己格式化您的帖子。一个提示是在您开发此内容时,在将其发送给 Google 之前使用Validating hits对其进行检查。

它可能看起来像这样

http://www.google-analytics.com/collect?v=1&tid=UA-XXX-Y&cid=35009a79-1a05-49d7-b876-2b884d0f825b&an=My%20Awesom%20APP&aid=com.daimto.awesom.app&av=1.0.0&aiid=come.daimto.awesom.installer &t=event&ec=list&ea=accounts&userclicked&ev=10
于 2015-08-25T09:25:55.147 回答
15

github 上有一个 PHP 库php-ga-measurement-protocoltheiconic可用于使用Measurement Protocal发送数据。

use TheIconic\Tracking\GoogleAnalytics\Analytics;

// Instantiate the Analytics object
// optionally pass TRUE in the constructor if you want to connect using HTTPS
$analytics = new Analytics(true);

// Build the GA hit using the Analytics class methods
// they should Autocomplete if you use a PHP IDE
$analytics
    ->setProtocolVersion('1')
    ->setTrackingId('UA-26293728-11')
    ->setClientId('12345678')
    ->setDocumentPath('/mypage')
    ->setIpOverride("202.126.106.175");

// When you finish bulding the payload send a hit (such as an pageview or event)
$analytics->sendPageview();
于 2018-07-03T11:55:09.580 回答
1

这是一个如何使用 PHP 执行此操作的示例。

首先使用Google Analytics Hit Builder构建您的请求,使用https://google-analytics.com/debug/collect?_query_here对其进行测试,然后使用file_get_contents(请参阅此处)发送。

$options = array(
    'http' => array(
        'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
        'method'  => 'POST',
        'content' => 'v=1&t=transaction&tid=UA-xxxxxxx-x&cid=xxxxxx&ti=abcdef&tr=100&in=productname'
    )
);
$context  = stream_context_create($options);
$result = file_get_contents('https://www.google-analytics.com/collect', false, $context);
于 2020-11-27T13:51:35.543 回答