2013-07-10 92 views
0

我有將用戶帶到網站的Facebook廣告。每個廣告都有一個不同的跟蹤ID: www.scaredycut.com/index.php?azn=TRACKING_ID「會話」跟蹤似乎中斷

一旦在網站上,跟蹤ID被插入到亞馬遜的鏈接(以便指示推薦銷售if有東西被買了)。如果用戶直接訪問網站(而不是通過廣告),他們會收到跟蹤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; 
?> 

然後,我只是在鏈接的href中插入$ trackingID。 (我優先考慮cookies,如果他們有cookies,我寧願做一個cookie以防他們離開後再回來。)

我的方法正在工作,對於大多數人來說(令我吃驚的是新手)。會話正在被正確地跟蹤,但是我有一個非常強烈的懷疑,認爲有些會話被錯誤地追蹤爲「scaredycut-direct」,而不是他們的廣告特定的跟蹤ID。

該網站大多數情況下是一個頁面。通過導航到另一個頁面,用戶沒有真正的方法來丟失url標記。

有沒有一種方法會話被錯誤地標記爲「scaredycut-direct」,並繞過cookie和url標記方法?有沒有另一種方法來做到這一點?

感謝這麼多的幫助。

+0

你可以用'$ trackingID = $ _COOKIE [...]或$ _GET ['azn']或'scaredycut-direct''基本上替換你的整個functions.php片段,並達到同樣的效果。但是這與解決它無關。 –

+0

很高興知道,謝謝。 –

回答

0

第三個選項添加$_SERVER['HTTP_REFERER'],但它是由瀏覽器的設置,是不可靠的。這也意味着,如果他們來自谷歌,它將被設置爲谷歌。

除此之外,它看起來沒問題。