先日、会社の人からこんなご相談がありました。
企画の人 「twitterアナリティクスのcsvをexcelで開いたら文字化けして読めないんですよ・・・」
ワイ 「なるほど?それ文字コードでは?」
企画の人 「文字コードって何?」
excelのメニューからデータ->テキストファイルでインポートウィザードが起動するので、そこで文字コードをUTF-8に設定すれば解決しそう1ではあるんですが、説明しても何度も同じこと聞かれそうだし、他の問題も起こりそうなので、googleAppsを使って解決しようって流れになりました。
作業フロー
- twitterアナリティクスからcsvをDLする(手作業)
- twitterのホームを開く -> 左上の自分のアイコンをクリック -> アナリティクス -> ツイート -> データエクスポート
- GoogleDriveにデータをアップロード
- SpreadSheetでGASを実行
twitterアナリティクスCSVの仕様
1行目に項目名が入っているのでそこを見ればだいたいわかります。
| 順番 | 項目名 |
|---|---|
| 1 | ツイートID |
| 2 | ツイートの固定リンク |
| 3 | ツイート本文 |
| 4 | 時間 |
| 5 | インプレッション |
| 6 | エンゲージメント |
| 7 | エンゲージメント率 |
| 8 | リツイート |
| 9 | 返信 |
| 10 | いいね |
| 11 | ユーザープロフィールクリック |
| 12 | URLクリック数 |
| 13 | ハッシュタグクリック |
| 14 | 詳細クリック |
| 15 | 固定リンクのクリック数 |
| 16 | アプリ表示 |
| 17 | アプリインストール |
| 18 | フォローしている |
| 19 | ツイートをメール送信 |
| 20 | ダイアル式電話 |
| 21 | メディアの再生数 |
| 22 | メディアのエンゲージメント |
| 23 | プロモのインプレッション |
| 24 | プロモのエンゲージメント |
| 25 | プロモのエンゲージメント率 |
| 26 | プロモのリツイート |
| 27 | プロモの返信 |
| 28 | プロモのいいね |
| 29 | プロモのユーザープロフィールクリック |
| 30 | プロモのURLクリック数 |
| 31 | プロモのハッシュタグクリック |
| 32 | プロモの詳細クリック |
| 33 | プロモの固定リンクのクリック数 |
| 34 | プロモのアプリ表示 |
| 35 | プロモのアプリインストール |
| 36 | プロモのフォローしている |
| 37 | プロモのツイートをメール送信 |
| 38 | プロモのダイアル式電話 |
| 39 | プロモのメディアの再生数 |
| 40 | プロモのメディアのエンゲージメント |
本文に改行が入った場合CSVも改行されます。また本文中の " は "" に変換されます。2
また、日時はISO8601のサブセットぽいですが、 new Date(csvの内容そのまま) ってやるとNaNなので - を / に変換が必要です。3
今回集計したい内容のみを抜き出しているので全ての項目を使ってるわけではありません。
コード
どういうことやってんの?
Googleドライブに入っているCSVファイルを読んでユーザー名を特定し、ユーザー名と同じ名前のシートにデータを書き込み、処理の終わったファイルは別のフォルダに移動しています。GASには Utilities.parsecsv(string) という便利なAPIがありますので最終的にはこのAPIが解釈してくれるようにtwitterアナリティクスのCSVから都合の悪い部分を取り除いて処理をしています。
SpreadSheetのデータインポートだとうまく解釈するくせに Utilities.parsecsv(string) だとぐちゃぐちゃになるのはなんだかなんだかなーって感じ4 です。twitter様におかれましては本文中の改行もエスケープしてください。お願いします。
-- 2019/08/28追記
色々運用してみたところ、本文に ^M が入ることがあることがわかりました。これもよしなに取り除く必要があります。(replace(/\r/g,'')して取り除きましょう)
これ使いたいんだけどー
- このスプレッドシートをコピー https://docs.google.com/spreadsheets/d/1EF99GP5uZ8xzAdQ8pJJgnTGIQUJNn8G7eSGv_wkZtr8/edit?usp=sharing
- このコードを上のシートのスクリプトエディターにコピー&ペースト https://gist.github.com/regtan/739935e938f00636f9b8570ebfe18131
- コピペしたコードの
sourceForlderIdとarchiveForlderId自分のフォルダIDに書き換え - twitterアナリティクスのデータを上で指定したフォルダに入れてマクロ実行
一回シートが作られると、同じユーザーのデータは同じシートに追記していきます。古い方向には追記しない。新しいものだけ追記していきます。
-
解決すると思ったんですが、本文中の改行の問題でうまくいかないと思う ↩
-
https://gist.github.com/regtan/739935e938f00636f9b8570ebfe18131#file-twitteranalytics-gas-L24 この辺でよしなにやってます。 ↩
-
https://gist.github.com/regtan/739935e938f00636f9b8570ebfe18131#file-twitteranalytics-gas-L51 この辺りでよしなにやってます。この形式なんていうんだっけ・・・ ↩