自社のマーケティング業務を、AIでもう少し自動化できないか。

少し前から考えていたことです。

自社サイトのアクセス状況を確認したり、Search ConsoleからSEOのテーマを探したり、改善案を整理したり、記事やSNSのネタを考えたり。本来なら定期的にやった方がいいことはいくつもあります。

ただ、実際にはクライアントワークが優先されます。自社サイトの分析は後回しになり、記事のネタだけ溜まって公開まで進まない。SNSも更新した方がいいと分かっているのに、気づけばしばらく触れていない。

「時間がかかる」というより、自社のことは後回しになって、結局ほとんど何もできていないという状態になりがちでした。

だったら、この部分をAIに任せられないか。

今回の検証は、そこから始まっています。

一方で、最初から大きな費用をかけるつもりもありませんでした。

AIを本格的に使おうとすると、ChatGPTの上位プランやAIエージェント系のサービス、自動化ツールなど、有料の選択肢はいくつもあります。便利なのは分かりますが、自分の仕事でどこまで使えるのかも分からない段階で、毎月数万円の固定費を増やすのは正直しんどい。

そこで、まずは今使っているChatGPT Plusをそのまま使い、Google Cloudも無料枠を中心に組んでみることにしました。

追加で購入したのは、OpenAI APIを試すための5ドル分のクレジットです。

本当に使えることが分かってから、必要なところにお金をかける。その方が、自社で試すには現実的だと考えました。

最終的に作りたいのは、チャットボットではない

今回の最終目的は、質問に答えてくれるチャットボットを作ることではありません。

将来的には、GA4やSearch Consoleを定期的に確認し、サイトに変化があれば知らせ、改善した方がよさそうなところがあれば提案する。記事やSNSのテーマを考え、必要な場面だけ人に確認を求める。

そうした仕事をある程度、自分で進められる仕組みにしたいと考えています。

いわゆるAIエージェントですが、難しく考える必要はなく、質問に答えるだけではなく、必要な情報を自分で取りに行きながら仕事を進めるAI、と捉えています。

ただ、その前提として、AI自身が自社のデータにアクセスできなければなりません。

毎回こちらでGA4を開き、CSVをダウンロードしてChatGPTに渡すのであれば、その作業は人間側に残ったままです。

そこで、いきなり自律型のエージェントを作るのではなく、まずはAIが仕事をするための基盤から整えることにしました。

まずは、自社データにアクセスするためのAPIを作った

最初に取り組んだのは、GA4やSearch Consoleなどのデータをプログラムから取得できるようにすることです。

ここで使うのがAPIです。

APIは、システム同士がデータや機能をやり取りするための窓口だと考えると分かりやすいと思います。

GA4にもSearch Consoleにも公式APIがあります。ただ、AI側からそれぞれ別々のAPIへ直接つなぐ構成にすると、認証や処理が増えて管理しづらくなります。

そこで今回は、自社用のAPIを一つ用意し、マーケティングに必要なデータをそこから取得できる形にしました。

既存のGoogle Cloudプロジェクト「markeTrans Website Analytics」を流用し、Cloud Run上で動いていた marketrans-ga4-api を拡張しています。

Cloud Runは、作ったプログラムをGoogle Cloud上で実行するためのサービスです。自分でサーバーを常時立ち上げて管理しなくてもよく、アクセスがないときはインスタンスを止める設定にもできます。

今回のような小規模な検証では、無料枠を使いながら試しやすいのも都合がよいところでした。

MCPサーバーを、あえてMacの中には置かなかった

次に、AIから自社APIを利用できるようにするため、MCPをつなぎました。

MCPはModel Context Protocolの略で、AIから外部のデータや機能を利用するための接続方式です。

今回用意した marketrans-mcp もCloud Run上で動かしています。

構成を単純化すると、次のようになります。

ChatGPT / AI
     ↓
markeTrans MCP
     ↓
markeTrans API
     ↓
GA4 / Search Console / サイト監査 / 判断履歴

MCPサーバー自体は、自分のMac上で動かすこともできます。個人で少し試すだけなら、その方が手軽なケースもあると思います。

それでも今回はクラウド側に置きました。

理由は、自分のPCが起動しているかどうかに依存した仕組みにしたくなかったからです。

今後、決まった時間に自動実行させることを考えると、Macを閉じたら止まる仕組みでは困ります。別の端末から使うことや、将来的にクライアント向けへ横展開することまで考えると、最初からクラウド上に置いた方が都合がよいと判断しました。

「安いからCloud Runにした」というより、ローカル依存を避けながら、小さく試せる環境としてちょうどよかったという方が実態に近いです。

認証用のJSONキーも使わない構成にした

