使用API服务器端发送事件到Google Analytics

26

我有一个网站,使用JavaScript函数将事件发送到Google Analytics:

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

但是,我还需要使用PHP从服务器端发送一些类似的事件。我尝试了这个快速入门教程:Analytics API: PHP服务帐户快速入门,并且报告运作良好,但我不知道如何发送事件。

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


好的,我知道,但是无论如何,在GA API中我还没有找到任何发送事件的方法,需要大师的帮助。 - aokozlov
虽然我不是 GA 的专家,但据我所知,GA 上的事件只能通过 JS 处理(因为大多数事件都是前端操作)。这在这里有详细的解释:https://developers.google.com/analytics/devguides/collection/analyticsjs/events - Auris
我知道JS方法(如上所述),但必须有一种方法可以使用服务器端发送相同的信息。 - aokozlov
@DaImTo - 你可以自由地这样做,但是OP要求“一步一步”。而且尽管我会告诉他如果他走错了路,但这需要我知道他确实走错了路;) - Epodax
@DaImTo 我不同意,但我不会在问题的评论区争论我的观点 :) - Epodax
3个回答

38
Hello Analytics API: PHP快速启动服务账户对您没有任何帮助。该代码使用核心报告API,核心报告API用于请求来自Google Analytics的数据,而不是向Google Analytics发送数据。
要向Google Analytics发送数据,我们使用测量协议(Measurement Protocol)。测量协议用于将信息发送到Google Analytics,您发布的JS片段也使用了测量协议。
您可以从任何支持HTTP post或Http Get的语言使用测量协议。话虽如此,没有专门用于向Google Analytics发送信息的PHP库,您需要自己格式化post。提示是在开发过程中使用验证命中(Validating hits)检查它,然后再将其发送到Google。
它可能看起来像这样:
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

谢谢!我看到了,但是认为在提到的API中有一些用于发送的方法。那么,我只需要POST或GET URL就可以了吗?但是授权怎么办?还是说只能从注册服务器发送? - aokozlov
1
你可以查看某人网站的源代码,获取其Google Analytics跟踪ID,并使用测量协议向其Google Analytics帐户发送垃圾数据,但不能访问他们的URL。已经有机器人在进行这样的操作,这被称为引荐垃圾邮件。Google正在解决这个问题。 - Linda Lawton - DaImTo
尝试阅读这篇文章,它主要是关于应用Google Analytics的,但如果你将screenviews替换为page views,它仍然有效,可以帮助你入门。我会记得专门再发布一篇关于这个的文章。http://www.daimto.com/monitoring-quota-usage-for-google-apis/ - Linda Lawton - DaImTo
2
请记得检查实时报告,因为事件在标准报告中不会立即显示,需要等待24小时。 - Linda Lawton - DaImTo
显示剩余7条评论

17

在 Github 上有一个 PHP 库php-ga-measurement-protocol,由theiconic开发,可用于使用测量协议(Measurement Protocol)发送数据。

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

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

我们应该如何设置CID? - Philip

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接