◉GEMINI LABEN
●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止、残り6日。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…●ARGON — gemini-4-argon が 10/13 に GA。複雑なコーディング・エージェント・数学・科学向けです●DEEP RES — deep-research-pro-preview-12-2025 は 10/23 に停止、残り6日。移行先は deep-research-preview-04-2026●NANO — gemini-nano-banana-2.1 が GA(10/06)。gemini-3.1-flash-image は非推奨で停止日は未発表です●MCP — ツール結果が 8.5万トークンに膨らんだ事例を、ADK で 310 トークンに包んで抑えた報告が出ています●FLASH — gemini-3.7-flash と 3.5-flash は新しい Flash モデルに自動で回されます(10/08)●NEW — クラッシュ報告を毎回ゼロから読ませない — 既知バグ早見表を先に grep し…
記事一覧/Workspace 連携
◧ Workspace 連携/2026-04-09中級

Google Looker Studio × Gemini API でビジネスレポートをAI自動分析する

Google Looker Studio のデータを Gemini API で AI 分析する方法を徹底解説。Apps Script を使ったレポート自動化の手順、コード例、よくあるエラーまで網羅した実践ガイドです。

gemini-api288looker-studiodata-analysis4apps-script11automation37business

Google Looker Studio × Gemini API とは?

ビジネスの意思決定に欠かせないデータレポート。Google Looker Studio(旧 Google Data Studio)は、各種データソースを可視化できる無料の BI ツールとして多くの企業に利用されています。しかし、グラフや表を眺めるだけでは「なぜ売上が下がったのか」「次のアクションは何か」といったインサイトを導き出すには、まだ人間の解釈が必要でしました。

Gemini API を組み合わせることで、この分析プロセスを自動化できます。Google Sheets をデータハブとして活用し、Looker Studio のデータを Gemini API に送信してAI分析コメントを生成し、その結果をレポートに自動反映させるパイプラインを構築できるのです。

必要なもの・事前準備

実装を始める前に、以下を揃えておきましょう。

Google アカウント(無料)

Looker Studio、Google Sheets、Apps Script はすべて Google アカウントで利用できます。Google Workspace 契約は必須ではありませんが、ビジネス利用では Workspace を推奨します。

Gemini API キー

Google AI Studio にアクセスし、「API キーを作成」から取得します。無料枠では1分あたり 60 リクエスト、1日 1,500 リクエストまで利用可能です(2026年4月時点)。

Google Sheets のデータソース

Looker Studio がデータソースとして参照している Google Sheets を使います。既存のシートをそのまま活用できます。

全体のアーキテクチャ

Google Sheets(データ)
    ↓ Apps Script が定期実行
Gemini API(AI分析)
    ↓ 分析コメントをシートに書き込み
Looker Studio(可視化)
    ↓ シートを参照して最新コメントを表示
ビジネスレポート完成

Step 1:Google Sheets とデータソースの準備

まず、Looker Studio と連携する Google Sheets を用意します。既存のレポート用シートがあればそれを使用し、Gemini の分析コメントを書き込む専用のシート「AI_Analysis」を追加します。

シート構成例

シート1: Sales_Data(売上データ)
  A列: 日付
  B列: 売上金額
  C列: 商品カテゴリ
  D列: 顧客数

シート2: AI_Analysis(AI分析結果)
  A列: 分析日時
  B列: 対象期間
  C列: AI分析コメント(日本語)
  D列: 推奨アクション

Looker Studio 側では、この AI_Analysis シートをデータソースとして追加し、分析コメントをテキストウィジェットに表示するように設定します。

Step 2:Apps Script で Gemini API を呼び出す

Google Sheets を開き、「拡張機能」→「Apps Script」から、以下のコードを貼り付けます。

// ============================================================
// Gemini API × Looker Studio 自動分析スクリプト
// Google AI Studio から取得した API キーを設定してください
// ============================================================
 
const GEMINI_API_KEY = "YOUR_GEMINI_API_KEY"; // ← AI Studio から取得
const GEMINI_MODEL   = "gemini-2.5-flash";
const ANALYSIS_SHEET = "AI_Analysis";
const DATA_SHEET     = "Sales_Data";
 
/**
 * メイン関数:データを取得し Gemini API で分析してシートに書き込む
 * トリガーで毎日 09:00 に自動実行するよう設定します
 */
function runGeminiAnalysis() {
  const ss   = SpreadsheetApp.getActiveSpreadsheet();
  const data = fetchSalesData(ss);
 
  if (!data || data.length === 0) {
    Logger.log("分析対象データが見つかりませんでした");
    return;
  }
 
  // 直近7日分のサマリーを作成
  const summary = buildDataSummary(data);
  Logger.log("データサマリー: " + summary);
 
  // Gemini API に送信して分析コメントを生成
  const analysis = callGeminiApi(summary);
 
  // 結果を AI_Analysis シートに書き込み
  writeAnalysisResult(ss, analysis);
  Logger.log("✅ 分析完了 — シートに書き込みました");
}
 
