簡體   English   中英

如何使用PHP在重定向頁面上使用Google Analytics跟蹤?

[英]How to track with Google Analytics on a redirection page with PHP?

我有一個網站,我想跟蹤誰點擊了與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=en

你的具體情況

由於PHP在任何Javascript之前呈現並執行,因此Google Analytics跟蹤器無法將數據發送到其服務器。


解決方案

考慮到您無法跟蹤PHP重定向頁面,有許多可能的替代方案:




  • 廣告系列跟蹤( 在這種特定情況下我不會親自使用此方法。
    • /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標頭)。

可以使用谷歌測量協議來創建服務器端解決方案,以在重定向之前跟蹤頁面。 在這種情況下,您需要自己創建一個client_id,如果您重定向的屬性是您自己的屬性,請將其附加到重定向網址以進行跨域跟蹤。

如果這不關心你可以使用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。

如果您停用重定向並檢查該頁面,您是否看到在網絡標簽中對GA進行的呼叫? 我發現有時推送事件不會出現在GA中24小時。

如果你發現它確實發送給谷歌,那么我會讓它保持啟用狀態,等待一天,然后檢查GA以查看是否記錄了任何內容。

由於將訪問者發送到重定向的頁面也在您的控制之下,我建議采用完全不同的方法:在源頁面上使用事件跟蹤。

在具有/index.php?id=32鏈接的頁面上,通過將onClick處理程序附加到鏈接並執行類似的操作來測量此鏈接上的所有單擊

ga('send', 'event', {
  eventCategory: 'Redirect Link',
  eventAction: 'click',
  eventLabel: event.target.href
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM