背景
- 社内エンジニアメンバーで積極的にQiita記事を投稿していこうという取組を始めた。(品質向上&教育&認知拡大の狙い)
- 書くだけでなく、より多くの人に良い影響を与えられるかを狙いたいため、(もちろんそれ自体が目的ではないにせよ)イイネ数やフォロワー数をKPIとしてウォッチしたい。
- どうせなら楽しくやって盛り上がりたい。
アウトプット
出している指標
共通ルールとして、チームメンバー間のフォロワーやイイネはカウントしない。
イイネをもらった日時期間を絞ることができる。
フォロワー数
チーム全体で何人のフォロワーが居るか。
イイネユーザ数
チーム全体で指定期間に何人からイイネをもらったか。
イイネ総数
チーム全体で指定期間に何回イイネをもらったか。
メンバー別イイネ数ランキング
チームメンバごとに指定期間に何人からイイネをもらったか。
メンバー別フォロワー数ランキング
チームメンバごとに何人のフォロワーがいるか。
記事別ランキング
記事ごとに指定期間に何人からイイネをもらったか。
累積イイネ数
指定期間にもらったイイネ数の積み上げ範囲グラフ。メンバーで色分け。
累積記事数
投稿した記事数の積み上げ範囲グラフ。メンバーで色分け。
作り方
- APIを用いてイイネ情報取得
- チームメンバーユーザID毎に、API:itemsで記事一覧を収集
- その記事ごとにAPI:likesでイイネしてくれたユーザ情報を収集
- 「メンバーuserid / 記事ID / 記事作成日時 / 記事タイトル / 記事URL / イイネuserid / イイネ日時」 のファイルを作成
- APIを用いてフォロワー情報取得
- チームメンバーユーザID毎に、API:followersでフォロワー一覧を収集
- 「メンバーuserid / フォロワーuserid」 のファイルを作成
- 2つのファイルを用いてTableauで可視化
※イイネ情報はAPIで累積データ自体が取得できるが、フォロワー情報は断面情報になるので扱いが異なる。
※現状週1回API取得して作成。
諸注意等
- API発行時にヘッダにトークンを入れれば、API発行上限はユーザ毎に1000回/hとなる。記事ごとに発行が必要なのでこれは必須。(でないと、IP毎に60回/hとなり不足)
- そのうえで、急激に投げすぎないよう、1分間あたりの発行数を16回までに制御して取得。
- チームメンバーからのイイネを除外するために、likes_countは使わず、イイネユーザ一覧を取得してユーザ精査する。
今後改善するとしたら
- 記事一覧取得(API:items)は一度に100記事までなので、101記事以上投稿したメンバーが出てきたら要考慮。(その日が来ることを祈る)
- もっと記事数増えてきたら平均値や中央値を出しても。
- ファイルベースでTableauDesktopに渡すのではなく、DBを介してTableauServerに渡せば完全自動化が可能。
- 自動化すればフォロワー数などの断面情報も自前で蓄積することで時系列変化を追える。
- 記事のPV数は他ユーザのものは取得できないようなので、アクセスはGAで見ている。PV見れるようになったら統一したい。
- (Tableau見た目素敵化)
所感
- こんなことでもやってみるとけっこう盛り上がる。エンジニアという種族はゲーム感覚が好きなのだろう。
- イイネ自体が目的ではないものの、より「良い思ってもらえる記事を書こう」という意識醸成につながる。