見出し画像

GASでInstagramのハッシュタグ投稿を自動収集!スプレッドシートに記録する方法

こんにちは!「GASくん」では、Google スプレッドシートとGoogle Apps Script(GAS)を活用して、業務効率化の方法を発信しています。

今回は、GASを使ってInstagramの特定のハッシュタグが付いた投稿を自動取得し、スプレッドシートに記録する方法を紹介します。



📌 この記事でわかること

Instagram APIを使ったハッシュタグ投稿の取得方法
GASを活用してスプレッドシートにデータを保存する方法
ビジネスでの活用事例


1. 実現したいこと

Instagramの特定のハッシュタグを含む投稿を自動取得し、スプレッドシートに保存します。
取得するデータは以下の通りです。

📌 取得するデータ

  • データ取得日時(GASがデータを取得した日時)

  • ID(投稿のユニークな識別子)

  • キャプション(投稿の説明文)

  • メディアのプロダクト種別(投稿が広告かオーガニックか)

  • メディア種別(画像・動画・カルーセルなど)

  • メディアURL(画像や動画のURL)

  • メディアID(メディアの識別子)

  • メディアの画像(画像のプレビュー)

  • パーマリンク(投稿のURL)

  • 作成日(投稿が作成された日時)

  • いいね数

  • コメント数

  • ハッシュタグ(検索したハッシュタグ)

  • ハッシュタグID(Instagramのハッシュタグ識別ID)


2. Instagram APIを利用するための準備

Instagramのハッシュタグ投稿を取得するには、Instagram Graph APIを使用します。

📌 APIを利用するための設定

  1. Meta for Developers(https://developers.facebook.com/)にアクセス

  2. Facebookアプリを作成(Instagram Basic Display APIを有効化)

  3. Instagramアカウントをビジネスアカウントに変更

  4. FacebookページとInstagramアカウントをリンク

  5. アクセストークンを取得(APIリクエストに使用)


3. GASのコード(Instagramハッシュタグ投稿の取得 & スプレッドシートへ保存)

📌 GASコードサンプル

const ACCESS_TOKEN = "YOUR_ACCESS_TOKEN"; // 取得したInstagram APIのアクセストークン
const HASHTAG = "YOUR_HASHTAG"; // 取得したいハッシュタグ
const SHEET_NAME = "Instagramハッシュタグ収集"; // 記録するスプレッドシート名

// ハッシュタグIDを取得
function getHashtagId(hashtag) {
  const url = `https://graph.facebook.com/v18.0/ig_hashtag_search?user_id=YOUR_INSTAGRAM_BUSINESS_ID&q=${encodeURIComponent(hashtag)}&access_token=${ACCESS_TOKEN}`;
  const response = UrlFetchApp.fetch(url);
  const json = JSON.parse(response.getContentText());

  return json.data.length ? json.data[0].id : null;
}

// ハッシュタグ投稿を取得
function fetchInstagramHashtagPosts() {
  const hashtagId = getHashtagId(HASHTAG);
  if (!hashtagId) {
    Logger.log("ハッシュタグIDの取得に失敗しました");
    return;
  }

  const url = `https://graph.facebook.com/v18.0/${hashtagId}/top_media?user_id=YOUR_INSTAGRAM_BUSINESS_ID&fields=id,caption,media_type,media_url,permalink,timestamp,like_count,comments_count&access_token=${ACCESS_TOKEN}`;
  const response = UrlFetchApp.fetch(url);
  const posts = JSON.parse(response.getContentText()).data;

  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME) || SpreadsheetApp.getActiveSpreadsheet().insertSheet(SHEET_NAME);

  // ヘッダーを設定
  if (sheet.getLastRow() === 0) {
    sheet.appendRow(["データ取得日時", "ID", "キャプション", "メディアのプロダクト種別", "メディア種別", "メディアURL", "メディアID", "メディアの画像", "パーマリンク", "作成日", "いいね数", "コメント数", "ハッシュタグ", "ハッシュタグID"]);
  }

  const now = new Date();
  posts.forEach(post => {
    sheet.appendRow([
      now,
      post.id,
      post.caption || "なし",
      "N/A", // プロダクト種別はAPIで取得不可
      post.media_type,
      post.media_url,
      post.id,
      `=IMAGE("${post.media_url}", 1)`,
      post.permalink,
      post.timestamp,
      post.like_count || 0,
      post.comments_count || 0,
      HASHTAG,
      hashtagId
    ]);
  });

  Logger.log("Instagramのハッシュタグ投稿を取得しました");
}

4. 設定手順

  1. Instagram APIのアクセストークンを取得し、コード内の ACCESS_TOKEN に設定

  2. InstagramのビジネスアカウントのIDを取得し、コード内の YOUR_INSTAGRAM_BUSINESS_ID に設定

  3. 取得したいハッシュタグを HASHTAG に設定

  4. スプレッドシートに「Instagramハッシュタグ収集」シートを作成(空の状態でOK)

  5. GASを実行し、スプレッドシートにデータが保存されるか確認

  6. 定期実行する場合は、トリガーを設定し1日1回自動実行


5. どのような業務で利用可能か?

ブランドのUGC(ユーザー生成コンテンツ)収集(特定のハッシュタグをつけた投稿を定期取得)
競合のハッシュタグ分析(競合ブランドのハッシュタグ投稿をモニタリング)
SNSキャンペーンの効果測定(キャンペーン用ハッシュタグの投稿数を自動集計)
インフルエンサー分析(特定のハッシュタグを使用しているユーザーの影響力を分析)


6. まとめ

GASを活用してInstagramのハッシュタグ投稿を自動取得!
スプレッドシートにデータを保存し、分析・管理を効率化!
ブランドマーケティングやSNS分析に活用可能!

いいなと思ったら応援しよう!