Google Analytics PHP(发送信息)

kem*_*ica 1 php google-analytics

大意

我正在开发一个项目,我需要使用Google Analytics服务器端.我不需要检索信息,但我需要发送信息.我最终可以发送js脚本客户端,但在这种情况下它不是一个选项.

以下大多数链接都很旧.2012〜

检索 - 不是我需要的

我已经阅读了多个StackOverflow帖子,但他们只提到了检索信息的方法.

适用于Google Analytics的PHP API(SO)

发送 - 我需要什么

有一篇文章谈论发送信息,但GitHub已被弃用于该库.

Google Analytics PHP API重定向URI(SO)

谷歌api php客户端(GOOGLE)

如何以PHP格式向Google Analytics帐户发送信息?谢谢

小智 9

要非常小心...... Google可以使用Cookie和浏览器功能来检索有关用户代理,位置,IP,广告系列,语言等的大量用户信息.所有命令通常都是使用客户端js脚本发送的.如果您想在服务器端工作,您必须在发送HIT之前处理您需要在统计信息中收集的所有必要信息.例如,如果您未正确处理UUID,Google会将每个HIT视为"新访问者".如果您想知道用户的地理位置并且您的服务器位于爱尔兰,那么用户所做的每一次点击都将被爱尔兰人认为.每个IP都与您的服务器相同,依此类推.我使用php制作了一个自定义库来考虑所有这些问题.基本上你可以使用curl:

function SendGoogleEvent($userid,$category,$action, $label='',$eventvalue=0,$campaign_name='direct',$campaign_source='organic',$campaign_medium='organic'){
$strCookie='';
foreach ($_COOKIE as $key => $value) {
    $strCookie.=$key.'='.$value.'; ';
}
$fields_string='';
$fields = array (
    'v' => 1,
    'tid' => "YOUR GA ID",
    'cid' => $userid,
    'uip' => $_SERVER['REMOTE_ADDR'],
    'dh' => "your site address",
    'ul' => 'it-it', // In this case i dont care the user language
    't' => 'event',
    'ec' => urlencode($category),
    'ea' => urlencode($action),
    'el' => urlencode($label),
    'ev' => $eventvalue
);  
if ($campaign_name!='direct') {
    $fields["cn"]=$campaign_name;
}
if ($campaign_source!='organic') {
    $fields["cs"]=$campaign_source;
}
if ($campaign_medium!='organic') {
    $fields["cm"]=$campaign_medium;
}
if (!(substr($_SERVER['HTTP_REFERER'], 0, strlen("your site url")) === "your site url")&&$campaign_name=='direct') {
    $fields["dr"]=$_SERVER['HTTP_REFERER'];
}
foreach($fields as $key=>$value) {
     $fields_string .= $key.'='.$value.'&'; 
}
rtrim($fields_string, '&');
$ch = curl_init();
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, utf8_encode($fields_string));       
curl_setopt($ch,CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_URL,"https://ssl.google-analytics.com/collect");
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_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt( $ch, CURLOPT_COOKIE, $strCookie );
curl_exec( $ch );
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)


Eik*_*rff 5

您通过测量协议发送数据.您不需要特殊的库或开发工具包,只需将参数附加到GA端点并通过Curl/fopen/sockets /发送给Google Analytics.

每个调用至少包括您要向其发送数据的帐户的ID,允许将交互分组到会话中的客户端ID(因此每个访问者应该是唯一的,但不能单独识别用户),交互类型(网页浏览,事件,时间等,某些交互类型需要其他参数)和您正在使用的协议版本(目前只有一个版本).

因此,记录网页浏览的最基本示例如下所示:

www.google-analytics.com/collect/v=1&tid=UA-XXXXY&cid=555&t=pageview&dp=%2Fmypage
Run Code Online (Sandbox Code Playgroud)