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

このアプリは、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に精度の高い評価をさせるため、プロンプト(指示文)には「本日の日付」をシステム情報として渡し、「未来の出来事と誤認して減点しない」という厳格なルールを設けています。
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 で該当記事のみをピンポイントで抽出しています。
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)」**という防弾処理を施しています。
// 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の開発は「ノーコード」になります。いわゆる「バイブコーディング」のような開発方法です。


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

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

この記事を書いた遠田幹雄は中小企業診断士です
遠田幹雄は経営コンサルティング企業の株式会社ドモドモコーポレーション代表取締役。石川県かほく市に本社があり金沢市を中心とした北陸三県を主な活動エリアとする経営コンサルタントです。
小規模事業者や中小企業を対象として、経営戦略立案とその後の実行支援、商品開発、販路拡大、マーケティング、ブランド構築等に係る総合的なコンサルティング活動を展開しています。実際にはWEBマーケティングやIT系のご依頼が多いです。
民民での直接契約を中心としていますが、商工三団体などの支援機関が主催するセミナー講師を年間数十回担当したり、支援機関の専門家派遣や中小企業基盤整備機構の経営窓口相談に対応したりもしています。
保有資格:中小企業診断士、情報処理技術者など
会社概要およびプロフィールは株式会社ドモドモコーポレーションの会社案内にて紹介していますので興味ある方はご覧ください。
お問い合わせは電話ではなくお問い合わせフォームからメールにておねがいします。新規の電話番号からの電話は受信しないことにしていますのでご了承ください。

【反応していただけると喜びます(笑)】
記事内容が役にたったとか共感したとかで、なにか反応をしたいという場合はTwitterやフェイスブックなどのSNSで反応いただけるとうれしいです。
本日の段階で当サイトのブログ記事数は 6,959 件になりました。できるだけ毎日更新しようとしています。
遠田幹雄が利用しているSNSは以下のとおりです。
facebook https://www.facebook.com/tohdamikio
ツイッター https://twitter.com/tohdamikio
LINE https://lin.ee/igN7saM
チャットワーク https://www.chatwork.com/tohda
また、投げ銭システムも用意しましたのでお気持ちがあればクレジット決済などでもお支払いいただけます。
※投げ銭はスクエアの「寄付」というシステムに変更しています(2025年1月6日)
※投げ銭は100円からOKです。シャレですので笑ってご支援いただけるとうれしいです(笑)
株式会社ドモドモコーポレーション
石川県かほく市木津ロ64-1 〒929-1171
電話 076-285-8058(通常はFAXになっています)
IP電話:050-3578-5060(留守録あり)
問合→メールフォームからお願いします
法人番号 9220001017731
適格請求書(インボイス)番号 T9220001017731

