ブログやSNSの運営データを一か所へ集め、将来的にAIで分析するための「全媒体データ分析基盤」を作っています。
前回までに、Googleスプレッドシート中心だった仕組みをPython+SQLiteへ作り直しました。次に取り組んだのが、実際のデータを取得するためのAPI連携です。
今回接続したのは、WordPress・GA4・Google Search Console・Bing Webmaster Tools・YouTubeの5つです。
始める前は「APIがあるならPythonから呼び出せばよい」と考えていました。しかし実際には、コードを書くこと以上に、認証・権限・ID・取得項目・保存方法を整理する作業が重要でした。
この記事では、5つのサービスをPythonからつなぐまでに行ったことを、実践記録として整理します。
この記事で分かること
- 5媒体をPythonへ接続するまでの流れ
- API連携で認証や権限が重要な理由
- API取得とデータベース設計の関係
- Codexを使って開発して分かったこと
最初に「取得」と「保存」を分けた
今回のシステムでは、すべてを一つのPythonプログラムへ詰め込まず、
APIから取得 → データを整形 → SQLiteへ保存 → 集計 → 出力 → AI分析
という役割に分けました。
さらにWordPress、GA4、Search Consoleなど、媒体ごとに取得処理を分離しています。
こうしておけばYouTube側で問題が発生しても、WordPressやGA4まで修正する必要はありません。将来SNSを追加するときにも拡張しやすくなります。
WordPress|分析の基準となる記事情報を取得
最初に接続したのがWordPressです。
WordPress REST APIでは、投稿ID、タイトル、URL、公開日、更新日、カテゴリーなどの記事情報を取得できます。公式APIにも投稿を取得するエンドポイントが用意されています。 (WordPress Developer Resources)
ここで、自分で管理する記事NoとWordPressの投稿IDは分けることにしました。
記事NoはSNSや動画まで含めたコンテンツ管理用、投稿IDはWordPress内部の識別子です。
今後、
記事 → SNS投稿 → 動画 → UTM → GA4流入
まで追跡するには、WordPressだけに依存しない共通の管理番号が必要だと考えたためです。
また、以前の開発ではREST APIへのアクセスがサーバー側のWAFで遮断された経験もありました。API連携ではコードだけでなく、通信を受ける側の設定も確認する必要があります。
GA4|認証とプロパティ設定を確認
次はGA4です。
GA4のData APIでは、対象プロパティと期間を指定し、ディメンションと指標を組み合わせてレポートを取得できます。 (Google for Developers)
今回取得したいのは、日付やページに対するユーザー、セッション、表示、エンゲージメントなど、ブログ分析に必要なデータです。
ただし、Pythonコードを書くだけでは動きません。Google側のAPI設定、認証情報、対象プロパティなどを正しく設定する必要があります。
さらに重要なのが、取得できる数字を全部保存しないことでした。
「後から何を分析したいか」を先に決め、必要な指標を選びます。そしてGA4のページ情報をWordPressの記事マスタと結び付けられるようにします。
Search Console|検索されるまでのデータを取得
Search ConsoleもGoogleのサービスですが、GA4とは別のAPIとして接続します。
Search Analytics APIでは、期間やディメンションを指定し、検索パフォーマンスを取得できます。ページや検索クエリなどを軸に分析することも可能です。 (Google for Developers)
特に残したかったのが検索クエリです。
「自分が狙ったキーワード」ではなく、「Googleが実際にどの検索に対して記事を表示したのか」を後から分析できるためです。
なお、Search Console APIを利用するには対象プロパティへの権限も必要です。 (Google for Developers)
Bing|Googleとは別の検索データとして保存
Bing Webmaster Toolsも接続しました。
Bing Webmaster APIでは、登録サイトの検索・インデックス関連情報などへプログラムからアクセスできます。Microsoftは現在、OAuth 2.0またはAPIキーによるアクセス方法を案内しています。 (Microsoft Learn)
ここで注意したいのは、GoogleとBingを無理に同じ数字として扱わないことです。
どちらも検索エンジンですが、APIの仕様や返されるデータは異なります。それぞれの観測値として保存し、後から比較できる形にします。
また、Bing Webmaster APIでは旧SOAP・POX APIが2026年8月31日で廃止予定と案内されているため、新しい基盤ではREST APIを前提にする必要があります。 (Microsoft Learn)
YouTube|動画と元記事を結び付ける
YouTubeでは、動画情報や再生数、高評価数などの統計情報をAPIから取得できます。 (Google for Developers)
ただ、今回重要なのは数字の取得だけではありません。
AI Business Labでは、一つのブログ記事から複数のショート動画を作る運用を考えています。
そのため、
記事No.0065 → 動画A・B・C・D・E
という関係をデータベース側へ保存します。
これによって将来、「Google検索では弱いがYouTubeでは反応が良いテーマ」のような媒体横断分析が可能になります。
API連携で一番苦労したのはコード以外だった
5媒体を接続して分かったのは、認証できたことと、必要なデータを取得できることは別だということです。
実際には、APIの有無、認証方式、利用権限、プロパティIDやチャンネルID、取得項目、レスポンス構造、内部IDとの紐付け、重複保存の防止などを一つずつ確認する必要がありました。
「データが返ってきた」で終わりではありません。
毎日実行できるか、失敗したらどうするか、同じ期間を再取得しても二重登録されないかまで考えて、ようやく運用できる取得処理になります。
Codexを使っても人間側の理解は必要だった
今回の実装ではCodexも利用しています。
コード作成だけでなく、エラーが発生したときに認証、環境変数、APIレスポンス、SQLiteの設計などを確認しながら修正できるのは大きな助けになりました。
一方で、AIへ任せれば仕組みを理解しなくてもよいわけではありません。
「何のIDなのか」「何を取得しているのか」「どこへ保存されるのか」
を自分でも把握していないと、接続後のシステムを管理できません。
AIで実装速度を上げながら、人間は設計と判断を担う。この役割分担が今回の開発では重要だと感じています。
まとめ
今回、PythonからWordPress・GA4・Search Console・Bing・YouTubeへ接続し、全媒体データ分析基盤へデータを取り込む入口を作りました。
実際にやってみると、API連携は単にPythonで数字を取得する作業ではありませんでした。
認証・権限・ID・取得項目・データ構造・保存先まで一つの流れとして設計することが重要です。
そして5媒体がつながったことで、ようやく「検索」「ブログアクセス」「動画」を同じ基盤から分析する準備が整ってきました。
次に必要なのは、取得した数字を保存するだけでなく、記事・SNS投稿・動画・UTM・アクセスをどう結び付けるかです。
API接続はゴールではなく、AIによる横断分析へ進むための入口でした。

