Google広告をClaude APIで自動分析

AI駆動型広告自動最適化パイプライン | Portfolio
← Portfolio

広告自動最適化
パイプライン

毎朝定時実行で広告データを収集・AIで分析し、入札額の自動調整とレポート生成まで行うフルスタック自動化システム

プロジェクト概要

⏰ 毎日 AM 6:00 自動実行

広告運用における日々のデータ確認・入札調整・レポート作成をすべて自動化するパイプラインを構築しました。スケジューラーによる定時起動から、広告データの取得・AI分析・スプレッドシートへの書き込みまで、人手を介さずエンドツーエンドで完結します。

パイプライン構成

🕕
Trigger
Cloud Scheduler
🐍
Server
Flask / Cloud Run
📊
Data Source
Ads API
Analysis
Claude API
📋
Output
Google Sheets

主な機能

🎯
入札額の自動最適化

キーワード単位のCPC入札額・キャンペーン予算をAPIで取得し、AI分析結果に基づいて自動更新。

🤖
AI分析レポート生成

100件超のキーワード・検索クエリデータをClaudeが解析し、改善提案レポートを自動生成。

☁️
クラウドネイティブ設計

Cloud RunにデプロイしたFlaskサーバーをCloud Schedulerが毎朝起動。インフラ管理不要。

📈
スプレッドシート自動書き込み

キャンペーン実績・キーワード実績・AIレポートの3シートに分類して毎回追記。

ファイル構成

bid_optimizer.py
入札額・予算の取得と更新を担うクライアント。Claude分析結果を受け取り一括変更を実行。
ads_client.py
広告APIとの通信を管理。キーワード実績・クオリティスコア・検索クエリデータを取得。
claude_client.py
Claude APIへのリクエスト管理。トークン使用量・コスト概算をログ出力する機能も実装。
main.py
Flaskエンドポイント。POST /optimize でパイプライン全体を起動。環境変数は .env から読み込み。

実装のポイント

Claude APIによる大量データの一括分析

1回の実行でキーワード100件・検索クエリ195件のデータをまとめてClaudeへ送信します。初期実装では出力が途中で切れる問題が発生したため、max_tokensを2,000から8,096へ引き上げて解消しました。

# claude_client.py(抜粋) response = client.messages.create( model="claude-sonnet-4-6", max_tokens=8096, # 途中切れを防ぐため拡張 messages=[{ "role": "user", "content": analysis_prompt }] ) # トークン使用量・コスト概算をログ出力 usage = response.usage cost = (usage.input_tokens / 1_000_000 * 3.0 + usage.output_tokens / 1_000_000 * 15.0) print(f"tokens: {usage.input_tokens}in / {usage.output_tokens}out | ~${cost:.3f}")

API仕様変更への追従

開発中に広告APIのバージョンアップによりフィールド名が変更されており、正しいフィールドパスへの修正が必要でした。また、使用ライブラリの major バージョンアップに合わせて設定ファイルへの必須項目追加も行っています。このような外部APIの変更に追従する経験は、実運用を意識した開発の重要な学びとなりました。

環境変数は .env で一元管理し、認証情報をコードに埋め込まない設計を徹底。Cloud Run デプロイ時はシークレットマネージャーへ移行できる構造にしています。

コスト実績

項目 数値
入力トークン / 回 約 23,600
出力トークン / 回 約 3,900
コスト / 回 約 $0.13(約20円)
月額試算(毎日1回) 約 600円 / 月

API呼び出しコストを事前に把握・ログ化する仕組みを組み込んでいるため、運用コストの予測と管理が容易です。

技術スタック

Python 3.x Flask Claude API Google Ads API v17+ Google Sheets API Cloud Run Cloud Scheduler python-dotenv

成果と学び

毎朝の広告確認・調整作業を完全自動化し、運用担当者がスプレッドシートを開くだけでAIの分析レポートと最適化済みの入札設定を確認できる状態を実現しました。

