GEMINI LABEN
NANOLITE — Nano Banana 2 Liteが登場しました。Googleで最も速く、最もコスト効率の高いGemini Imageモデルで、軽量な画像生成を安く回したい用途に向いていますOMNIFLASH — Gemini Omni Flashがpublic previewになりました。ネイティブにマルチモーダルなモデルで、企業や開発者が独自の動的な動画ワークフローを構築できますAGENTS — Managed Agentsが拡張されました。background: trueでサーバー側の非同期実行とポーリング、リモートMCPサーバー連携、対話をまたぐ認証情報のリフレッシュに対応しますMEMORY — Memory BankのIngestEvents APIが一般提供になりました。イベントの取り込みとメモリ生成を分離し、コンテンツを継続的にストリームできますTHROUGHPUT — Provisioned Throughputで、同一モデル・同一リージョンに対して最大7件の保留オーダーを提出できるようになりましたDEPRECATE — 画像生成モデルは8月17日に、Gemini Enterprise Agent PlatformのGrok 4.1系は8月20日に停止される予定ですNANOLITE — Nano Banana 2 Liteが登場しました。Googleで最も速く、最もコスト効率の高いGemini Imageモデルで、軽量な画像生成を安く回したい用途に向いていますOMNIFLASH — Gemini Omni Flashがpublic previewになりました。ネイティブにマルチモーダルなモデルで、企業や開発者が独自の動的な動画ワークフローを構築できますAGENTS — Managed Agentsが拡張されました。background: trueでサーバー側の非同期実行とポーリング、リモートMCPサーバー連携、対話をまたぐ認証情報のリフレッシュに対応しますMEMORY — Memory BankのIngestEvents APIが一般提供になりました。イベントの取り込みとメモリ生成を分離し、コンテンツを継続的にストリームできますTHROUGHPUT — Provisioned Throughputで、同一モデル・同一リージョンに対して最大7件の保留オーダーを提出できるようになりましたDEPRECATE — 画像生成モデルは8月17日に、Gemini Enterprise Agent PlatformのGrok 4.1系は8月20日に停止される予定です
記事一覧/Workspace 連携
Workspace 連携/2026-04-09中級

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

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

gemini-api279looker-studiodata-analysis4apps-script11automation34business2

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_MODELgemini-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-06-16
Apps Script から Gemini でスプレッドシート数千行を処理する — 6分の実行上限を越える分割と冪等性の設計
Apps Script の6分実行上限でスプレッドシートのバッチ処理が途中で止まる問題を、トリガー継続・ステータス列による冪等処理・指数バックオフで最後まで流し切る設計と実装をまとめます。
Workspace 連携2026-03-31
Gemini API × Google Slides Apps Script でAIプレゼン自動生成パイプラインを構築する
Gemini APIとGoogle Apps Scriptを組み合わせ、テーマ入力だけでスライド構成・本文・デザインを自動生成するプレゼンテーションパイプラインの設計から実装、運用までを体系的に解説します。
Workspace 連携2026-06-29
Apps Script の時間主導型トリガーが静かに枯渇する — Gemini 自動化を一本のディスパッチャに束ねる
Apps Script の時間主導型トリガーは1ユーザー20本・1日の合計実行時間にも上限があります。Gemini 自動化を増やすたびに無音で止まる問題を、単一ディスパッチャとスケジュール表とハートビートで解く実装を示します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →