“会话”跟踪似乎已经破裂

时间:2013-07-10 02:45:39

标签: php wordpress cookies

我有Facebook广告将用户引入网站。每个广告都有不同的跟踪ID: www.scaredycut.com/index.php?azn=TRACKING_ID

一旦进入网站,跟踪ID就会被插入到亚马逊的链接中(以便在购买商品时指示推荐销售)。如果用户直接访问该网站(而不是通过广告),则会收到跟踪ID scaredycut-direct。

我设置了两道防线:首先,创建一个包含TRACKING_ID的cookie。如果禁用cookie,则url标记仍然存在(azn = TRACKING_ID),可用于抓取。

在index.php中,一个重定向到主页的初始php文件:

# capture TRACKING_ID from URL
$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$parsed_url = parse_url($actual_link);
$azn = substr($parsed_url[query], 4);

# save tag into a cookie set to expire in 30 days
setcookie ("ScaredyCut_AmazonReferral1", $azn,time()+60*60*24*30);

在Wordpress的functions.php中:

# create TRACKING_ID variable from url tag
$urltrackingID = $_GET["azn"];
# create TRACKING_ID variable from cookie
$cookietrackingID = $_COOKIE["ScaredyCut_AmazonReferral1"];

# logic: which variable to use?
if ($cookietrackingID == NULL) { // if there's no cookie,
        if ($urltrackingID == NULL) { // if they came directly,
            $trackingID = "scaredycut-direct"; // use tracking ID "scaredycut-direct"
        } else {    // otherwise, cookies are disabled, so use url tracking ID
            $trackingID = $urltrackingID;   
        }
    } else {    // otherwise, cookie are enabled, so use cookie tracking ID
        $trackingID = $cookietrackingID;
    }

在header.php中:

# declare global tracking ID var
<?php 
    global $trackingID; 
?>

然后,我只是将$ trackingID插入到链接的href中。 (我优先考虑cookies。如果他们有cookie,我宁愿做一个cookie,以防他们离开并稍后再回来。)

我的方法在大多数情况下都有效(对于新手我来说很惊讶)。会话正在被正确跟踪,但我非常怀疑某些会话被错误地跟踪为“scaredycut-direct”而不是他们的广告特定跟踪ID。

该网站大部分是单页。通过导航到另一个页面,用户实际上没有办法丢失网址标记。

有没有办法将会话错误地标记为“scaredycut-direct”,并绕过cookie和url标记方法?还有另一种方法吗?

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

添加的第三个选项是$_SERVER['HTTP_REFERER'],但它是由浏览器设置的,并不可靠。这也意味着,如果他们来自谷歌,它将被设置为谷歌。

除此之外,看起来没问题。