先日、自分のTwitterアナリティクスアカウントについて詳しく調べてみました。
ただこの方法、自分でエクセルにデータを打ち込んでいたので滅茶苦茶効率が悪いんですよね。
というか、Twitterアナリティクスをよく見たら、データをエクスポートする機能が既にあるじゃないですか。これを利用すれば良いことに全然気づいていませんでした。
この「データをエクスポート」ボタンを押すと「tweet_activity_metrics.csv」というCSVファイルが作成されて、ダウンロード出来るようになります。で昨日、このファイルを分析できるコードをRubyで書いてみました。
photo by kazuma jp
目次
Twitterエンゲージメント率内訳分析コード
Twitterアナリティクスでは、インプレッション回数(ツイートが表示された回数)に対してエンゲージメント回数(アクションが起こされた回数)は表示され、エンゲージメント率も一覧で表示されます。
ただ、個々のアクションが、どれぐらいの割合で行われているかは、今のところ自分で計算するしかないです。
ツイートに対するアクションは現在、主なものだけでもこれだけあります。
- リツイート
- 返信
- お気に入り登録
- プロフィール表示
- URLクリック
- ハッシュタグクリック
- 詳細表示
- パーマリンククリック
- 埋め込みメディアクリック
- フォロー
- メールツイート
Twitterアナリティクスに表示されているエンゲージメント回数は、これらのアクション全てをひとまとめにしたものです。
エンゲージと言ったら、「結婚的なもの」とか「少女革命ウテナ」とかを連想してしまう僕にとって、ただざっくりと「エンゲージメント率」と表示されてもいまいちピンときません。僕の場合は、エンゲージメント率の中の「URLクリック率」とか「お気に入り登録率」とか「リツイート率」とかが知りたかったりします。
「エンゲージメントとか何を言っているのかわからない」という方は、以下で説明しています。
そこで、エクスポートデータを利用して、アカウント自体のエンゲージ内容(アクション内容)をそれぞれ表示できるコードを書いて、一発で分析できるようにしてみました。
これを使うと、手軽に自分のアカウント全体のエンゲージメント内容がどうなっているか見ることができます。
こんな感じで。
全有効ツイート数 : 59 インプレッション数 : 9518 エンゲージメント数 : 326(3.43%) リツイート数 : 11(0.12%) 返信数 : 11(0.12%) お気に入り登録数 : 28(0.29%) プロフィール表示数 : 27(0.28%) URLクリック数 : 159(1.67%) ハッシュタグクリック数: 0(0.00%) 詳細表示数 : 89(0.94%) パーマリンククリック数: 0(0.00%) 埋込メディアクリック数: 0(0.00%)
コードの内容はこんな感じです。
# encoding: utf-8 Encoding.default_external = 'UTF-8' require "csv" require 'date' csv = CSV.read('tweet_activity_metrics.csv') impression_count = 0 engagement_count = 0 retweet_count = 0 replie_count = 0 favorite_count = 0 user_profile_click_count = 0 url_click_count = 0 hashtag_click_count = 0 detail_expand_count = 0 permalink_click_count = 0 embedded_media_click_count = 0 app_open_count = 0 app_install_attempt_count = 0 follow_count = 0 email_tweet_count = 0 dial_phone_count = 0 tweet_count = 0 csv.each_with_index do |items, i| next if i == 0 tweet_count += 1 #インプレッション数が0で、データが計測される8月23日前は集計しない break if items[4].to_i == 0 && (Date.parse(items[3]) < Date.parse('2014-08-23')) impression_count += items[4].to_i engagement_count += items[5].to_i retweet_count += items[7].to_i replie_count += items[8].to_i favorite_count += items[9].to_i user_profile_click_count += items[10].to_i url_click_count += items[11].to_i hashtag_click_count += items[12].to_i detail_expand_count += items[13].to_i permalink_click_count += items[14].to_i embedded_media_click_count += items[15].to_i app_open_count += items[16].to_i app_install_attempt_count += items[17].to_i follow_count += items[18].to_i email_tweet_count += items[20].to_i dial_phone_count += items[21].to_i end puts puts '全有効ツイート数 :' + tweet_count.to_s.rjust(7) puts 'インプレッション数 :' + impression_count.to_s.rjust(7) puts 'エンゲージメント数 :' + engagement_count.to_s.rjust(7) + "(#{sprintf('%.2f', (engagement_count.to_f/impression_count.to_f*100))}%)" puts 'リツイート数 :' + retweet_count.to_s.rjust(7) + "(#{sprintf('%.2f', (retweet_count.to_f/impression_count.to_f*100))}%)" puts '返信数 :' + replie_count.to_s.rjust(7) + "(#{sprintf('%.2f', (replie_count.to_f/impression_count.to_f*100))}%)" puts 'お気に入り登録数 :' + favorite_count.to_s.rjust(7) + "(#{sprintf('%.2f', (favorite_count.to_f/impression_count.to_f*100))}%)" puts 'プロフィール表示数 :' + user_profile_click_count.to_s.rjust(7) + "(#{sprintf('%.2f', (user_profile_click_count.to_f/impression_count.to_f*100))}%)" puts 'URLクリック数 :' + url_click_count.to_s.rjust(7) + "(#{sprintf('%.2f', (url_click_count.to_f/impression_count.to_f*100))}%)" puts 'ハッシュタグクリック数:' + hashtag_click_count.to_s.rjust(7) + "(#{sprintf('%.2f', (hashtag_click_count.to_f/impression_count.to_f*100))}%)" puts '詳細表示数 :' + detail_expand_count.to_s.rjust(7) + "(#{sprintf('%.2f', (detail_expand_count.to_f/impression_count.to_f*100))}%)" puts 'パーマリンククリック数:' + permalink_click_count.to_s.rjust(7) + "(#{sprintf('%.2f', (permalink_click_count.to_f/impression_count.to_f*100))}%)" puts '埋込メディアクリック数:' + embedded_media_click_count.to_s.rjust(7) + "(#{sprintf('%.2f', (embedded_media_click_count.to_f/impression_count.to_f*100))}%)" puts 'アプリオープン数 :' + app_open_count.to_s.rjust(7) + "(#{sprintf('%.2f', (app_open_count.to_f/impression_count.to_f*100))}%)" puts 'アプリインストール数 :' + app_install_attempt_count.to_s.rjust(7) + "(#{sprintf('%.2f', (app_install_attempt_count.to_f/impression_count.to_f*100))}%)" puts 'フォローした数 :' + follow_count.to_s.rjust(7) + "(#{sprintf('%.2f', (follow_count.to_f/impression_count.to_f*100))}%)" puts 'メールツイート数 :' + email_tweet_count.to_s.rjust(7) + "(#{sprintf('%.2f', (email_tweet_count.to_f/impression_count.to_f*100))}%)" puts 'ダイアル数 :' + dial_phone_count.to_s.rjust(7) + "(#{sprintf('%.2f', (dial_phone_count.to_f/impression_count.to_f*100))}%)"
Twitterエンゲージメント率内訳分析コードの使い方
このコードの使い方は以下です。
[wpdm_file id=3]
- ↑からコードのダウンロード
- TwitterアナリティクスからCSVファイルをダウンロードして同じフォルダに入れる
- Rubyのインストール(Windowsの場合のみ)
- コードの実行
手順はこれだけです。とは言ってもWindows環境の場合、Rubyのインストールがちょっと面倒ですけど。Macの場合は、デフォルトでRubyが入っていてパスが通っているので手軽に使えるかと思います。(※Mac環境は持っていないので試してはいません。Ruby1.9.3、2.1.2では使用できましたけど、Macデフォルトの1.8.7で使えるかは未確認。)
分析コードのダウンロード
[wpdm_file id=3]
ダウンロードから、ファイルをダウンロードして解凍してください。
TwitterアナリティクスからCSVファイルをダウンロード
Twitterアナリティクスにログインして、「データをエクスポート」ボタンを押して「tweet_activity_metrics.csv」ファイルをダウンロードしてください。
この、「tweet_activity_metrics.csv」ファイルの名前をそのままで、先程解凍したフォルダにコピーしてください。
こんな感じになります。
デフォルトで入っている「tweet_activity_metrics.csv」ファイルは、デモ用のものです。
Rubyのインストール
Windowsの場合は、デフォルトで入っていないので、Rubyをインストールする必要があります。
ActiveScriptRuby and Other packagesから「Ruby-2.x.x-pxxx Microsoft Installer Package」みたいなのをダウンロードしてインストールします。
コードの実行
Macの場合だと、多分ターミナルに「twitter_analitics.rb」を呼び出すだけでOKなんだろうけれども、Windowsの場合ちょっと手間がかかります。
コマンドプロンプトの起動
まずは、コマンドプロンプトを起動します。
ディレクトリの移動
これに以下のように打ち込んでディレクトリを移動します。
cd C:\twitter_engage
「C:\twitter_engage」の部分は、解凍したフォルダのパスを入力してください。(※ドラッグ&ドロップでフォルダパスの入力可能)
Rubyコードの実行
で、Rubyの実行ファイルパスとスペースとRubyスクリプトのパスを以下のように入力します。(※これもファイルをドラッグ&ドロップでファイルパスの入力が可能)
"C:\Program Files (x86)\Ruby-2.1\bin\ruby.exe" C:\twitter_engage\twitter_analitics.rb
ruby.exeのパスとtwitter_analitics.rbのパスは、それぞれの環境に合わせてください。(本来は、Rubyにパスを通してやるべきなんでしょうけど、説明が長くなるので省略)
実行結果
あとは、エンターを押せば結果が表示されます。
<pre></pre>タグで囲んでコピペすれば、おそらくブログでも表示崩れなく以下のように結果を掲載することができるかと思います。
全有効ツイート数 : 59 インプレッション数 : 9518 エンゲージメント数 : 326(3.43%) リツイート数 : 11(0.12%) 返信数 : 11(0.12%) お気に入り登録数 : 28(0.29%) プロフィール表示数 : 27(0.28%) URLクリック数 : 159(1.67%) ハッシュタグクリック数: 0(0.00%) 詳細表示数 : 89(0.94%) パーマリンククリック数: 0(0.00%) 埋込メディアクリック数: 0(0.00%) アプリオープン数 : 0(0.00%) アプリインストール数 : 0(0.00%) フォローした数 : 0(0.00%) メールツイート数 : 0(0.00%) ダイアル数 : 0(0.00%)
僕のアカウント@MrYhiraの場合、「全体のエンゲージメント率」は3.4%、その中で「URLのクリック率」が1.67%、次いで「詳細表示率」が0.94%ユーザーによってアクションが起こされていると分かります。
まとめ
今回作成したコードは、Twitterアナリティクスアカウント全体のエンゲージメント率の内訳(それぞれのアクション率)だけを表示するものです。
個々のツイートの内訳を表示するには、Rubyコードをちょこっと編集する必要があります。
ただ、アカウント全体の分析結果だけでも、結果を見てみると結構楽しいです。「ああ、僕のアカウントって、こういった利用状況なんだ」みたいのが何となくわかります。
今回の方法は、Windowsで行うにはちょこっと面倒ですが、説明通りに行えば10分もかからずできると思います。ですので、ブログのネタに困ったときなどは、こういった公式では表示されないデータを肴に、1つ記事を書くというのもいいかもしれません。