Google Analyatics 3 には、
この
どの
いざ、
この
前提
OS、
- OS
!sw_vers
ProductName: macOS ProductVersion: 11.6 BuildVersion: 20G165
- Python の
Version
!python3 -V
Python 3.7.2
必要な ライブラリの インストール
!pip3 install --upgrade pip !pip3 install pandas !pip3 install google2pandas !pip3 install oauth2client !pip3 install matplotlib
データの 戻り 形式を 確認してみる。
このブログの
Google Anlayticds V4 の
ページ読み 込み 時間を 取得して、 ヒストグラム表示する
ページ読み
GAのga:pageLoadTime
とga:pageLoadSample
、ga:avgPageLoadTime
を
戻り
ga:pageLoadTime
/ ga:pageLoadSample
= ga:avgPageLoadTime
ヒストグラムにga:avgPageLoadTime
を
Google Analyticsと
performance.timing.loadEventStart - performance.timing.navigationStart
。
from google2pandas import * view_id = '103185238' query = { 'reportRequests': [{ 'viewId' : view_id, 'dateRanges': [{ 'startDate' : '30daysAgo', 'endDate' : 'today'}], 'dimensions' : [ {'name' : 'ga:pagePath'} ], 'metrics' : [ {'expression' : 'ga:pageLoadTime'}, {'expression' : 'ga:pageLoadSample'}, {'expression' : 'ga:avgPageLoadTime'}, ], }] } conn = GoogleAnalyticsQueryV4(secrets='./ga_client.json') df = conn.execute_query(query) df['avgPageLoadTime'].astype(float).hist(bins=50)
<AxesSubplot:>
ページ読み 込み 時間を 取得して、 パフォーマンスが 悪い 上位10%の ページを 取得する
from google2pandas import * view_id = '103185238' query = { 'reportRequests': [{ 'viewId' : view_id, 'dateRanges': [{ 'startDate' : '30daysAgo', 'endDate' : 'today'}], 'dimensions' : [ {'name' : 'ga:pagePath'} ], 'metrics' : [ {'expression' : 'ga:pageLoadTime'}, {'expression' : 'ga:pageLoadSample'}, {'expression' : 'ga:avgPageLoadTime'}, ], }] } conn = GoogleAnalyticsQueryV4(secrets='./ga_client.json') df = conn.execute_query(query) df['avgPageLoadTime'] = df['avgPageLoadTime'].astype(float) df = df.sort_values(by='avgPageLoadTime', ascending=False) df[df['avgPageLoadTime']>=df['avgPageLoadTime'].quantile(0.9)]
pagePath | pageLoadTime | pageLoadSample | avgPageLoadTime | |
---|---|---|---|---|
23 | /blog/django-model-を作成したがmakemigrations-で-no-c... | 17126 | 1 | 17.126000 |
17 | /blog/Customize-Google-Form-and-set-hidden-field/ | 32875 | 3 | 10.958333 |
3 | /amp/blog/Python-implements-statistical-test-m... | 8010 | 1 | 8.010000 |
36 | /blog/jar-ファイル作成時にminify-maven-plugin-を使ってcssj... | 6586 | 1 | 6.586000 |
9 | /blog/About-JavaScript-keyboard-shortcut-library/ | 11806 | 2 | 5.903000 |
43 | /blog/pip-インストールする-ライブラリの-version-番号を調べる/ | 11417 | 2 | 5.708500 |
15 | /blog/Calculate-Weibull-distribution-in-Python/ | 22432 | 4 | 5.608000 |
pandas の
サンプリング数が
サーバーの 応答速度を 取得して ヒストグラムを 表示する
サーバーの
ga:serverResponseTime
、ga:avgServerResponseTime
、ga:speedMetricsSample
をga:avgServerResponseTime
を
from google2pandas import * view_id = '103185238' query = { 'reportRequests': [{ 'viewId' : view_id, 'dateRanges': [{ 'startDate' : '30daysAgo', 'endDate' : 'today'}], 'dimensions' : [ {'name' : 'ga:pagePath'} ], 'metrics' : [ {'expression' : 'ga:serverResponseTime'}, {'expression' : 'ga:speedMetricsSample'}, {'expression' : 'ga:avgServerResponseTime'}, ], }] } conn = GoogleAnalyticsQueryV4(secrets='./ga_client.json') df = conn.execute_query(query) df['avgServerResponseTime'].astype(float).hist(bins=50)
<AxesSubplot:>
サーバーの 応答時間を 取得して、 パフォーマンスが 悪い 上位10%の ページを 取得する
from google2pandas import * view_id = '103185238' query = { 'reportRequests': [{ 'viewId' : view_id, 'dateRanges': [{ 'startDate' : '30daysAgo', 'endDate' : 'today'}], 'dimensions' : [ {'name' : 'ga:pagePath'} ], 'metrics' : [ {'expression' : 'ga:serverResponseTime'}, {'expression' : 'ga:speedMetricsSample'}, {'expression' : 'ga:avgServerResponseTime'}, ], }] } conn = GoogleAnalyticsQueryV4(secrets='./ga_client.json') df = conn.execute_query(query) df['avgServerResponseTime'] = df['avgServerResponseTime'].astype(float) df = df.sort_values(by='avgServerResponseTime', ascending=False) df[df['avgServerResponseTime']>=df['avgServerResponseTime'].quantile(0.9)]
pagePath | serverResponseTime | speedMetricsSample | avgServerResponseTime | |
---|---|---|---|---|
7 | /blog/About-checklists-used-in-system-developm... | 819 | 1 | 0.819 |
2 | /amp/blog/java-url文字列からクエリストリングを取得/ | 816 | 1 | 0.816 |
39 | /blog/lighthouse-pwa-警告-の対処-する/ | 726 | 1 | 0.726 |
58 | /blog/spring-boot-でapplication-起動時にorgspringfr... | 700 | 1 | 0.700 |
4 | /amp/blog/pythonで相関係数の計算をする/ | 680 | 1 | 0.680 |
38 | /blog/jpa-query-selecting-only-specific-columns/ | 625 | 1 | 0.625 |
42 | /blog/monitorevents-で-input-タグの発生イベントを監視する/ | 1695 | 3 | 0.565 |
データを 見る 限り言えそうなこと
データを
- ページ読み
込み速度と、 サーバーの 応答速度だと、 速度分布の 傾向が 異なる。 - サーバーの
応答速度が 遅い ページが そのまま、 読み込み 速度が 遅い ページに なる 訳ではない。
参考
以下の
以上です。
コメント