1155 文字
6 分

InstagramのCSVを使ってスプレッドシートに自動記録する方法

目次
  1. はじめに:この記事でできること
  2. Step1:前提準備
  3. Step2:Meta Business SuiteからCSVを出力
  4. Step3:CSVを格納するGoogleドライブのフォルダを用意
  5. Step4:GASスクリプトの設定
  6. Step5:トリガーの設定(自動実行)
  7. 活用例:投稿ログの見える化

Instagramの投稿履歴をスプレッドシートで管理したい!
そんな方に向けて、Zapierを使わず、Google Apps Script(GAS)だけで自動記録する方法をご紹介します。

Meta Business SuiteからCSVをエクスポートして、Googleドライブの指定フォルダにアップするだけで、スプレッドシートに自動で追記される仕組みが完成します🌿


はじめに:この記事でできること#

  • Instagramの投稿履歴をCSVでダウンロード
  • Googleドライブに保存すると、自動でスプレッドシートに記録
  • タイトル、公開日、URL、投稿タイプなどの情報を整理

最初はZapierを使って自動化できないかを試したんですが、Instagramの仕様上、Facebookページをつくって、そこにもインスタグラム投稿を連携しない限り自動記録ができなかったので、断念。
代案として、CSVをアップロードして連携することにしました。

Step1:前提準備#

まずは、以下の準備をしておきましょう。

必要なもの:

  • Instagramのビジネスアカウント
  • Meta Business Suiteで出力したCSV(Instagramのビジネスアカウントがあれば無料で使うことができます)
  • Googleスプレッドシート(投稿ログ用)

スプレッドシートの構成例:

ID媒体投稿タイプタイトル公開日URL

Step2:Meta Business SuiteからCSVを出力#

Meta Business SuiteからCSVを出力します

csvファイルの列はこのようになっています

投稿IDアカウントIDアカウントユーザーネームアカウント名説明時間(秒)公開時間リンク投稿タイプ

補足:CSVの内容とスプレッドシートの対応#

CSVから取り出す項目は次のようになっています。

スプレッドシートの項目InstagramのCSV
投稿タイプ「投稿タイプ」(例:ストーリー、リールなど)
タイトル「説明」
公開日「公開時間」 例:07/07/2025 06<57>
URLリンク

スプレッドシートの列と対応させることで、きれいに記録されます。

Step3:CSVを格納するGoogleドライブのフォルダを用意#

Meta Business SuiteでダウンロードしたCSVファイルを入れる専用フォルダを作成します。
このフォルダのIDをコピーしておきましょう(URLの「folders/」のあとがIDです)。

Step4:GASスクリプトの設定#

次に、Apps Scriptで以下のコードを貼り付けて保存します。

拡張機能>Apps Scriptを選ぶとコードの入力画面がひらきます。

下記2点を修正の上、コードにコピーしてください。

  • folderID : CSVフォルダのID(URLの「folders/」のあとがIDです)
  • sheetに設定するシート名(見本では投稿一覧)
function importLatestInstagramCSV() {
const folderId = 'XXXX'; // DriveのCSV用フォルダ
const folder = DriveApp.getFolderById(folderId);
const files = folder.getFilesByType(MimeType.CSV);
let latestFile = null;
let latestDate = 0;
while (files.hasNext()) {
const file = files.next();
const updatedTime = file.getLastUpdated().getTime();
if (updatedTime > latestDate) {
latestDate = updatedTime;
latestFile = file;
}
}
if (!latestFile) {
Logger.log('CSVファイルが見つかりません');
return;
}
const prop = PropertiesService.getScriptProperties();
const lastProcessed = Number(prop.getProperty('LAST_CSV_UPDATE')) || 0;
if (latestDate <= lastProcessed) {
Logger.log('すでに処理済みのCSVです。スキップします。');
return;
}
// --- CSV処理開始 ---
const csvData = Utilities.parseCsv(latestFile.getBlob().getDataAsString());
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('投稿一覧'); // シートを指定
const existingUrls = sheet.getRange(2, 6, sheet.getLastRow() - 1).getValues().flat(); // URL列(F)
let currentRow = sheet.getLastRow();
for (let i = 1; i < csvData.length; i++) {
const row = csvData[i];
const description = row[4]; // 説明
const postType = row[8]; // 投稿タイプ
const publishedAt = row[6]; // 公開時間
const url = row[7]; // リンク
if (!url || existingUrls.includes(url)) continue;
const id = currentRow - 1 + 1;
const media = 'Instagram';
const title = description || '';
sheet.appendRow([id, media, postType, title, publishedAt, url]);
currentRow++;
}
// ✅ 処理完了 → 更新日時を保存
prop.setProperty('LAST_CSV_UPDATE', latestDate.toString());
Logger.log('投稿一覧に追記しました(更新日時を記録済)');
}

保存して、メニューの実行を押してみて正しくシートに書き込まれるか確認してみてください。

Step5:トリガーの設定(自動実行)#

Apps Scriptのメニュー「トリガー」から、以下のように設定します。

  • 関数名:importLatestCSVToSheet
  • イベントの種類:時間主導型
  • 実行タイミング:5分ごと、もしくは毎時間 など

これで、CSVをアップロードするたびに自動で処理されます!


活用例:投稿ログの見える化#

この仕組みを使えば:

  • Instagramの投稿を一覧で見られる
  • カレンダーや分析用シートと連携できる
  • YouTubeやブログのログと統合し、コンテンツ分析の元ネタに✨

Zapierのような外部ツールがなくても、GASだけで自動化は可能です。

一度設定しておけば、Instagramの投稿履歴が自動で整理されていきます。
投稿管理が楽になるだけでなく、コンテンツの見える化・分析にも役立ちます。