Rails:服务器端 Google 分析 'Direct' 源中的所有流量
Rails: Server side Google Analytics all trafic in 'Direct' source
我尝试了几个 gem 来使用服务器端 GA。
=>断音
=> 加巴
=> ...
但我总是遇到同样的问题,在 google 分析中,我所有事件的来源都在 "Direct"(直接流量)中,即使我使用 utm_source,.. .
我说过,每次我触发一个事件时,Google 分析都会创建一个新会话,源 "Direct"(以及美国的一个位置),我认为该事件归因于此session 而不是我的有效会话。
我的配置(使用 gem Gem Gabba https://github.com/hybridgroup/gabba):
查看application.html.erb
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-XXXXXXXX-1', 'auto');
ga('send', 'pageview');
</script>
模范用户
Gabba::Gabba.new("UA-XXXXXX-1", "mysite.com").event('User', 'Signup', 'Profile completed')
我怀疑这是配置问题还是使用服务器端 GA 时经常出现的问题?
谢谢@eike & @RaV,你帮我找到了解决办法。
我删除了 gabba
gem 并添加了 staccato
gem。
问题是一样的(staccato
默认生成一个新的 client_id
,这就是为什么我有一个副本),但我想出了如何解决它。
1.Just 从应用程序控制器的 google 分析 cookie 中保存 client_id
:
before_action :tacking_ga
def client_id
cookies["_ga"].split(".").last(2).join(".")
end
private
def tacking_ga
@tracker = Staccato.tracker('UA-XXXXXXXXX-1', client_id, ssl: true) if Rails.env == "production"
end
2.After 在我的控制器中(示例 user_controller
)我只需要在正确的位置添加我的事件:
@tracker.event(category: 'User', action: 'Signup', label: "Profile completed", value: nil)
谢谢你的帮助
我尝试了几个 gem 来使用服务器端 GA。
=>断音
=> 加巴
=> ...
但我总是遇到同样的问题,在 google 分析中,我所有事件的来源都在 "Direct"(直接流量)中,即使我使用 utm_source,.. .
我说过,每次我触发一个事件时,Google 分析都会创建一个新会话,源 "Direct"(以及美国的一个位置),我认为该事件归因于此session 而不是我的有效会话。
我的配置(使用 gem Gem Gabba https://github.com/hybridgroup/gabba):
查看application.html.erb
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-XXXXXXXX-1', 'auto');
ga('send', 'pageview');
</script>
模范用户
Gabba::Gabba.new("UA-XXXXXX-1", "mysite.com").event('User', 'Signup', 'Profile completed')
我怀疑这是配置问题还是使用服务器端 GA 时经常出现的问题?
谢谢@eike & @RaV,你帮我找到了解决办法。
我删除了 gabba
gem 并添加了 staccato
gem。
问题是一样的(staccato
默认生成一个新的 client_id
,这就是为什么我有一个副本),但我想出了如何解决它。
1.Just 从应用程序控制器的 google 分析 cookie 中保存 client_id
:
before_action :tacking_ga
def client_id
cookies["_ga"].split(".").last(2).join(".")
end
private
def tacking_ga
@tracker = Staccato.tracker('UA-XXXXXXXXX-1', client_id, ssl: true) if Rails.env == "production"
end
2.After 在我的控制器中(示例 user_controller
)我只需要在正确的位置添加我的事件:
@tracker.event(category: 'User', action: 'Signup', label: "Profile completed", value: nil)
谢谢你的帮助