【Twitter分析 × Power BI】Twitterアナリティクスの週次レポートを作ってみた
目次
- はじめに
- データ準備① Twitterアナリティクスデータ
- データ準備② フォロワー数の取得
- データ読み込み
- データ変換
- 日付テーブル作成
- トップツイートの表示
- ツイート数、プロフィールアクセス数、平均インプレッション数、フォロワー数表示の推移
- 今週のツイート一覧
- 相対日付スライサーの追加
- おわりに
はじめに
会社で Twitter 運用についての活動報告を週次で行っているのですが、
報告資料を作るために、一週間分の Twitterアナリティクスのデータを取得 → Excel で集計 → Power Point にグラフを出力 という作業が毎週発生していました。
Power BI を使えば自動集計&自動更新が簡単そう、ということでレポートを作ってみます。
下図のように、
- 今週のトップツイート
- ツイート数、エンゲージメント数、平均インプレッション数、フォロワー数の推移
- 今週のツイート一覧
といった要素を可視化してみたいと思います。
データ準備① Twitterアナリティクスデータ
Twitter アナリティクスのデータを取得する方法は2つあります。
- Twitter アナリティクスから CSVファイルをエクスポートする方法
- Twitter Engagement API を使用する方法
※Twitterの法人プランの契約と API の利用申請が必要です。
詳細:Engagement API | Twitter API | Docs | Twitter Developer Platform
今回は1つ目の方法でデータを取得します。
(Twitter Engagement API の申請が間に合わなかったためです...)
Twitterアナリティクス にログインします。
「ツイート」タブをクリックし、エクスポートする期間を選択して、
「データをエクスポート」をクリックで指定した期間のデータを取得することができます。
※補足:取得できるデータは「By Tweet」と「By day」の2種類があります。
今回は〇月〇日~〇月〇日の約3か月分のデータを「By Tweet」と「By day」の両方エクスポートして SharePoint 上に配置しました。
データ準備② フォロワー数の取得
フォロワー数のデータは Twitterアナリティクスのデータに含まれていないので、別で取得する必要があります。
私は Power Automate の Twitter コネクタを使用して下図のようなフローを作成しました。
毎日フォロワー数を取得して SharePoint 上の Excel に記録することができます。
データ読み込み
取得したデータを Power BI で読み込みます。
Power BI Desktop で「データを取得」→「SharePoint フォルダー」を選択して
サイト URL を入力します。
「データ変換」をクリックして Power Query エディターを起動します。
データ変換
指定したサイトにある全てのファイルが表示されるので、まずは対象のフォルダのデータに絞ります。
今回は「マーケ指標可視化」というフォルダに対象のデータがあるので、
Folder Path 列でテキストフィルターを使用して「マーケ指標可視化」配下のファイルに絞ります。
「マーケ指標可視化」配下のファイルのみに絞りこむことができました。
次に、データの種類ごとに3つのクエリに分けていきます。
- Twitterアナリティクスデータ(ツイート別):Name が tweet から始まるファイル
- Twitterアナリティクスデータ(日付別):Name が daily から始まるファイル
- フォロワー数のデータ:Name が Twitter フォロワー数.xlsx
「管理」→「複製」でクエリの複製を2回行って、
それぞれのクエリに名前をつけます。
それぞれのクエリについて、以下のようにテキストフィルターを適用します。
次に、ファイルの結合を行います。
それぞれのクエリについて、Content 列横の「ファイルの結合」ボタンをクリックします。
結合後のテーブルを確認して、「OK」をクリックします。
不要なカラムを削除して、
必要に応じてカラム名の変更を行います。
ツイート別データの「時間」列にはツイートの投稿日時が入っていますが、
今回は時刻部分は使用しないので「変換」→「日付」→「日付のみ」で日付のみを抽出します。
Power Query エディターを閉じて適用します。
日付テーブル作成
「テーブルツール」→「新しいテーブル」から日付テーブルを作成します。
日付テーブル = VAR StartDate = "2021/12/1" VAR EndDate = MAX('日付別'[日付]) RETURN ADDCOLUMNS( CALENDAR(StartDate, EndDate), "年_num", YEAR ([Date]), "年", FORMAT ([Date], "YYYY年"), "月_num", MONTH ([Date]), "月", FORMAT ([Date], "M月"), "週_num", FORMAT(WEEKNUM([Date], 2) - WEEKNUM((EOMONTH([Date], -1) + 1), 2) + 1, "0"), "週", FORMAT(WEEKNUM([Date], 2) - WEEKNUM((EOMONTH([Date], -1) + 1), 2) + 1, "第0週") )
作成したテーブルを日付テーブルとしてマークします。
モデルビューで日付テーブルと他のテーブル間のリレーションシップを作成します。
ここまでできたらいよいよレポート作成に入ります。
トップツイートの表示
レポートビューに移動して、「カード」ビジュアルをキャンバスに追加し、「ツイート本文」をフィールドに追加します。
するとツイートが1件表示されますが、これは「あいうえお順」にしたときの先頭のツイートです。
今回はインプレッション数が一番多いツイートを表示したいので上位Nフィルターを使います。
インプレッション数を合計するメジャーを作成し、上位Nフィルターの「値」にドラッグして使用します。
インプレッション_ツイート別_sum = SUM('ツイート別'[インプレッション])
次にこのツイートのインプレッション数、エンゲージメント数、エンゲージメント率、プロフィールアクセス数、URLクリック数を表示したいと思います。
それぞれを合計するメジャーを作成します。
エンゲージメント_ツイート別_sum = SUM('ツイート別'[エンゲージメント])
エンゲージメント率_ツイート別_sum = SUM('ツイート別'[エンゲージメント率])
プロフアクセス数_ツイート別_sum = SUM('ツイート別'[プロフィールアクセス数])
URLクリック_ツイート別_sum = SUM('ツイート別'[URLクリック数])
キャンバスに「複数の行カード」ビジュアルを追加して、フィールドに作成したメジャーを追加します。
ここで表示される値は全ツイートの合計で、表示したいのはトップツイートのデータなので
先程と同じように上位Nフィルターを使用して以下のように設定します。
タイトルやフォントサイズ等を修正します。
ツイート数、プロフィールアクセス数、平均インプレッション数、フォロワー数表示の推移
以下の4つのメジャーを作ります。
ツイート数_sum = SUM('日付別'[ツイート数])
プロフィールアクセス数_sum = SUM('日付別'[プロフィールアクセス数])
インプレッション数_avg = DIVIDE( SUM('ツイート別'[インプレッション]), COUNTROWS('ツイート別') )
フォロワー数_max = MAX('フォロワー数'[フォロワー数])
キャンバスに「カード」ビジュアルを4つ追加して、
それぞれのフィールドに作成したメジャーを追加します。
次に、週ごとの推移を表示します。
キャンバスに「面グラフ」ビジュアルを4つ追加して、それぞれの x軸に「年」「月」「日」、Y軸に作成したメジャーを追加します。
今週のツイート一覧
キャンバスに「テーブル」ビジュアルを追加して、列に URL、ツイート本文、エンゲージメント数合計のメジャー等を追加します。
次に URL 列をクリックして該当ツイートのページに飛べるようにします。
URL 列を選択して、データのカテゴリを Web URL として設定します。
テーブルの書式設定で「URL アイコン」をオンにすると、下図のように URL をアイコンに置き換えて表示できます。
テキストの折り返しをオフにして、一度に表示できるツイート数を増やします。
相対日付スライサーの追加
キャンバスに「スライサー」ビジュアルを追加して、
フィールドに日付テーブルの「Date」列を設定します。
書式設定でスタイルを「相対日付」に変更します。
相対日付スライサーを「最近」「1」「週 (暦)」と設定すると、「最近1週間」のフィルターがレポート全体にかかります。
面グラフでは過去データからの変化をみたいので、スライサーからの影響を受けないように設定します。
スライサーを選択 →「書式」タブの「相互作用を編集」を選択 → 面グラフへの作用をオフにします。
(下図の③)
最後に、レポートに動的なタイトルを追加します。
「週次レポート / 〇年〇月〇日週」と表示できるように以下のメジャーを作成します。
タイトル = "週次レポート" & FORMAT(MIN('日付テーブル'[Date]), "yyyy年M月D日週")
カードビジュアルを追加して作成したメジャーをフィールドに設定して完成です。
おわりに
Power BI で作ったレポートは Power Point に埋め込んで使っていて、社内で共有しやすく便利です。
Twitter Engagement API も使えるように手配して、データ取得の作業も自動化できるようにしたいです。