【问题标题】:Google Analytics PHP (Sending information)Google Analytics PHP(发送信息)
【发布时间】:2015-03-02 10:00:36
【问题描述】:

主要思想

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

以下大部分链接都非常旧。 2012~

检索 - 不是我需要的

我已经阅读了多篇 StackOverflow 帖子,但它们只提到了检索信息的方法。

PHP API for Google Analytics(SO)

发送 - 我需要什么

有一篇关于发送信息的帖子,但该库已弃用 GitHub。

Google Analytics PHP API Redirect URI (SO)

Google api php client(GOOGLE)

问题

如何在 PHP 中向我的 Google Analytics(分析)帐户发送信息?谢谢

【问题讨论】:

    标签: php google-analytics


    【解决方案1】:

    要非常小心... 谷歌能够使用cookies和浏览器功能检索大量关于用户代理、位置、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);
    

    【讨论】:

      【解决方案2】:

      您通过Measurement Protocol 发送数据。不需要特殊的库或开发工具包,您只需将参数附加到 GA 端点并通过 Curl/fopen/sockets/whatever 发送到 Google Analytics。

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

      所以记录浏览量的最基本示例如下所示:

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

      【讨论】:

      • 感谢您的帮助。不知道这一点。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-13
      • 2021-11-24
      • 2013-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多