如何在使用PHP的重定向页面上使用Google Analytics进行跟踪?

我有一个网站,我想跟踪谁点击了GA的特定链接。

假设我有这个页面: /index.php?id=32

在此页面上,我基于ID变量(在本例中为:32)运行一些查询,并从数据库中获取32 id项的URL以重定向访问者。

我正在使用PHP函数:header('Location: http://www.example.com');。在重定向用户之前,我希望Google捕获访问者的信息,然后重定向到所需的网页。

我试图在重定向之前粘贴GA代码并ECHO它,但是它不起作用。如何使用 GA 跟踪此类页面?


答案 1

一般而言

如果您的网页使用重定向,则重定向网页将成为着陆页的引荐来源网址。例如,如果您更改了网站,以便索引.html现在重定向到主页.html,则索引.html成为主页.html的引荐来源网址。如果有人通过 Google 搜索访问了您的网站,该搜索首先将他们发送到索引.html,您将没有关于 Google 搜索的任何数据。

因此,您应该将Google Analytics(分析)跟踪代码放在重定向页面以及着陆页上。这样,重定向页面将捕获报告的实际引荐来源网址信息。

请注意,某些浏览器实际上可能会在从代码中调用 JavaScript 之前进行重定向。

(参看 https://support.google.com/analytics/answer/1009614?hl=en)

您的具体案例

由于PHP在任何Javascript之前呈现和执行,因此Google Analytics(分析)跟踪器没有机会将数据发送到其服务器。


解决 方案

考虑到您无法跟踪PHP重定向页面,有许多可能的替代方法:




  • 广告系列跟踪(在这种特定情况下,我个人不会使用此方法。)
    • /products.php?utm_source=index&utm_medium=redirection-page&utm_campaign=32

列表中的最后两个项目在进入PHP重定向页面之前,在初始页面上的各个链接上实现。


答案 2

我会建议如下。它使用 hitCallback 执行重定向,因此事件将发送到 GA,然后重定向将发生。它还设置了一个超时,以便在分析.js不可用时(无论出于何种原因),查看器仍(最终)被发送到正确的位置。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
    <head>
        <title>example</title>
        <script>
            setTimeout(redirect, 2000);
            var redirected = false;
            function redirect() {
                if (!redirected) {
                    redirected = true;
                    location.href = 'http://your.website.here.com';
                }
            }
            (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
                (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
                m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
            })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
            ga('create', 'UA-NNNNNNN-N', 'auto');
            ga('send', 'event', 'Event Name', 'redirect', {
                hitCallback: redirect
            });
        </script>
    </head>
    <body>
    </body>
</html>

跟踪代码和网址当然应该更新以匹配您的跟踪代码和网址。

引用: