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

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

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

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

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

我试图在重定向之前粘贴GA代码和ECHO,但它不起作用。 怎样才能用GA来跟踪这些页面?


一般来说

如果您的网页使用重定向,则重定向页面会成为目标网页的推荐链接。 例如,如果您已更改网站,以便index.html现在重定向到home.html,则index.html将成为home.html的引荐来源。 如果有人通过Google搜索将您的网站发送给index.html,那么您将不会收到任何有关Google搜索的数据。

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

请注意,有些浏览器可能会在JavaScript代码调用之前实际重定向。

(请参阅https://support.google.com/analytics/answer/1009614?hl=zh-CN)

你的具体案例

由于PHP在任何Javascript之前呈现并执行,因此Google Analytics跟踪器没有机会向其服务器发送数据。


解决方案

考虑到你无法跟踪PHP重定向页面,有很多可能的选择:

  • Javascript重定向:https://stackoverflow.com/a/4745622/1672895
  • window.location = "http://www.yoururl.com";

  • 元刷新:https://stackoverflow.com/a/8692559/1672895
  • <meta http-equiv="refresh" content="5; url=http://example.com/">

  • 虚拟网页追踪:https://developers.google.com/analytics/devguides/collection/analyticsjs/pages
  • ga('send', 'pageview', '/index.php?id=32');

  • 活动跟踪(我不会在这个特定情况下亲自使用此方法。)
  • /products.php?utm_source=index&utm_medium=redirection-page&utm_campaign=32
  • 在登录PHP重定向页面之前,列表中的最后两项是在初始页面上的各个链接上实现的。


    我会建议像下面这样的东西。 它使用hitCallback进行重定向,以便将事件发送到GA,然后重定向将发生。 它还设置超时,以便analytics.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>
    

    跟踪代码和网址当然应该更新以符合您的要求。

    参考文献:

  • 处理超时
  • 命中回拨

  • 如果你看看你的错误日志,你会看到一个错误,粗略地说“无法发送重定向头,头已经发送”。 当您的PHP代码片段之前已经有HTML / Javascript输出时(因为那时您已经隐式发送了您的http头文件),通过位置标头进行重定向是不可能的。

    可以使用Google Googles测量协议创建服务器端解决方案,在重定向之前跟踪页面。 在这种情况下,您需要自己创建一个client_id,如果您重定向的属性是您自己的,请将其附加到重定向url以进行跨域跟踪。

    如果这不是问题,你可以使用Curl或fopen通过Url向GA发送呼叫:

    https://www.google-analytics.com/collect?v=1&tid=UA-XXXX-Y&cid=XXXXXXXXt=pageview&dp=%2redirect

    其中,UA-XXXX-Y是来自Google的帐户ID,cid是您生成的客户端ID,/ redirect是您网页的名称。 如果要识别重复使用的用户,则需要将客户端ID保存到Cookie,并检查每次访问是否存在Cookie,如果存在,则检索该ID。

    链接地址: http://www.djcxy.com/p/34729.html

    上一篇: How to track with Google Analytics on a redirection page with PHP?

    下一篇: How to have form redirect on submit