2017-05-30 37 views
3

關於Ruby on Rails 4.2.5 + Devise 3.4.1應用程序。當Devise重定向到請求密碼時維護UTM代碼

我們應用程序的一些營銷需要UTM代碼。有時,營銷鏈接指向需要登錄才能查看的資源。問題在於,當設計重定向到登錄屏幕時,UTM代碼將被刪除,Google Analytics會將潛在客戶視爲內部鏈接,而不是正確記錄UTM信息。

有沒有簡單的方法可以解決這個問題?如果不是,那麼需要做什麼的正確方向的指示將會很棒。

+0

但登錄後,它是否不重定向到UTM代碼正確的鏈接頁面? –

+0

沒有。 UTM代碼被剝離。 –

+0

如果沒有monkeypatching devise內幕,這可能是不可能的。但絕望的時刻需要絕望的措施:)當我有一點空閒時間時,我會嘗試一些東西。 –

回答

2

在它的默認配置,設計不應該登錄成功後重定向時剝離出的任何參數。原始URL存儲在授權失敗時,然後存儲的URL在登錄成功後逐字地用作重定向位置。

所以:

# /path?utm_campaign=test 
# => redirects to /user/login on auth challenge 
# => redirects back to /path?utm_campaign=test on login 

你的任何機會重寫after_sign_in_path_for?如果是這樣,那麼值得看看original code,並確保您保留 - 這會影響上述行爲。

+0

有一些行爲不當的代碼,果然。謝謝您的幫助。 –

0

一個想法是通過營銷頁面上的ajax呈現登錄表單,而不是重定向到登錄頁面,讓登錄頁面找到你。

def marketing_landing_page 
    unless user_signed_signed_in? 
    render :new 
end 
end 

:新中色器件/會話/新