GA4などのデータにプログラムからアクセスするには、当然ながら権限が必要です。

Google Cloudでは、そのためにサービスアカウントという仕組みがあります。人間のGoogleアカウントではなく、プログラムそのものへ権限を与えるためのアカウントです。

よくある方法では、サービスアカウント用のJSONキーを発行し、それをプログラムから読み込みます。

今回はその方式を採らず、Cloud Runの実行環境そのものにサービスアカウントを割り当てました。

これなら、認証キーのファイルを別途保存して持ち回る必要がありません。

自動実行する範囲を今後広げることを考えると、Google Cloud内の権限で完結させる方が管理しやすいと考えています。

実際に一番時間がかかったのは、AIへのデータの渡し方だった

APIとMCPをつなげれば、AIからGA4やSearch Consoleのデータを取得できるようになります。

ただ、実際に作業してみると、接続そのものよりも悩んだのが、取得したデータをどの状態でAIへ渡すかでした。

GA4やSearch Consoleから取得したデータを、そのまま全部AIへ渡すこともできます。

ただ、それをやると、AIは大量のデータの中から必要な項目を探し、集計し、比較してから分析に入ることになります。

そこまでAIにやらせる必要があるのか、という疑問が出てきました。

例えば、必要な期間だけを取り出す、不必要な項目を外す、前週との差を計算する、一定以上の変化があったものを抽出する、といった処理です。

こうしたものはコードで処理した方が毎回同じルールで計算できますし、AIに渡すデータ量も減らせます。

仮に、今週のセッションが1,243、先週が1,105だったとします。

この2つの数字をAIに渡して増減率を計算させるのではなく、

「セッションは前週比12.5%増」

という状態まで整理してから渡せばいい。

AIには、その数字をもう一度計算してもらうのではなく、「何が影響した可能性があるのか」「次に確認すべき指標は何か」「対応した方がいい変化なのか」を考えてもらいます。

今の構成では、集計や計算をコード側で済ませ、解釈や判断をAIに任せるようにしています。

データを整形したのは、API代を節約するためだけではない

AIへ渡す情報量を減らしたかった理由の一つは、OpenAI APIの利用料です。

APIは使った量に応じて料金が発生するので、大量の生データを毎回渡せば、その分だけ利用量も増えます。

まだ業務でどこまで使えるのか分からない段階で、必要のない情報まで毎回AIに読ませる構成にはしたくありませんでした。

ただ、実際にデータを整理してみると、コスト以外にも理由がありました。

例えば、

「Organic Searchのセッションが前週比20%増加。その増加の大半は3ページ。問い合わせ数は前週と変わらない」

というところまで整理されていれば、AIが考えるべき対象はかなり明確になります。

何百行ものGA4データをそのまま渡した場合は、AI自身がまずそこを探さなければなりません。

これは人がウェブ解析をするときにも似ています。

生データを見ることと、判断に必要な情報を見ることは同じではありません。

AIにどれだけ多くのデータを渡せるかより、判断するために必要な情報をどう作るかの方が、今回の実装では難しい部分でした。

AIには、計算よりも解釈を任せたい

作り始めた当初は、AIにデータを渡せば、そのまま全部分析してもらえばいいというイメージも多少ありました。

実際に組んでみると、全部をAIへ寄せる必要はありませんでした。

条件に合うデータを抽出したり、数字を比較したり、増減率を計算したりする処理は、普通のプログラムの方が向いています。

一方で、「この変化をどう考えるか」「今週どこを優先するか」「追加で何を確認した方がいいか」といった部分は、AIを使う意味があります。

この使い分けは、普段のウェブ解析にもかなり近いものがあります。

ウェブ解析も、数字を集めるところで終わってしまえばレポート作成です。実際に価値があるのは、その数字をどう読み、次の改善をどう判断するかだと考えています。

今回のAIも、その判断を助けるところで使いたいと思っています。

MCPにつないだあと、チャット型のアプリまで作った

MCPまでつなぐと、AIから自社データを呼び出せる状態になります。

ただ、実務で日常的に使うことを考えると、毎回どのツールを呼ぶか意識しながら操作するのは面倒です。

例えば、

「今週のサイトはどうだった?」

と聞けば、必要なデータを取りに行ったうえで答えてほしい。

そこで現在は、Cloud Run上にマーケティング用のチャット型アプリケーションも実装しています。

人が質問すると、その内容に応じて必要なデータを取得し、AIが回答するところまで動くようになりました。

現時点では人からの質問が起点ですが、GA4やSearch Consoleをそれぞれ開いて情報を集めなくても、会話の中から必要なデータへアクセスできる状態にはなっています。