/**
 * Sales_Data シートから直近7日のデータを取得する
 */
function fetchSalesData(ss) {
  const sheet  = ss.getSheetByName(DATA_SHEET);
  if (!sheet) throw new Error(DATA_SHEET + " シートが見つかりません");
 
  const rows   = sheet.getDataRange().getValues();
  const header = rows[0]; // 1行目はヘッダー
  const today  = new Date();
  const oneWeekAgo = new Date(today - 7 * 24 * 60 * 60 * 1000);
 
  // 直近7日分のデータをフィルタリング
  return rows.slice(1).filter(row => {
    const dateVal = row[0];
    if (!dateVal) return false;
    const d = dateVal instanceof Date ? dateVal : new Date(dateVal);
    return d >= oneWeekAgo && d <= today;
  });
}
 
/**
 * データを Gemini API に送りやすいテキストサマリーに変換する
 */
function buildDataSummary(data) {
  let totalSales    = 0;
  let totalCustomers = 0;
  const catMap      = {};
 
  data.forEach(row => {
    const sales    = parseFloat(row[1]) || 0;  // B列: 売上
    const category = String(row[2] || "不明"); // C列: カテゴリ
    const customers= parseFloat(row[3]) || 0;  // D列: 顧客数
 
    totalSales    += sales;
    totalCustomers += customers;
    catMap[category] = (catMap[category] || 0) + sales;
  });
 
  const catLines = Object.entries(catMap)
    .sort((a, b) => b[1] - a[1])
    .map(([cat, s]) => `  - ${cat}: ¥${s.toLocaleString()}`)
    .join("\n");
 
  return [
    `【直近7日間の売上サマリー】`,
    `合計売上: ¥${totalSales.toLocaleString()}`,
    `合計顧客数: ${totalCustomers}人`,
    `カテゴリ別売上:`,
    catLines,
    `データ件数: ${data.length}行`,
  ].join("\n");
}
 
/**
 * Gemini API を呼び出して AI 分析コメントを取得する
 */
function callGeminiApi(summary) {
  const prompt = `
あなたはビジネスアナリストです。以下の売上データを分析し、以下の形式で回答してください。
 
【データ】
${summary}
 
【出力形式】
1. 現状分析(2〜3文で要点をまとめてください)
2. 注目すべきポイント(箇条書き2〜3点)
3. 推奨アクション(具体的な施策を1〜2点)
 
簡潔かつ実用的な内容でお願いします。
  `.trim();
 
  const url     = `https://generativelanguage.googleapis.com/v1beta/models/${GEMINI_MODEL}:generateContent?key=${GEMINI_API_KEY}`;
  const payload = {
    contents: [{ parts: [{ text: prompt }] }],
    generationConfig: {
      temperature: 0.3,        // 分析用途は低め(一貫性重視)
      maxOutputTokens: 1024,
    },
  };
 
  const response = UrlFetchApp.fetch(url, {
    method: "POST",
    contentType: "application/json",
    payload: JSON.stringify(payload),
    muteHttpExceptions: true,
  });
 
  const statusCode = response.getResponseCode();
  if (statusCode !== 200) {
    const errorBody = response.getContentText();
    throw new Error(`Gemini API エラー (HTTP ${statusCode}): ${errorBody}`);
  }
 
  const result = JSON.parse(response.getContentText());
 
  // レスポンスからテキストを抽出
  const text = result?.candidates?.[0]?.content?.parts?.[0]?.text;
  if (!text) throw new Error("Gemini API からテキストが返されませんでした");
 
  return text;
}
 
/**
 * 分析結果を AI_Analysis シートに書き込む
 */
function writeAnalysisResult(ss, analysisText) {
  let sheet = ss.getSheetByName(ANALYSIS_SHEET);
  if (!sheet) {
    sheet = ss.insertSheet(ANALYSIS_SHEET);
    // ヘッダー行を追加
    sheet.appendRow(["分析日時", "対象期間", "AI分析コメント", "推奨アクション"]);
  }
 
  const now    = new Date();
  const period = `${formatDate(new Date(now - 7 * 24 * 60 * 60 * 1000))} 〜 ${formatDate(now)}`;
 
  // 分析コメントと推奨アクションを分割(簡易パース)
  const lines       = analysisText.split("\n").filter(l => l.trim());
  const mainComment = lines.slice(0, Math.ceil(lines.length * 0.7)).join("\n");
  const actionPart  = lines.slice(Math.ceil(lines.length * 0.7)).join("\n");
 
  sheet.appendRow([now, period, mainComment, actionPart]);
}
 
