2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GASでtwitterアナリティクスのcsvをパースする

Last updated at Posted at 2019-06-18

先日、会社の人からこんなご相談がありました。

企画の人 「twitterアナリティクスのcsvをexcelで開いたら文字化けして読めないんですよ・・・」
ワイ 「なるほど?それ文字コードでは?」
企画の人 「文字コードって何?」

excelのメニューからデータ->テキストファイルでインポートウィザードが起動するので、そこで文字コードをUTF-8に設定すれば解決しそう1ではあるんですが、説明しても何度も同じこと聞かれそうだし、他の問題も起こりそうなので、googleAppsを使って解決しようって流れになりました。

作業フロー

  1. twitterアナリティクスからcsvをDLする(手作業)
    • twitterのホームを開く -> 左上の自分のアイコンをクリック -> アナリティクス -> ツイート -> データエクスポート
  2. GoogleDriveにデータをアップロード
  3. 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,'')して取り除きましょう)

これ使いたいんだけどー

  1. このスプレッドシートをコピー https://docs.google.com/spreadsheets/d/1EF99GP5uZ8xzAdQ8pJJgnTGIQUJNn8G7eSGv_wkZtr8/edit?usp=sharing
  2. このコードを上のシートのスクリプトエディターにコピー&ペースト https://gist.github.com/regtan/739935e938f00636f9b8570ebfe18131
  3. コピペしたコードの sourceForlderIdarchiveForlderId 自分のフォルダIDに書き換え
  4. twitterアナリティクスのデータを上で指定したフォルダに入れてマクロ実行

一回シートが作られると、同じユーザーのデータは同じシートに追記していきます。古い方向には追記しない。新しいものだけ追記していきます。

  1. 解決すると思ったんですが、本文中の改行の問題でうまくいかないと思う

  2. https://gist.github.com/regtan/739935e938f00636f9b8570ebfe18131#file-twitteranalytics-gas-L24 この辺でよしなにやってます。

  3. https://gist.github.com/regtan/739935e938f00636f9b8570ebfe18131#file-twitteranalytics-gas-L51 この辺りでよしなにやってます。この形式なんていうんだっけ・・・

  4. https://saenai-movie.com/ 秋公開

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?