繁体   English   中英

很少有指标在 Google Analytics Measurement Protocol 中不起作用

[英]Few metrics not working in Google Analytics Measurement Protocol

我正在尝试使用此 PHP 片段跟踪用户访问服务器端。

        $url = strtolower($_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'] . substr($_SERVER['SCRIPT_NAME'], 0, strrpos($_SERVER['SCRIPT_NAME'], '/') + 1) . $alias);
        preg_match('~^[A-z]*~', isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : '', $languages);
        $post = [
                'v' => 1,
                'uip' => $_SERVER['REMOTE_ADDR'],
                'tid' => GOOGLE_ANALYTICS_CODE,
                'cid' => hash('sha256', $_SERVER['REMOTE_ADDR']),
                't' => 'pageview',
                'dl' => $url,
                'ua' => isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '',
                'dr' => isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '',
                'ul' => $languages[0],
            ];

        $curl = curl_init();
        curl_setopt_array($curl, array(
            CURLOPT_URL => "https://www.google-analytics.com/collect",
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_CUSTOMREQUEST => "POST",
            CURLOPT_HTTPHEADER => array(
                "User-Agent" => isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '',
                "Referer" => isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '',
                "Accept-Language" => isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : '',
            ),
            CURLOPT_POSTFIELDS => http_build_query($post),
        ));
        $response = curl_exec($curl);

它似乎部分起作用。

我可以跟踪的内容:

  • URL 的页面访问量。

  • 用户位置

  • 浏览器

我无法追踪的内容:

  • 用户语言(始终“无设置”)

  • 收购(每个人都是“直接”的)

跟踪“收购”对我来说是最重要的。 如何修复代码以跟踪这两个或至少是 Acquisition。

听起来可能很奇怪,但将 POST 数据转换为 GET 数据似乎最终完成了这项工作。

    if (!empty(GOOGLE_ANALYTICS_CODE)) {
        $url = strtolower($_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['HTTP_HOST'] . substr($_SERVER['SCRIPT_NAME'], 0, strrpos($_SERVER['SCRIPT_NAME'], '/') + 1) . $alias);
        preg_match('~^[A-z]*~', isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : '', $languages);
        $post = [
            'v' => 1,
            'uip' => $_SERVER['REMOTE_ADDR'],
            'tid' => GOOGLE_ANALYTICS_CODE,
            'cid' => hash('sha256', $_SERVER['REMOTE_ADDR']),
            't' => 'pageview',
            'dl' => $url,
            'ua' => isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '',
            'dr' => isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '',
            'ul' => $languages[0],
        ];
        $headers = [
            "User-Agent" => isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '',
            "Referer" => isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '',
            "Accept-Language" => isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : '',
        ];
        $curl = curl_init();
        curl_setopt_array($curl, array(
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_URL => "https://www.google-analytics.com/collect?" . http_build_query($post),
            CURLOPT_HTTPHEADER => $headers,
        ));
        $response = curl_exec($curl);
        //var_dump($response, $post, "https://www.google-analytics.com/collect?" . http_build_query($post),$headers);die;
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM