これはなに?
Instagramの簡易分析環境をPythonとGoogle スプレッドシート使ってみました。Instagramのインサイトって日ごとの細かいフォロワー数の変化や30日以上過去のデータが見れないので、GoogleSpreadsheetを簡易DB&BIツールとして利用して日ごとの変化や30日以上データを参照できるようにしてみました。
以前投稿した以下の記事の応用のような感じです。
www.cloudnotes.tech
環境
コード実行環境 : AWS
- Lambda(pytho3)
- CloudwatchEvents
可視化: Google Spread sheet
- 利用API
- Instagram Graph API
- Google Sheets API
機能概要
特定のインスタグラムの以下の情報を1日一回取得し、GoogleSpreadsheetに書き込み、可視化する。
- フォロワー数(followers_count)
- フォロー数(follows_count)
- 投稿数(media_count)
取得したデータを可視化したイメージは以下です。 フォロワー数の推移を可視化してみました。
可視化自体はスプレットシートの機能で実施しているので、表現の仕方は自分の分析したい内容によって自由に変更することができます。
構成概要
構成としてはシンプルでCloudwatchRulesを利用してLambdaを定期実行して、インスタの特定のユーザー情報を取得し、その結果をGoogleSpreadsheetに書き込んでいます。
ユーザー情報を取得する際に利用しているのは、Instagram Graph APIで、スプレッドシートへの書き込みはGoogle Sheets API を利用しています。
スプレットシートの書き込んでいるイメージ画像は以下のような感じです。 date以外の項目はInstagram Graph APIで取得した内容をそのまま書き込んでいます。dateはLambdaが実行した日時です。
実行コード(Lambda)
ご参考までにLambda上で実行しているコードと処理概要を載せておきます。スプレットシート関連で事前にトークン取得しないといけなかったりするので、必要に応じて以下の記事を参照してください。
Google Spread Sheets に Pythonを用いてアクセスしてみた - Qiita
処理概要
- 各API実行のためのパラメータ入力
- Instagram API / 分析対象のInstagramユーザー名
- Google Sheets API (トークンはLambdaの環境変数に入れてます)
- GoogleSpreadsheet情報取得
- 分析対象のInstagramユーザーのフォロー数、フォロワー数、投稿数を取得
- コードを実行した日付を取得 YYYYMMDD
- 同日にユーザー情報すでに書き込みしていないかチェック。
- 書き込み済み: スプレットシートに書き込まずコードを終了する
- 未書き込み : 3. 4.で取得した情報をスプレットシートに書き込む
ソースコード
gist5c9a157394294fcfc74fa8e774104fb6
最後に
この分析環境の費用ですが、スプレッドシートは無料ですし、Lambdaも毎日数十秒起動するだけなのでほぼ無料で運用できています。インスタを分析する外部サービスはいくつかありますが、外部サービスを使うのに不安がある方は本ブログのような構成で自前で分析環境つくってみるといいかもしれません!