Google Analytics - Cross Device Tracking in Ruby on Rails

首先,先來看一下google 的說明

簡單來說,GA 在不同裝置瀏覽時,會依照每個裝置製作特別的ID, 但是,當user清掉Cookie或是重新安裝機器,就會把那個特別的ID重設,這樣他就會變成新訪客,而不是回流訪客。

當然,如果要跨Devise追蹤,既然是不同的Devise當然它的ID一定不一樣,所以一個使用者如果用電腦先在Urcosme網頁看一下等一下想要購買的商品,之後,他出發到康是美,要買產品之前拿出手機,再看一次商品確認,基本上他就會被列為兩個不同的來源

所以要跨Device追蹤,很重要的關鍵是:

那個特別的ID

然而,Universal(新版)的GA有提供修改 user id的功能!

Understanding Cross Device Measurement and the User-ID

那要怎麼加上user id 呢?

Step1. 第一步,打開User ID的功能

GA User ID

Step2. 改網站上的Code

GA User ID code

Step3. 設定View名稱!

恭喜你 就有新的View !

Step4. Rails 要怎麼加入 User ID呢?

如果你跟我一樣是使用Devise gem作為登入的lib,

Step 1. 在 app/views/layouts/application.html.slim 加上

= render 'shared/google_analytics', user_id: current_user.try(:id) 

ps. 若是使用 partial

= render :partial => "partials/google_analytics" , :locals => { user_id: current_user.try(:id)}

重點就是那user_id,如果不用try的話,若是current_user是nil,就會報錯!

Step 2. 編輯 app/views/shared/_google_analytics.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','//www.google-analytics.com/analytics.js','ga');

  <%- if user_id.present? %>
    ga('create', 'UA-XXXX-YYYY', {'userId': '<%= user_id %>'})
  <%- else %>
    ga('create', 'UA-XXXX-Y', 'urbox.cc');
  <% end %>
  ga('send', 'pageview');

</script>

那假設user沒有登入,你沒有辦法給他user id

Google 有推出(工作階段整合) Session Unification的功能,當你啟動了這個功能後,基本上有User ID的就會被放在一個群組,沒有User ID的就會在另外一個群組!

但是厲害的是,Google在同一個session內,若發現這個ID(隨機產生)被重新assign過(系統assign),他會把之前的action記錄給後來的ID

那套上User ID後,會有什麼差別呢?

  1. 你的指標(metrics)計算方式不同,但是更精確了!

  2. 你擁有了跨裝置的報告.

  3. Limited date range.

你的Data範圍是90天。

Comments

Google Analytics Alternative