AI(人工知能/ディープラーニング)

GASとGeminiで作る「記事品質管理のダッシュボード」でブログ記事の定期的な品質チェックとアクセス解析をセットで管理できます

この記事は約7分で読めます。

ブログ記事の品質をAIで自動的に分析します毎日のブログ更新、ただ書くだけになっていませんか?「この記事は本当にユーザーのためになっているのか?」「検索流入につながる品質を満たしているのか?」を毎日手動で分析するのは、時間も手間もかかります。
そこで今回、Google Apps Script (GAS) を駆使し、生成AI(Gemini)による「記事品質スコアリング」と「GA4のアクセス解析」を統合したダッシュボードアプリを自作しました
本記事では、このアプリがもたらすブログ運用の有効性と、開発に用いたGASの具体的な処理方法や技術的な工夫をご紹介します。

💡 このアプリの目的と3つの有効性

ブログ記事の品質をAIで自動的に分析します

このアプリは、Googleドライブに保存されたブログの下書き(ドキュメント)を自動で読み込み、評価・分析を行うシステムです。以下の3つの点で強力な効果を発揮します。

実際の画面はこのとおりです。

ブログ記事の品質チェックを自動化するアプリ

AIによる客観的かつ定量的な「品質評価」

自分で書いた記事を客観的に評価するのは難しいものです。 このアプリでは、Gemini APIを利用して記事本文を読み込ませ、「独自性・具体性・実用性・一貫性・信頼性」の5項目(70点満点)+文字数・構造(30点満点)の合計100点満点でスコアリングします。さらに、AIからの改善コメントも自動生成されるため、公開前に記事のブラッシュアップが可能になります。

品質スコアと「アクセス実績(PV・滞在時間)」の相関分析

「AIの評価が高い記事は、実際に読まれているのか?」 これを検証するため、Google Analytics 4 (GA4) のAPIと連携しています。
ダッシュボード上で、AIの品質スコアと実際のPV・滞在時間の推移をグラフで比較できるため、「どんな記事がユーザーに刺さるのか」という傾向を視覚的に把握できます。

深夜のバッチ処理による「完全自動化」

アクセスデータは日々変動します。GASの「時間主導型トリガー」を設定し、毎日深夜に全記事のGA4データを自動で最新情報に書き換えるバッチ処理を実装しました。これにより、管理者はダッシュボードを開くだけで常に最新のパフォーマンスを確認できます。

🛠️ アプリを支えるGASの処理とコードの工夫

セキュリティに配慮しつつ、このアプリの中核となる3つの技術的なポイントをご紹介します。(※APIキー等の機密情報はGASの「スクリプトプロパティ」に格納し、コード上には直接記述していません)

ポイント1:Gemini APIへのプロンプトエンジニアリング

AIに精度の高い評価をさせるため、プロンプト(指示文)には「本日の日付」をシステム情報として渡し、「未来の出来事と誤認して減点しない」という厳格なルールを設けています。

JavaScript
function evaluateContentWithGemini(text) {
  // スクリプトプロパティからAPIキーを安全に取得
  const apiKey = PropertiesService.getScriptProperties().getProperty("GEMINI_API_KEY");
  
  const today = new Date();
  const currentDateStr = `${today.getFullYear()}${today.getMonth() + 1}${today.getDate()}日`;
  
  const prompt = `
【システム情報】本日の日付は ${currentDateStr} です。
【重要ルール】最新の時事問題を扱っています。記事内の日付を「未来の出来事」と誤認して減点しないでください。

以下のブログ記事のテキスト内容を評価してください。
各項目14点満点、合計70点満点で採点してください。1.独自性, 2.具体性, 3.実用性, 4.一貫性, 5.信頼性
出力は必ず以下のJSONスキーマに従ってください。{"total_score": 65, "comment": "良かった点と改善点を..."}
記事:${text.substring(0, 15000)}
`;

  const options = {
    method: "post",
    contentType: "application/json",
    payload: JSON.stringify({ 
      contents: [{ parts: [{ text: prompt }] }], 
      generationConfig: { response_mime_type: "application/json" } 
    })
  };

  // Gemini APIへのリクエスト実行(以下略)
}