下の画像は、実際のチャット画面です。GA4のデータは9/24以降のデータを正として扱うようにしているので、チャットしている時点では前日データが入っておらず読み込めてません。ただし、それを「ゼロ実績」ではなく取得不可を取得不可として認識し保留扱いにしています。
実はこれも苦労した所で、推計が行き過ぎるとデータなし=数値0と捉えることもあるため、わざわざ「データなし≠数値0であり、データ取得ができない場合は保留にする」というロジックを組みました。

自作したマーケティングチャットに「今週どんな感じ?」と質問し、Search Consoleの状況や優先アクションを回答している画面
実装したマーケティングチャットの回答例。「今週どんな感じ?」と聞くと、取得できたデータをもとに状況整理と優先アクションを返す。GA4が取得できていない場合は、無理に評価せず確認事項として扱うようにしている。

ChatGPT Plusを契約していても、OpenAI APIは別料金だった

今回、一つ分かりづらかったのが料金です。

普段使っているChatGPT Plusを契約していても、自作したアプリから利用するOpenAI APIの料金は別に発生します。

今回は動作確認用として、5ドル分のAPIクレジットを購入しました。

現時点では、もともと契約していたChatGPT Plusを使い続け、Google Cloudは無料枠を中心に利用し、OpenAI APIだけ少額を追加しています。

もちろん、この先エージェントを定期実行するようになれば、実行回数や扱うデータ量によって費用は変わります。

なので、「無料でAIシステムを作った」という話ではありません。

一方で、使い物になるか分からない段階でChatGPTの上位プランへ変更したり、新しい月額サービスをいくつも契約したりせず、API・MCP・チャット型アプリまで試せたのは、自社で検証するうえでは大きなメリットでした。

ツールありきではなく、必要になったところから足していった

今回、最初に「どのAIサービスを導入するか」を決めたわけではありません。

まず、自社データをAIから使いたかったのでAPIを整えました。そのAPIをChatGPTから扱うためにMCPを追加し、毎回ツールを意識して使うのが面倒だったのでチャット画面を作りました。

順番としては、ずっと「次に何が必要か」から決めています。

AIエージェントや自動化のSaaSを使えば、もっと簡単に実現できる部分もあると思います。

ただ、自社の場合は、そもそもどの機能を日常的に使うのかもまだ分かっていませんでした。

その状態で先に月額サービスを契約するより、実際の仕事に合わせて必要な部分を足していく方が、今回の検証には合っていました。

現在は、まだ人が質問しないと動かない

ここまでで、自社データを取得し、その内容をもとにAIが回答するところまでは動いています。

ただ、現段階では人が質問しなければ何も始まりません。

次に作ろうとしているのは、この「人が質問する」というきっかけも自動化した仕組みです。

例えば毎週決まったタイミングでデータを取得し、前週から大きな変化がないかを確認する。改善した方がよさそうな点があれば提案し、人の判断が必要なものだけ確認を求める。

記事やSNS投稿についても、テーマ選定や下書き作成まで進められるかもしれません。

どこまでAIに任せると便利なのか、どこから人が判断した方がいいのかは、実際に動かしながら決めるつもりです。

次は、自律型のマーケティングAIを作る

今回作ったのは、AIエージェントそのものというより、その前段の基盤です。

自社のマーケティングデータをAPIから取得できるようにし、MCPを使ってAIから呼び出せるようにしました。

その途中で、AIへ渡す前にデータを整理する処理も組み込み、現在はチャット型のアプリケーションから使えるところまで来ています。

次はこの仕組みを使って、人から質問されなくても定期的にマーケティング業務を進める自律型エージェントを作る予定です。

実装してみないと分からないことは、まだかなりあります。

本当に作業時間が減るのか。
毎週の改善提案は使い物になるのか。
自動化しすぎると、逆に判断しづらくならないか。

続編では、そのあたりも含めて実際に検証してみます。

まとめ

今回の検証では、ChatGPT Plusをそのまま使い、Google Cloudの無料枠を中心に、追加費用としてOpenAI APIの5ドル分を購入しました。

その環境で、自社データを扱うAPI、AIから利用するためのMCP、会話から利用できるチャット型アプリケーションまで実装しています。

作業の中で特に時間がかかったのは、APIやMCPをつなぐことよりも、AIに何を渡すかを決めることでした。

大量の生データをそのまま渡すのではなく、計算や集計はコード側で処理し、AIには判断に必要な情報だけを渡す。

今のところ、この構成であれば、AIの利用量を抑えながら、自社サイトの分析にも使えそうです。

まだ「人が質問すると答える」段階なので、次は人の操作をきっかけにせず、AI側から定期的に仕事を始める仕組みを作ります。

どこまで実務で使えるのかは、そこからが本番です。