谷歌分析PHP(发送信息) 主旨

谷歌分析PHP(发送信息) 主旨,php,google-analytics,Php,Google Analytics,我正在做一个项目,我需要使用谷歌分析服务器端。我不需要检索信息,但我需要发送信息。我最终可以将js脚本发送到客户端,但在这个场景中,这不是一个选项 下面的大多数链接都很旧。2012年~ 检索-不是我需要的 我读过多篇StackOverflow文章,但它们只提到检索信息的方法 发送-我需要的 有一篇文章谈到了发送信息,但是GitHub已经被该库弃用了 问题: 如何用PHP将信息发送到我的Google Analytics帐户?感谢您通过发送数据。不需要特殊的库或开发工具包,只需将参数附加到GA

我正在做一个项目,我需要使用谷歌分析服务器端。我不需要检索信息,但我需要发送信息。我最终可以将js脚本发送到客户端,但在这个场景中,这不是一个选项

下面的大多数链接都很旧。2012年~

检索-不是我需要的 我读过多篇StackOverflow文章,但它们只提到检索信息的方法

发送-我需要的 有一篇文章谈到了发送信息,但是GitHub已经被该库弃用了

问题: 如何用PHP将信息发送到我的Google Analytics帐户?感谢您通过发送数据。不需要特殊的库或开发工具包,只需将参数附加到GA端点,并通过Curl/fopen/sockets/任何方式将其发送到Google Analytics

每个调用至少包括您要向其发送数据的帐户的ID、允许将交互分组到会话中的客户端ID(因此每个访问者的ID应该是唯一的,但不能亲自识别用户)、交互类型(页面视图、事件、计时等,某些交互类型需要附加参数)以及您正在使用的协议版本(目前只有一个版本)

因此,记录页面视图的最基本示例如下所示:

www.google-analytics.com/collect/v=1&tid=UA-XXXXY&cid=555&t=pageview&dp=%2Fmypage

非常小心… 谷歌能够通过cookies和浏览器功能检索大量用户信息,包括用户代理、位置、ip、活动、语言等。 因此,所有命令通常使用客户端js脚本发送。 如果你想在服务器端工作,你必须处理所有必要的信息,你需要收集在你的统计数据,然后再发送点击。 例如,如果你没有正确处理UUID,谷歌会把每一次点击视为“新访问者”。如果你想知道用户的地理位置,并且你的服务器在爱尔兰,那么用户的每一次点击都会被认为是爱尔兰人的。每个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);

谢谢你的帮助。我不知道。