/** 日付を YYYY-MM-DD 形式にフォーマット */
function formatDate(d) {
  return Utilities.formatDate(d, "Asia/Tokyo", "yyyy-MM-dd");
}

コードのポイント

コードの重要な点を整理します。GEMINI_API_KEY には AI Studio で発行したキーを設定してください。GEMINI_MODEL は gemini-2.5-flash を使っているため、高速かつコスト効率良く動作します。temperature: 0.3 はデータ分析用途に適した低い値で、一貫性のある分析結果を得られます。

Step 3:定期実行トリガーの設定

毎日自動で分析を実行するには、Apps Script のトリガーを設定します。

Apps Script エディタで「時計アイコン(トリガー)」をクリックし、以下のように設定します。

  • 実行する関数:runGeminiAnalysis
  • イベントのソース:時間主導型
  • 時間ベースのトリガーのタイプ:日タイマー
  • 時刻:午前 9 時〜10 時

これで毎朝 9 時に自動分析が実行され、AI_Analysis シートが更新されます。

Step 4:Looker Studio にAI分析コメントを表示する

Looker Studio でレポートを開き、「データを追加」から同じ Google Sheets の AI_Analysis シートを追加します。

キャンバス上に「テキスト」ウィジェットを追加し、AI分析コメント フィールドを配置します。最新行のコメントが自動表示されるよう、日付フィールドで降順に並べ替えて「1 行のみ表示」設定にします。

ビジュアル活用のヒント

Looker Studio のコントロールパネルに AI 分析エリアを設置することで、データグラフの隣に AI コメントを並べた一覧性の高いダッシュボードが完成します。月次・週次のレポートを経営層に共有する際、グラフに加えてAIの解釈が自動付与されるため、報告資料の質が大幅に向上します。

よくあるエラーと対処法

実装時によく遭遇するエラーとその解決策をまとめます。

エラー1:「QUOTA_EXCEEDED」が発生する

無料枠の場合、1分あたり 60 リクエストの制限があります。Utilities.sleep(2000) を API 呼び出し前に追加して、リクエスト間隔を空けましょう。大量データを一度に送る場合は、バッチ処理に分割することをおすすめします。

エラー2:「The caller does not have permission」が表示される

API キーの設定ミスが多い原因です。AI Studio で発行したキーの前後にスペースが入っていないか確認し、スクリプトプロパティ(「プロジェクトの設定」→「スクリプトプロパティ」)に保存する方法も安全性が高くおすすめです。

エラー3:Looker Studio のデータが更新されない

Looker Studio は Google Sheets のキャッシュを参照します。レポート画面右上の「データを更新」ボタンを押すか、データソース設定で「キャッシュの更新頻度」を短縮してください。

全体を振り返って

Google Looker Studio と Gemini API を組み合わせることで、データレポートへのAI自動分析コメント付与が実現します。今回紹介した実装のポイントをまとめます。

  • Apps Script が Sheets のデータを取得 → Gemini API で分析 → 結果をシートに書き込みというシンプルなパイプライン
  • トリガー設定で毎日自動実行が可能
  • Looker Studio はシートを参照するだけなので特別なプラグイン不要
  • Gemini 2.5 Flash を使うことでコスト効率よく高速に分析できる

このパイプラインを応用すれば、Google Analytics データの自動解釈、在庫管理レポートへのAI提案、顧客行動データの自動セグメント分析なども実現できます。

さらに Google Workspace 全体にわたる自動化ワークフローに発展させたい方は、Gemini Apps Script クロスプロダクト自動化ガイド もぜひご覧ください。

シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

◧ Workspace 連携2026-07-16
=GEMINI() を420行に貼って気づいたこと — カスタム関数をやめ、値で書き戻すまでの実測
Sheets のカスタム関数から Gemini を呼ぶ構成は、動いた瞬間がいちばん美しく、そこから伸びません。30秒の壁・制御できない再計算・書き戻せない結果という3つの性質を実測で確かめ、値で書き戻す設計へ移すまでの手順とコードを残します。
◈ API / SDK2026-07-23
会話状態をサーバーに預けるべきか — previous_interaction_id と手元での履歴刈り込みの分岐設計
Interactions API の previous_interaction_id で会話状態をサーバーに預けると、毎回履歴を送らずに済みます。ところが途中で入った巨大なツール出力を後から刈り込めず、以降のターンが重量を引きずる落とし穴があります。サーバー側状態と手元での刈り込みを状況で使い分ける分岐設計を、動くPythonの薄いラッパーとともに整理します。
◈ API / SDK2026-05-16
App Store / Google Play のレビュー返信を Gemini API で自動化したときにはまった「8秒ルール」
個人で運営するアプリ群でGemini APIによるレビュー返信自動化を試みた実装記録。多言語対応の設計と、App Storeで8秒以上待機しないとペナルティを受けるという落とし穴を共有します。