2014-03-29 70 views
9

我试图用谷歌分析来追踪一些更多的自定义数据。所以我想我使用这些事件。以下是我试过的代码,我取代了uuiduser agent谷歌分析测量协议

<?php 
function gen_uuid() { 
return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', 
mt_rand(0, 0xffff), mt_rand(0, 0xffff), 
mt_rand(0, 0xffff), 
mt_rand(0, 0x0fff) | 0x4000, 
mt_rand(0, 0x3fff) | 0x8000, 
mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff) 
); 
} 

$data = array(
'v' => 1, 
'tid' => 'UA-********-**', 
'cid' => gen_uuid(), 
't' => 'event' 
); 


$data['ec'] = "category"; 
$data['ea'] = "product"; 
$data['el'] = "element"; 
$data['ev'] = "34"; 


$url = 'http://www.google-analytics.com/collect'; 
$content = http_build_query($data); 
$content = utf8_encode($content); 
$user_agent = 'Example/1.0 (http://example.com/)'; 


$ch = curl_init(); 
curl_setopt($ch,CURLOPT_USERAGENT, $user_agent); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-type: application/x-www-form-urlencoded')); 
curl_setopt($ch,CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_1); 
curl_setopt($ch,CURLOPT_POST, TRUE); 
curl_setopt($ch,CURLOPT_POSTFIELDS, $content); 
curl_exec($ch); 
curl_close($ch); 
?> 

我缺少的东西?

+0

你为什么觉得'我错过了什么'? –

+0

,因为它似乎不起作用。或者至少我没有在谷歌分析中记录任何事件。 – user2693017

+1

你可以添加一些'$ data'的最终值的例子吗?最后,当您处理测量协议 – Eduardo

回答

0

你可以试试这个

 <?php 
     function gen_uuid() { 
     return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', 
     mt_rand(0, 0xffff), mt_rand(0, 0xffff), 
     mt_rand(0, 0xffff), 
     mt_rand(0, 0x0fff) | 0x4000, 
     mt_rand(0, 0x3fff) | 0x8000, 
     mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff) 
     ); 
     } 

     $data = array(
     'v' => 1, 
     'tid' => 'UA-********-**', 
     'cid' => gen_uuid(), 
     't' => 'event' 
     ); 


     $data['ec'] = "category"; 
     $data['ea'] = "product"; 
     $data['el'] = "element"; 
     $data['ev'] = "34"; 


     $url = 'http://www.google-analytics.com/collect'; 
     $content = http_build_query($data); 
     $content = utf8_encode($content); 
     $user_agent = 'Example/1.0 (http://example.com/)'; 


     $ch = curl_init(); 
     curl_setopt($ch,CURLOPT_USERAGENT, $user_agent); 
     curl_setopt($ch, CURLOPT_URL, $url); 
     curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-type: application/x-www-form-urlencoded')); 
     curl_setopt($ch,CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_1); 
     curl_setopt($ch,CURLOPT_POST, TRUE); 
     curl_setopt($ch,CURLOPT_POSTFIELDS, $content); 
     curl_exec($ch); 
     curl_close($ch); 
     ?> 

我想这可能工作

3

我测试你的代码和它的作品。

但是,为了帮助您调试这一点,改变/调试/收集路径/收集和谷歌将验证你的命中,尝试:

<?php 
function gen_uuid() { 
return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', 
mt_rand(0, 0xffff), mt_rand(0, 0xffff), 
mt_rand(0, 0xffff), 
mt_rand(0, 0x0fff) | 0x4000, 
mt_rand(0, 0x3fff) | 0x8000, 
mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff) 
); 
} 

$data = array(
'v' => 1, 
'tid' => 'UA-1111111-1', 
'cid' => gen_uuid(), 
't' => 'event' 
); 


$data['ec'] = "category"; 
$data['ea'] = "product"; 
$data['el'] = "element"; 
$data['ev'] = "34"; 


$url = 'https://www.google-analytics.com/debug/collect'; 
$content = http_build_query($data); 
$content = utf8_encode($content); 
$user_agent = 'Example/1.0 (http://example.com/)'; 


$ch = curl_init(); 
curl_setopt($ch,CURLOPT_USERAGENT, $user_agent); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch,CURLOPT_HTTPHEADER,array('Content-type: application/x-www-form-urlencoded')); 
curl_setopt($ch,CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_1); 
curl_setopt($ch,CURLOPT_POST, TRUE); 
curl_setopt($ch,CURLOPT_POSTFIELDS, $content); 
curl_exec($ch); 
curl_close($ch); 
?> 

而且,一定要到实时报告,以检查如果你的命中正在处理。

+0

这很好/调试/收集谢谢你。 – dsum27

+0

难道人们无法使用它添加数据给其他人吗?如果你知道他们的UA。 –

+1

当然Gary!定期检查您的主机名称报告和/或实施一些命中过滤器以确保您的官方查看/报告仅包含所需的数据收集非常重要。 –