2014-03-05 27 views
1

我正在尋找能夠在Google跟蹤代碼管理器中觸發的Omniture「麻煩」代碼。該標籤應檢查Omniture s.code頁面是否觸發了綜合瀏覽量。如果沒有,請將事件發送到我們的Google Analytics帳戶。Omniture的s.code中有沒有一種方法可以查看pageview是否被觸發?

理想的情況下,它會是這樣的(僞代碼如下):

<script> 
window.onload=function(){if(OmniturePageViewHasFired == false){ 
ga('send','event','SCodeMissing','Page',window.location.href); 
}} 
</script> 

只是檢查看是否s.code是頁面上所有是一個更容易的任務,但不會像因爲代碼可能在頁面上而沒有被解僱。有任何想法嗎?另外請注意,我無法訪問s.code本身,所以我無法爲它設置一個變量,然後通過此腳本獲取它。

回答

1

這是我怎麼會做它的基礎上,如何Adobe的DigitalPulse Debugger查找它:

function OmniturePageViewHasFired() { 
    var i=document.images; 
    for (var c=0,l=i.length;c<l;c++) { 
    if ((i[c].src.indexOf('/b/ss/')>=0) 
     && (!i[c].src.match(/[&?]pe=/)) 
    ) return true; 
    } 
    for (var o in window) { 
    if ((o.substring(0,4)=='s_i_') 
     && (window[o].src) 
     && (window[o].src.indexOf('/b/ss/')>=0) 
     && (!window[o].src.match(/[&?]pe=/)) 
    ) return true; 
    } 
    return false; 
} 

//example: 
if (OmniturePageViewHasFired() == false){ 
    // no omn request detected 
} else { 
    // found at least 1 
} 

注1:如果頁面視圖s.t)請求這隻會返回true製作。點擊請求不會返回true(s.tl)。如果您希望任何請求返回true,則在2種情況下刪除最後的&&..

注2: Adob​​e正式認爲只要在src中尋找/b/ss/就足夠了。無可否認,在我所有的QA'ing Adob​​e Analytics(順便說一下,現在稱之爲Omniture)的年代裏,我只看到過一次或兩次的誤判。

如果您擔心,您可以通過評估您的實施的src的域來使條件更具體。這對於您的實現是獨一無二的,這就是爲什麼Adobe不尋找更具體的東西。只要看看你的網頁上的要求就可以了。

+0

這是瘋狂的弧度。我非常喜歡這種方法,因爲我們將像素請求包含在一個外部腳本文件中,所以搜索/ b/ss /可能不起作用,但我認爲腳本方法會。謝謝! – denverfone

+0

@denverfone要清楚,這不是搜索包含像'/ path/to/s_code.js'這樣的javascript。這是查找對Adobe服務器的實際像素請求。因此,無論什麼js文件或代碼所在的域名都無關緊要;這看起來實際的信標網址被解僱 –

0

您可以添加自己的代碼來跟蹤Omniture是否已經觸發。

有一個插件功能,Omniture用於在跟蹤事件上觸發插件和其他代碼。每次瀏覽或點擊事件時都會觸發此功能,或者觸發任何其他類型的Omniture事件。

您需要確保在其他地方不使用Omniture插件,如果是,您必須能夠更新該代碼。基本上,你可以不喜歡以下,只要您確保代碼加載並exectues(後)s_code.js文件加載及以下位執行:

var om_fired = false; 

s.usePlugins=true; 
function s_doPlugins(s) { 
    om_fired = true; 
} 
s.doPlugins=s_doPlugins; 
在你的谷歌代碼

然後,只需檢查查看om_fired是否爲真

另一種方法(在此添加它,因爲它太長了評論)。

在s.code加載之前,添加一些腳本來讀取由Omniture設置的cookie,我不記得確切的cookie名稱,但設置了多個cookie。讀取Cookie的代碼需要放在標題中,以便在頁面加載時(以及站點貓跟蹤代碼之前)以及頁面加載完成之前觸發。閱讀omniture cookie,並檢查值,有一個在那裏爲時間自上次命中,我相信cookie變量是類似s.tlh。將該值保存起來,然後在頁面加載後觸發另一次再次讀取cookie的調用,並檢查tlh值是否更改。如果它確實發生了跟蹤事件。如果沒有改變,那麼你的活動沒有開火。您的挑戰將是確保代碼以正確的順序觸發,例如1.讀取cookie/store值,2. Site Cat Fires,3.再次讀取cookie,並在#1中比較w/cookie。

+0

幾乎可以確定s_doPlugins已被使用。但即使不是,掛鉤它也不能保證實際提出了請求。 –

+0

確定不同的方法。在上面將它添加到原始答案中,因爲它在這裏太長了:) – Severun

+0

adobe分析代碼確實設置了一些cookie,但默認情況下它們都沒有記錄上次命中的時間戳。根據您的設置,您甚至可能根本無法讀取它們。現在,有很多插件和自定義代碼可以記錄您可能會看到的內容,但這是特定於實現的。而且,這也不能保證請求實際觸發。 –

相關問題