Upgrade to Pro — share decks privately, control downloads, hide ads and more …

讓你的聊天機器人也能看 Google Analytics @ chatbot.tw 台中 2019/11

戴均民
November 06, 2019

讓你的聊天機器人也能看 Google Analytics @ chatbot.tw 台中 2019/11

戴均民

November 06, 2019
Tweet

More Decks by 戴均民

Other Decks in Programming

Transcript

  1. Who am I? Who am I? 戴均⺠ 戴均⺠ 現職 現職

    微程式資訊 微程式資訊 後端⼯程師 後端⼯程師   taichunmin taichunmin 2 2
  2. 9 9

  3. 後台展⽰ 後台展⽰ ⽬標對象 > 總覽 ⽬標對象 > 總覽 ⽬標對象 >

    使⽤者多層檢視 ⽬標對象 > 使⽤者多層檢視 ⾏為 > 畫⾯ ⾏為 > 畫⾯ ⾏為 > ⾏為流程 ⾏為 > ⾏為流程 14 14
  4. 匿名 Client ID (cid) 匿名 Client ID (cid) 這個欄位必須是⼀個 這個欄位必須是⼀個亂數

    UUID v4 亂數 UUID v4 如果在請求中未指定 如果在請求中未指定 uid uid 欄位,則 欄位,則 cid cid 就是必填欄位。 就是必填欄位。 cid cid 可以匿名識別⼀個特定的⽤⼾、裝置或瀏覽器。在 可以匿名識別⼀個特定的⽤⼾、裝置或瀏覽器。在 web 模式中,通常會把 web 模式中,通常會把 cid cid 存在有兩年有效期限的第⼀⽅ 存在有兩年有效期限的第⼀⽅ Cookie 中。在 app 模式中, Cookie 中。在 app 模式中,cid cid 應該要在安裝時隨機產 應該要在安裝時隨機產 ⽣。這個欄位必須是⼀個亂數 UUID v4。 ⽣。這個欄位必須是⼀個亂數 UUID v4。 24 24
  5. 實際送出的 screenview 實際送出的 screenview z= z=1572869089464 1572869089464 &aip= &aip=1 1

    &an=YouBike%20LINE%40 &an=YouBike%20LINE%40 &av= &av=0 0. .1.0 1.0 &cd=Nearby%20Station%3A%20Result &cd=Nearby%20Station%3A%20Result &cid= &cid=03 039423df- 9423df-7421 7421- -16 16d5-ee31- d5-ee31-878 878c9dfeb11b c9dfeb11b &de=UTF- &de=UTF-8 8 &ds=app &ds=app &t=screenview &t=screenview &tid=UA-XXXXX-Y &tid=UA-XXXXX-Y &uid=U039423df742116d5ee31878c9dfeb11b &uid=U039423df742116d5ee31878c9dfeb11b &ul=zh-tw &ul=zh-tw &v= &v=1 1 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 27 27
  6. 實際送出的 event 實際送出的 event z= z=1572869089467 1572869089467 &aip= &aip=1 1

    &an=YouBike%20LINE%40 &an=YouBike%20LINE%40 &av= &av=0 0. .1.0 1.0 &cid= &cid=03 039423df- 9423df-7421 7421- -16 16d5-ee31- d5-ee31-878 878c9dfeb11b c9dfeb11b &de=UTF- &de=UTF-8 8 &ds=app &ds=app &ea=Nearby%20Station%20Banner &ea=Nearby%20Station%20Banner &ec=Ad%20Impression &ec=Ad%20Impression &el=%E6%81%B0%E8%BF%B7%E9%80%A2%E7%94%B220191022%E5%88%B0 &el=%E6%81%B0%E8%BF%B7%E9%80%A2%E7%94%B220191022%E5%88%B0 &t=event &t=event &tid=UA-XXXXX-Y &tid=UA-XXXXX-Y &uid=U039423df742116d5ee31878c9dfeb11b &uid=U039423df742116d5ee31878c9dfeb11b &ul=zh-tw &ul=zh-tw &v= &v=1 1 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 15 30 30
  7. CAVEAT CAVEAT Event 必須在 Screenview 之後 Event 必須在 Screenview 之後

    否則這些 Event 會被忽略 否則這些 Event 會被忽略 31 31
  8. 驗證 hit 正確性 驗證 hit 正確性 hit 測試⼯具 hit 測試⼯具

    常⾒的 hit 範例 常⾒的 hit 範例 hit 參數參考文件 hit 參數參考文件 33 33
  9. ⽤量限制 (單位: hit) ⽤量限制 (單位: hit) 1000 萬 / ⽉

    / 追蹤 ID 1000 萬 / ⽉ / 追蹤 ID 20 萬 / 天 / ⽤⼾ 20 萬 / 天 / ⽤⼾ 500 / ⼯作階段 500 / ⼯作階段 34 34
  10. GA 批次發送限制 GA 批次發送限制 ⼀次最多 20 個 hits ⼀次最多 20

    個 hits POST body 不⼤於 16 KB POST body 不⼤於 16 KB 單⼀ hit 不⼤於 8 KB 單⼀ hit 不⼤於 8 KB 36 36
  11. 累積 20 個 hits 再⼀起送出去 累積 20 個 hits 再⼀起送出去

    是 是 否 否 有 hit 需要送出 有 hit 需要送出 將 hit 存到 Redis 中 將 hit 存到 Redis 中 取得 Redis 中的 hit 數量 取得 Redis 中的 hit 數量 hits >= 20 ? hits >= 20 ? 取出最多 20 個 hits 取出最多 20 個 hits 計算 qt 計算 qt 送出 hits 送出 hits 結束 結束 37 37
  12. 定期把放太久的 hits 送出去 定期把放太久的 hits 送出去 是 是 否 否

    每分鐘的 cron job 每分鐘的 cron job 取得 Redis 中的 hit 數量 取得 Redis 中的 hit 數量 hits >= 0 ? hits >= 0 ? 取出最多 20 個 hits 取出最多 20 個 hits 計算 qt 計算 qt 送出 hits 送出 hits 結束 結束 38 38
  13. Queue Time (qt) Queue Time (qt) 因為放在 Queue 中的 hit

    不會被⾺上送出 因為放在 Queue 中的 hit 不會被⾺上送出 所以需要告知 hit 被放在 queue 中放了多久 所以需要告知 hit 被放在 queue 中放了多久 39 39
  14. Batch API Batch API POST POST /batch /batch HTTP/1.1 HTTP/1.1

    Host Host: www.google-analytics.com : www.google-analytics.com z= z=1572869089464 1572869089464&aip= &aip=1 1&an=YouBike%20LINE%40&av= &an=YouBike%20LINE%40&av=0 0. .1.0 1.0&de=UT &de=UTF z= z=1572869089467 1572869089467&aip= &aip=1 1&an=YouBike%20LINE%40&av= &an=YouBike%20LINE%40&av=0 0. .1.0 1.0&de=UT &de=UTF 1 1 2 2 3 3 4 4 5 5 40 40