Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Google Analytics でサイト速度を計測する / Measure site spe...
Search
forrep
May 26, 2024
Programming
430
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Google Analytics でサイト速度を計測する / Measure site speed with Google Analytics
forrep
May 26, 2024
More Decks by forrep
See All by forrep
サービスに組み込むAIのパターン/アンチパターン
forrep
0
120
Linux && Docker 研修/Linux && Docker training
forrep
28
5.8k
RAGにベクトルDBは必要ない!DBも不要で運用めちゃ楽な RAG Chatbot を作った話
forrep
38
18k
最近コードレビューで指摘したこと
forrep
4
620
「プログラマーのためのCPU入門」は入り口として丁度よい!
forrep
54
38k
DevTools でパフォーマンスチューニング入門 / Introduction to Performance Tuning with DevTools
forrep
2
530
技術的負債に対する視力を得る / How to View Technical Debt
forrep
0
930
しくじり先生 - NFS+sqliteで苦労した話から学ぶ、問題解決の考え方 / problem-solving approach
forrep
1
1.4k
理屈で考える、データベースのチューニング / Database tuning How-To
forrep
28
9.7k
Other Decks in Programming
See All in Programming
運用エージェントは "作る" から "育てる" へ - 記憶と自己進化の3層設計パターン / self-evolving-agents-three-layer-agent-design
gawa
12
3.5k
Spec-Driven Development with AI-Agents: From High-Level Requirements to Working Software
antonarhipov
2
470
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
370
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
250
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
110
TSKaigi Night Talks 2026_TypeScriptでサプライチェーンの整合性を型に閉じ込める
geekplus_tech
0
320
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
230
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
230
Webフレームワークの ベンチマークについて
yusukebe
0
150
net-httpのHTTP/2対応について
naruse
0
450
These Five Tricks Can Make Your Apps Greener, Cheaper, & Nicer
hollycummins
0
280
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
190
Featured
See All Featured
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
320
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
600
Paper Plane (Part 1)
katiecoart
PRO
0
8.7k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
360
Java REST API Framework Comparison - PWX 2021
mraible
34
9.3k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.9k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
180
Un-Boring Meetings
codingconduct
0
310
The Pragmatic Product Professional
lauravandoore
37
7.3k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
Transcript
Google Analytics で サイト速度を計測する 無料でフロントエンドのパフォーマンス計測 1 株式会社ラクーンホールディングス 技術戦略部 羽山純
自己紹介 • 名前 ◦ 羽山 純(Jun Hayama) ◦ @forrep •
所属 ◦ 株式会社ラクーンホールディングス 技術戦略部 • 技術領域 ◦ バックエンド・インフラ ◦ パフォーマンス改善 ◦ AI(企業審査AI) • 個人活動 ◦ アプリ開発 2
アジェンダ 3 Webサイトの表示速度を 分析したいなぁ・・・無料で
Navigation Timing API とは (注) Navigation Timing Level 2 は現時点では
Working Draft のため、 従来の Navigation Timing API を利用しています Navigation Timing API はナビゲーション開始や各イベント発生 のタイムスタンプをミリ秒単位で取得できます 4 Zhiheng Wang.(2012-12-17).“Navigation Timing W3C Recommendation 17 December 2012”. W3C.https://www.w3.org/TR/navigation-timing/
タイムスタンプを引き算して利用 5 Zhiheng Wang.(2012-12-17).“Navigation Timing W3C Recommendation 17 December 2012”.
W3C.https://www.w3.org/TR/navigation-timing/ 読み込み時間 = loadEventStart - navigationStart 読み込み時間
代表的な指標 6 取得できる指標が多すぎても迷うので 古い Analytics(ユニバーサルアナリティクス)の「サイト速度」に 利用されていた指標を参考にします 指標 求め方 読み込み時間 loadEventStart
- navigationStart ドキュメントコンテンツ読み込み時間 domContentLoadedEventStart - navigationStart ドキュメントインタラクティブ時間 domInteractive - navigationStart リダイレクト時間 fetchStart - navigationStart ドメインのルックアップ時間 domainLookupEnd - domainLookupStart サーバーの接続時間 connectEnd - connectStart サーバーの応答時間 responseStart - requestStart ページのダウンロード時間 responseEnd - responseStart
データの蓄積先は?分析方法は? 7 Navigation Timing API で取得する指標 は決まったけど、どこに蓄積して分析 すればいいんだろう・・・?
Google Analytics に蓄積して分析する 8 • Google Analytics はデータ蓄積と分析UIがある無料ツール • タグマネージャで簡単に設定できる
• BigQuery にエクスポートしてSQLで分析が可能(有料) 任意のデータを蓄積できる 入れたデータを分析できる タグマネージャで簡単に設定できる BigQuery にエクスポートできる
どうやって設定すればいいの・・・? 9 Tag Manager と Google Analytics の 設定方法が分からない・・・
設定方法 LTでは時間の関係で駆け足で説明するので 詳しい設定方法は以下のブログ記事に参照してください [GA4] Google Analytics 4 でサイト速度を計測する方法 10 https://techblog.raccoon.ne.jp/archives/1649120272.html
タグマネージャ・Analytics(GA4)の設定 11 この部分を設定します
カスタムHTMLの作成 12
カスタムHTMLの作成 13
カスタムHTMLの作成 14 <script> (function() { var y = function(c) {
return (isNaN(c) || Infinity == c || 0 > c || 300000 < c) ? 0 : c }; var t, d; if ( (t = window.performance && window.performance.timing) && (d = window.dataLayer) && y(t.loadEventStart - t.navigationStart) > 0 ) { d.push({ 'timing_navigation_start': t.navigationStart, 'timing_page_load': y(t.loadEventStart - t.navigationStart), 'timing_domain_lookup': y(t.domainLookupEnd - t.domainLookupStart), 'timing_server_connection': y(t.connectEnd - t.connectStart), 'timing_server_response': y(t.responseStart - t.requestStart), 'timing_page_download': y(t.responseEnd - t.responseStart), 'timing_redirection': y(t.fetchStart - t.navigationStart), 'timing_document_interactive': y(t.domInteractive - t.navigationStart), 'timing_document_content_loaded': y(t.domContentLoadedEventStart - t.navigationStart), 'event': 'timing' }); } })(); </script> Navigation Timing API で各指標の 値を計算しつつ、データレイヤー 変数にそれぞれセット 最後に timing イベントを発火
データレイヤーの変数を追加 15
データレイヤーの変数を追加 16 以下の変数を追加します • timing_navigation_start • timing_page_load • timing_domain_lookup •
timing_server_connection • timing_server_response • timing_page_download • timing_redirection • timing_document_interactive • timing_document_content_loaded
カスタムイベントを作成 17
カスタムイベントを作成 18 さきほどの timing イベントを受け取るカスタムイベントを作成し ます
Analytics への記録用タグを作成 19
Analytics への記録用タグを作成 20 Analytics のイベントパラメータで timing_page_load などを送信 timing イベントトリガーで起動 timing_speed_metrics_sample
に 1 を送信
Analytics の設定 21
Analytics の設定 22 timing_navigation_start(ナビゲーション開始タイムスタンプ) をカスタムディメンションとして追加します Analytics で分析するレコードをできるだけ 1 アクセスに 分離するために利用します
Analytics の設定 それ以外の値をカスタム指標として追加します timing_speed_metrics_sample は測定単位を「標準」、 それ以外は「ミリ秒」とします 23
分析する 24 実際の分析方法は・・・・?
25 読み込み速度 サンプル数を 1 とする TOPページで絞り込み 開始タイムスタンプはほぼユニーク なので、ディメンションが分離する Analytics の「探索」画面
データをダウンロードしてExcelで分析 すればサイト速度を把握できます
もっと便利で高度な分析 26 もっと便利な方法はない?
• 無料で使える Looker Studio(旧 Google データポータル)を Google Analytics と連携して使うと便利です •
私たちは Analytics → BigQuery → Snowflake と 3段階のデータ転送をしています もっと便利で高度な分析 27 Snowflakeでの分析例
28 みなさまご清聴ありがとうございました!