fbpx
HOW TO TD(User Engagement)techblogアーカイブTreasure Data User Engagement

Login(アクセス)ログからわかる12の指標 その1

ホーム » Login(アクセス)ログからわかる12の指標 その1

この記事は最終更新から3年以上が経過しています。最新情報は担当のカスタマーサクセスにご確認ください。

本シリーズの主張は,例え単純な ”ログイン”(アクセス)の記録のみを取るだけでも,それにユーザーIDが付くことでトレジャーデータ上で遙かにリッチな示唆を得ることができる,ということです。もしユーザーを識別できるサービスをお持ちでこれから分析を始めたい企業様は,きちんとそれをloginログを残すことから始めましょう。本記事では「login(アクセス)ログ」というたった1種類のデータから得られる12の指標を紹介したいと思います。

定義

以下の項目で定義されるログを「loginログ」と定義し,かつ各ユーザーの登録時からこのログデータが取得できていることを前提とします。

 {
uid’: 123456,
‘time’: 138959673
}

さて,上記のloginログはユーザーIDとログイン時間のみが記録された非常にシンプルなログですが,これがサービス開始時より蓄積されているとすれば以下に紹介する分析は可能です。

0. データインポート

トレジャーデータへのフリーサインアップに関しては以下の記事を参照下さい。
実データで覚える Treasure Client コマンドラインリファンス 〜1.Data Import〜

また,login ログの100万レコードのサンプルデータを下記に置いてきます。
login.json.zip
解凍したファイルのトレジャーデータへのインポートは以下のコマンドを実行します。

$ td db:create demo
$ td table:create demo login
$ td table:import demo login –format json –time-key time login.json

1. PV

非常にベーシックな指標としてPV:アクセス数があります。loginログがトレジャークラウドにあるとすれば,PVを集計するためのHiveクエリは以下の様になります:

SELECT
  TD_TIME_FORMAT(time, ‘yyyy-MM-dd’, ‘JST’) AS d,
  COUNT(1) AS pv
FROM login
GROUP BY
  TD_TIME_FORMAT(time, ‘yyyy-MM-dd’, ‘JST’)
ORDER BY d ASC

2. アクティブユーザー数(UU)

アクティブユーザー(UU)数は,純粋なデイリーでのレコードカウントに対して,同ユーザーの同日のアクセスは全て1回とみなすことで集計が可能です。

SELECT
  TD_TIME_FORMAT(time, ‘yyyy-MM-dd’, ‘JST’) AS d,
  COUNT(DISTINCT(uid)) AS uu
FROM login
GROUP BY
  TD_TIME_FORMAT(time, ‘yyyy-MM-dd’, ‘JST’)
ORDER BY d ASC

3. 新規ユーザー数

全期間中で各ユーザーの最初のログイン(登録時)のみを集計することによってデイリーの新規ユーザー数を求めることができます。

SELECT
  TD_TIME_FORMAT(first_login_time, ‘yyyy-MM-dd’, ‘JST’) AS d,
  COUNT(1) AS new_user
FROM
(
  SELECT uid, MIN(time) AS first_login_time
  FROM login
  GROUP BY uid
) t1
GROUP BY
  TD_TIME_FORMAT(first_login_time, ‘yyyy-MM-dd’, ‘JST’)
ORDER BY d ASC

4. 1日当たりの平均アクセス回数

デイリーでユーザー当たりの1日の訪問回数を求めたものです。

SELECT
  TD_TIME_FORMAT(time, ‘yyyy-MM-dd’, ‘JST’) AS d,
  COUNT(1) / COUNT(DISTINCT(uid)) AS play_times
FROM login
GROUP BY
  TD_TIME_FORMAT(time, ‘yyyy-MM-dd’, ‘JST’)
ORDER BY d ASC

5. Recency

本日に対して各ユーザーの最終ログインが何日前なのかを求め,分布をみるものです。

SELECT uid, 
  CAST( TD_SCHEDULED_TIME()-MAX(time)) / (60*60*24) AS INT ) AS term_day
FROM login GROUP BY uid ORDER BY term_day ASC

Metric Insights

トレジャーデータでは上記の指標を一覧するためのダッシュボード:Metric InsightsをOEM提供しています。

Treasure Data Platform で始めるデータ分析入門 〜7. Data Visualization 〜 Metric Insights

UserEngagement事務局

ユーザーの皆さまへのお知らせや、Treasure Data UserEngagementのサイト運営を担当する事務局アカウント。
Back to top button