
毎月のWeb解析レポート、手作業でグラフや表を一枚一枚スライドにコピペする作業、地味にしんどくないですか?
しかも、コピペミス防止の数値チェックも、もちろん一つ一つしないといけませんから、本当に肩と首が凝るんですよね…(私も経験者です)
今は LookerStudio があるおかげで、ダッシュボードは自動化されましたが、「分析コメント」や「今後の課題」のついたレポートをドキュメントとして蓄積したいというお客様のニーズは今も多く、レポート担当者の皆さんのご苦労は未だ絶えることはないようです。
もし、GPTが図表や文章を書けるなら、そしてそのままレポートにしてくれたら最高やん?──
ということで、GPT+GASで「月次レポートを自動生成する仕組み」作りを進めることにしました。
この記事では、その前編として「Googleスライドを使った自動生成」までの流れをご紹介します。

もちろん、分析コメントや「今後の課題」については、お客様の背景や目的といった部分も考慮する必要があるので、ある程度のリライトは必要ですが、数字からロジカルにわかる傾向については、十分に価値のあるコメントを出してくれます
1. なぜ自動化したかったのか?
月初になると毎月やってくるこの作業:
- GA4/GSCからデータをエクスポート
- チャネル別、ページ別、クエリ別にグラフ作成
- PDF用にスライドに図表をコピペ
……これって、全部、定型作業なんですよね。
手を抜けないわりに時間もかかるし、作業後のチェックも大変!
「これはGPTとGASを使って自動化する価値があるのでは?」と考えたのがきっかけでした。
2. レポート自動生成の全体構成
前編のスコープは以下の通り:
- GPT側の役割:
- スライド用のパーツ(表紙テキスト・測定期間)を生成
- スライド用の本文の草案(要約・所感・今後の課題)を生成
- スライド用のグラフと表を生成
- 上記の各パーツをまとめて、スライド自動生成用のGASスクリプトを作成
- GAS側の役割:
- Googleスライドのテンプレートを複製
- テキスト変数を置換
- グラフ画像(Drive経由)を貼り付け
- GA4/GSCの表を挿入
- 今回、人間(私)がやったこと:
- 【初回のみ】Googleシートでテンプレートを作る(下図)
- 【初回のみ】テンプレート用Googleシートの共有設定を「リンクを知っている全員」にする
- 【初回のみ】テンプレート用GoogleシートのURLをGPTに渡す
- GA4、GSC(サーチコンソール)のCSVデータをGPTに渡す
- GPTが作成したグラフ(PNG画像)をGoogleドライブにアップして共有設定を「リンクを知っている全員」にする
- GPTが作成したレポート生成用のGASスクリプトを、テンプレート用のGoogleシートに実装する
- 【初回のみ】Googleシートでテンプレートを作る(下図)
今回のレポートの構成は、以下のようにしました:
- 表紙(タイトル/期間)
- 総括(サマリ:テキスト)
- GA4ハイライト(1ヶ月のアクセス概要:テキスト)
- GA4日次推移グラフ(グラフ)
- GA4月次データシート(表)
- GA4分析まとめ(テキスト)
- GSCハイライト(1ヶ月のSEO概要:テキスト)
- GSC日次推移グラフ(グラフ)
- GSC月次データシート(表)
- 今後の課題(テキスト)

さすがに『100%完全自動化!』とはいかないようで、GPTが生成したグラフ(PNG画像)をGoogleドライブなどにアップして、URLをGPTに渡す(または自分でGASに書き込む)作業だけは不可避のようです。
3. 実際にやってみた
ステップ1:スライドテンプレと変数スロット
テンプレート用のGoogleスライドに、下記のような変数を差し込んでいきます(下図参照):
{{yearmonth}}:表紙タイトルに差し込む年月(例:2025年3月)
{{period}}:測定期間(例:2025/03/01〜2025/03/31)
{{summary}}:GA4サマリー本文(例:月間セッション数は218件・・・)
{{insight}}:GA4分析まとめ(例:検索流入が増加し、記事が必要なユーザーに・・・)
{{action}}:今後の課題(例:CTRが低い記事のタイトル改善や投稿カテゴリの・・・)
スライド内に埋め込まれた {{summary}}
や {{yearmonth}}
などの変数は、GASの .replaceAllText()
によって、それぞれの値に自動的に置き換えられます。
この処理によって、テンプレートスライドの各ページに「月次」「要約」「所感」などの情報が自動で挿入され、ベースとなるレポートスライドが生成されるという流れです。

ステップ2:グラフの自動貼り付け
GA4のチャネル別セッションの日次推移グラフや、GSCのクリック数・CTR日次推移グラフは、下記のような流れで、レポートに自動挿しこみしていきます。
GPTがPython + matplotlibでグラフ(PNG画像)を生成
▶︎ 私がGoogleドライブにアップロード
▶︎ GPTが作成したGASスクリプトでレポートの任意のページ・位置に自動設置
画像の設置には下記のようなGAS文を使います。
Google Slides API を使って画像を挿入する際は、画像の縦横比が自動で保持されるため、横幅だけを指定すれば、縦のサイズもバランスよく調整されて、歪まずにスライドに配置されます。
const image = slide.insertImage(imageUrl);
image.setWidth(500); // 横幅
image.setTop(135); // 縦位置
image.setLeft(50); // 横位置
ステップ3:表の自動挿入
GA4のLP別パフォーマンス表(10件+合計)と、GSCのクエリ×LPパフォーマンス(同様に10件+合計)もスライド内に挿入してみました。
ただし、GASでは以下の制限がありました:
- フォントサイズは制御可(
.setFontSize()
) - 列幅・セル余白は制御不可
- セルが空欄だと
.getText()
でエラーになる
今回は回避策として:
- ドメイン部を除いたURL表示(
/chatgpt_trouble_faq/
) - 行数制限(上位10件+合計)
- 空欄を
"-"
で補完
など試みましたが、下記のサンプルをご覧頂ければわかるように、まだページからはみ出しています。
実際には上位20〜25件は欲しいところなので、Pythonで表を作ってPNG画像化する必要がありそうです。(後半の課題ですね・・・)
4. 仕上がったレポートはこちら
テンプレから自動生成したレポートはこちらで公開中です:
5. 前編のまとめ
- スライド生成はGPT+GASの組み合わせでかなり実用的にできそう!
- グラフの画像差し込みも問題なし
- 表はGASやGoogleスライドの仕様の限界があるため、Pythonなどによる図形化が必要
- 今はGPTが作成したGASを手作業でコピペしているが、できればAPIでGASに自動取得させたい!
- とはいえ、月次レポートの自動化の「骨組み」作りまでは成功!
6. 次回予告(後編)
次は、いよいよAPI連携でデータ取得から全自動に挑戦します。
- Pythonによる表のデザイン調整と図形化
- APIでGA4とGSCのデータを抽出
- GPTに所感やアクション案まで出力させる
など、さらなるオートメーション化の実験へ進みます!(人力も多少は必要ですが)
「月次レポート自動化したいかも…」と思った方は
次回の後編記事もぜひお楽しみに!GPT+Python+GASでGoogleスライドの月次レポートを自動生成してみた【後編】