2017-02-15 90 views
0

我有一種情況,必須使用Google Analytics linkerParam手動修飾整個網站上的特定鏈接。在點擊前或點擊時更改鏈接? GA跨域跟蹤

這是爲了維護會話,將來自我的主站點的GA客戶端ID傳遞到我的電子商務網站。

通常這會通過自動鏈接器設置自動發生,但是在我的網站和電子商務網站之間有一個服務器端重定向頁面。

重定向頁面將傳遞GA客戶端ID,但從未給出機會,因爲它是我的域上的頁面而不是外部域。自動鏈接程序在這種情況下不起作用,這就是爲什麼我需要自己手動執行它。

我已經給出的解決方案基本上增加了一個javascript addEventListener到每個鏈接到重定向頁面。

該解決方案確實有效。

使用addEventListener爲人們實際點擊特定的鏈接,然後用linkerParam裝飾鏈接時更好嗎?

或者當頁面最初加載時簡單地修改每個鏈接會更好嗎?

感謝

+0

嘗試從目標站點上的ga對象獲取UserId。如果兩個站點都鏈接到自動鏈接,它應該與源站點上的相同 – MFGSparka

+0

我對目標站點沒有太多控制權。這就是爲什麼我在將人員發送到目標網站之前試圖修飾網址。 – Aaron

+0

哦,對不起。我錯過了自動鏈接不適合你的部分,你也找到了解決方案。 – MFGSparka

回答

2

在我的自定義鏈接器我裝修之後才已被點擊的鏈接。我的理由(您可能會或可能不會找到令人信服的)是:

  • 如果用戶將鼠標懸停在鏈接我不想讓他看到一個連接的客戶端ID
  • 因爲搜索引擎現在執行的JavaScript搞不好指數裝飾的鏈接
  • 我只能在頁面實際放在頁面上後才能修飾鏈接(但我可以附加一個回調函數到事後創建的鏈接),所以如果用戶在DOM準備好之前離開鏈接,則不會修飾
  • 在一個有很多鏈接裝飾的頁面上實際上需要一些時間和性能來實現我並不需要的東西(在al L I只需要裝飾點擊鏈接)

至於評論上述Ithans(在這裏我想他所指的DOM,而不是陰險聽起來「厄運」),由於用戶離開頁面在任何情況下點擊後該鏈接(您不會裝飾頁內鏈接),因此多個DOM操作不是問題。

+0

真的很棒。謝謝 – Aaron

0

你可以改變所有的鏈接時,頁面加載

var linksToChange = document.querySelectorAll('.theLinkClass'); 

    for (var item of linksToChange) { 
    item.href= "http://google.es"; 
    }; 
+0

我應該更清楚。我知道如何做到這一點。我想知道哪個更好?當有人在頁面加載時單擊(addEventListener)或修改href時? – Aaron

+0

對不起,最好的辦法是在頁面加載的時候修改每個鏈接,這樣你就不必每次修改厄運事件就叫它 – ithan