外部APIの仕様変更・ライブラリのメジャーアップデートへの対応、クラウド環境でのセキュアな認証管理など、本番運用を見据えた実装力を養えたプロジェクトです。またAIの出力コストを定量的に把握・ログ化する設計は、AIを組み込んだシステムの運用コスト管理において重要な実践でした。

会計ソフト用に情報を整理する動的プログラム

AI駆動型会計データ変換ツール | Portfolio
← Portfolio

AI駆動型
会計データ変換ツール

Claude APIを活用し、明細データを会計ソフト用CSVへ動的に変換する自動処理システムの開発

プロジェクト概要

会計業務における手作業のデータ入力を自動化するため、Excelの明細書を会計ソフト用インポートCSVへ変換するPythonプログラムを開発しました。単純なルールベース変換に留まらず、Claude APIを組み込んだ動的なパターン学習機能により、相手先や取引内容の多様なバリエーションに柔軟に対応します。

システム構成

Input
📊 入力Excelファイル
Mapping
📋 マッピングCSV
Core Engine
🐍 .py プログラム
AI
✦ Claude API
Output
📄 出力CSVファイル

処理フロー

01
明細データの読み取り

Excelの明細書から「相手先」「入出金区分」「取引内容」「月次」「金額」の各フィールドを抽出します。

02
パターンマッチングと科目判定

マッピングCSVを参照し、相手先・内容に対応する科目コード・科目名・摘要を決定。既知パターン外の取引はClaude APIが補完します。

03
AI動的書き換え

Claude APIが新たなパターンを解析し、処理ロジックを動的に更新。マッピングCSVへの自動追記も行い、次回以降の精度が向上します。

04
会計ソフト用CSVの出力

科目コード・科目名・金額・摘要などの項目を含む、会計ソフトのインポート形式に準拠したCSVを生成します。

主な機能

🔄
動的ルール更新

未知のパターンをAIが解析し、マッピングルールを自動拡張。使うほど賢くなる設計。

📂
マッピングCSV管理

取引パターンと科目の対応表をCSVで管理。人間が直接編集・確認できる透明な構造。

バッチ処理対応

月次の大量明細データも一括処理。API呼び出しは未知パターンのみに絞りコストを抑制。

🎯
高精度な科目分類

入出金区分・相手先・内容を複合的に評価し、適切な勘定科目を自動判定。

実装のポイント

Claude APIによるコード動的生成

このプロジェクトの核心は、単なるデータ変換ではなく「プログラムがプログラムを書き換える」点にあります。新しい取引パターンが登場した際、Claude APIにパターンの特徴と既存コードの構造を渡し、対応する処理ロジックを生成・統合します。

# 新パターン検出時のClaude API呼び出しのイメージ def generate_mapping_rule(unknown_entry, existing_rules): prompt = f""" 以下の取引データに対して会計科目を判定し、 マッピングルールをPythonの辞書形式で返してください。 取引: {unknown_entry} 既存ルール例: {existing_rules[:3]} """ response = client.messages.create( model="claude-sonnet-4-20250514", messages=[{"role": "user", "content": prompt}] ) return parse_and_apply_rule(response.content)

マッピングCSVを「人間が読める設定ファイル」として機能させることで、AIが生成したルールを担当者が確認・修正できる人間とAIの協調設計を実現しています。

技術スタック

Python 3.x Claude API (Anthropic) openpyxl pandas csv module

成果と学び

月次の手作業データ入力が大幅に削減され、入力ミスのリスクも低下しました。また、AIをブラックボックスとして扱うのではなく、CSVというシンプルな媒介を挟むことで処理の可視性と信頼性を両立できることを実感しました。

Claude APIによる動的なコード生成・書き換えは、静的なルールベースシステムの限界を超える新しいアプローチであり、今後様々な業務自動化への応用可能性を感じています。