ポイント2:GA4 APIを使った柔軟なデータ取得

特定のスラッグ(URL末尾)を持つ記事の、直近30日間のPVと平均滞在時間を取得する処理です。AnalyticsData.Properties.runReport を使用し、dimensionFilter で該当記事のみをピンポイントで抽出しています。

JavaScript
function fetchAccessAnalyticsSingle(urlSlug) {
  const propertyId = PropertiesService.getScriptProperties().getProperty("GA4_PROPERTY_ID");

  const request = {
    dateRanges: [{ startDate: "30daysAgo", endDate: "today" }],
    dimensions: [{ name: "pagePath" }],
    metrics: [{ name: "screenPageViews" }, { name: "averageSessionDuration" }],
    dimensionFilter: { 
      filter: { fieldName: "pagePath", stringFilter: { matchType: "CONTAINS", value: urlSlug } } 
    }
  };
  
  const response = AnalyticsData.Properties.runReport(request, `properties/${propertyId}`);
  
  let pv = 0, time = 0;
  if (response.rows && response.rows.length > 0) {
    pv = Number(response.rows[0].metricValues[0].value);
    // 滞在時間は扱いやすいように小数点以下を切り捨てて秒数で保持
    time = Math.floor(Number(response.rows[0].metricValues[1].value));
  }
  
  return { pv: pv, time: time };
}

ポイント3:GAS特有の「JSPBエラー」を回避するJSON通信

GASのバックエンド(Code.gs)からフロントエンド(index.html)へ複雑な配列やオブジェクトを渡す際、GAS内部のシステム(JSPB)がクラッシュする厄介な仕様があります。 これを防ぐため、データをやり取りする際は**「必ず文字列(JSON.stringify)に変換して送り、フロント側で元に戻す(JSON.parse)」**という防弾処理を施しています。

JavaScript
// Code.gs側:データを文字列化して返す
return JSON.stringify({ 
  success: true, 
  docs: docsData 
});

// -----------------------------

// index.html側:受け取った文字列をデータに戻す
google.script.run
  .withSuccessHandler((jsonStr) => {
    const res = JSON.parse(jsonStr);
    if (!res.success) throw new Error(res.error);
    // 画面の描画処理へ...
  })
  .getAppData();

まとめ:AIを活用した自律的な改善サイクルの実現

このGASアプリを導入したことで、「記事を書く → AIが採点する → GA4で結果を追う → 次の改善に活かす」というサイクルが、1つの画面上でシームレスに完結するようになりました。

なお、このGASアプリの作成は、Geminiを使ったバイブコーディングです。自分では一行もコードを書いていません。

APIの活用とGASによる自動化は、ブログ運営の強力な武器になります。 ルーチンワークをシステムに任せることで、人間は「どうすればもっと読者の役に立つか」という本質的な執筆活動に集中できるようになるはずです。

GAS×Geminiで開発することについて

Geminiを相談相手にすることでGASの開発は「ノーコード」になります。いわゆる「バイブコーディング」のような開発方法です。

Gemini
Gemini(ジェミニ)は、Googleが開発した最先端の生成AIモデル、およびその技術を利用したAIアシスタントサービスの名称です。主な特徴は以下の通りです。 マルチモーダル対応: テキストだけでなく、画像、音声、動画、プログラミングコー...
GAS:GoogleAppsScript

GASはGoogleが提供しているスクリプトです。JAVA形式で記述する「Google Apps Script」のことを指すことが多いですが、ノーコードで記入できる「Google App Sheet」もGASといわれています。
簡易な開発案件ならGASで可能になりました。エクセルのような仕様なら、IT事業者に外注しなくても社内で開発し運用することも可能です。

また、GASのコード生成を最適化するGeminiのGemを作成しておくと運用が便利になります。

「プログラミングは難しい」と思っていませんか?定型業務を劇的に楽にするGAS活用術と強力な助っ人「専用AI:GASアプリメーカー」を公開します
日々の業務をGASで自動化する!このことについて説明します。GASとはGoogleが提供している簡易なプログラムでGeminiとの対話で作り上げることができます。このような自分専用のGASを使えば毎日の定番業務が簡単に自動化できるようになり...

上記の関連記事もご覧になってみてください。