ブログ・検索・SNS・動画のデータを一か所へ集め、最終的にAIで横断分析する「全媒体データ分析基盤」を作っています。
これまでWordPress、GA4、Google Search Console、Bing、YouTubeなどをPythonから取得し、SQLiteへ保存するところまで進めてきました。
次に考えているのが、SNSの反応とブログへの流入をどうつなぐかです。
SNSでは表示回数や再生数を確認できます。しかしブログ運営という視点では、「その投稿から実際に何人がブログへ来たのか」も知りたいところです。
そこで現在、
SNS投稿 → UTM付きリンク → ブログ訪問 → GA4
という流れを投稿単位で追える仕組みを考えています。
今回は完成したシステムではなく、これからPinterestやInstagramなども追加することを想定した設計段階の記録です。
この記事で分かること
- SNS内の反応とブログ流入を分けて考える理由
- UTMを使って流入元を識別する仕組み
- 記事NoとSNS投稿をつなぐ考え方
- 投稿単位で分析するためのデータ構造
- 将来AIにSNSとブログを横断分析させる方法
SNSの数字だけではブログへの貢献は分からない
例えばYouTube Shortsを投稿して、5,000回再生されたとします。
YouTube上での反応としては重要な数字ですが、それだけではブログへ読者を連れてきたかは分かりません。
これはXやPinterest、Instagramなどでも同じです。
SNSではよく表示されるもののブログへの流入は少ない投稿もあれば、表示回数は小さくてもブログへ読者を連れてくる投稿もあるはずです。
そのため、
SNS内での成果とブログへの送客成果
は分けて記録した方がよいと考えています。
UTMでSNSからの流入を識別する
そこで利用するのがUTMです。
UTMはURLにパラメータを追加し、どこからアクセスされたのかをGA4で識別しやすくする仕組みです。
Google公式では、utm_sourceで参照元、utm_mediumでメディア、utm_campaignでキャンペーンなどを識別できます。またutm_contentは、異なるクリエイティブなどを区別する用途に利用できます。 (Google ヘルプ)
例えばYouTubeからブログへ誘導する場合、utm_source=youtube、utm_medium=socialのようにルールを決めておけば、GA4側でも流入元を整理しやすくなります。
GoogleもUTMの命名が不統一だと、同じ施策が別々のデータとして扱われる可能性があるため、一貫した命名を推奨しています。 (Google ヘルプ)
全媒体分析では、このルールをSNS投稿を増やす前に決めておくことが重要になりそうです。
媒体だけでなく「どの投稿か」まで追いたい
ただし、YouTubeやPinterestから来たことが分かるだけでは十分ではありません。
例えば一つの記事から、
YouTube Shortsを5本、Pinterest投稿を3件、X投稿を2件作った場合、知りたいのはその中のどの投稿からアクセスされたのかです。
ここまで追えれば、
「同じ記事を紹介しているのに、なぜ投稿Aは送客できて投稿Bはできなかったのか」
という分析ができます。
そこで、記事だけでなくSNS投稿にも内部管理用のIDを持たせる設計にしています。
記事NoからSNS投稿を派生させる
これまでのデータ基盤では、ブログ記事に0001、0002、0003……という「記事No」を付けています。
例えば記事No.0052からPinterest投稿を2件、X投稿を1件作ったなら、
記事0052 → Pinterest投稿01/02、X投稿01
という関係をデータベースへ保存します。
さらに各投稿から使用したリンクを登録すれば、
記事0052 → SNS投稿 → トラッキングリンク → GA4流入
までたどれるようになります。
一つの記事から複数の投稿が生まれても、それぞれを別のコンテンツとして分析できます。
UTM文字列だけに関係を任せない
今回特に重視しているのが、UTMの文字列だけを頼りにしないことです。
例えばutm_content=video_01としておけば、人間なら動画01だと判断できます。
しかし投稿数が数百、数千と増えれば、命名ルールの変更や入力ミスも起こり得ます。
そこで、
SNS投稿ID
→ UTM設定
→ 発行したリンク
→ リンク先の記事No
という関係そのものをSQLiteへ保存することを考えています。
Google Analyticsではutm_contentを手動広告コンテンツとして扱えるため投稿・クリエイティブの識別にも利用できますが、データベース側にも確定した対応関係を残しておけば、後からAIに文字列を推測させる必要がありません。 (Google ヘルプ)
分かっている関係は最初からデータとして残す。
これまでのデータ基盤開発でも重視してきた考え方です。
「再生数が多い=ブログへの貢献が大きい」とは限らない
投稿単位でブログ流入まで取得できれば、SNSの見方も変わります。
例えば動画Aが10,000再生でブログ流入10件、動画Bが3,000再生でブログ流入50件だったとします。
動画AはSNS内での認知拡大に強く、動画Bはブログへの誘導に強い可能性があります。
どちらか一方を「優秀」と決める必要はありません。
何に強い投稿なのかを分けて考えられることが重要です。
さらにGA4までつなげれば、ブログへ来た後のエンゲージメントなども確認できます。
すると、
SNS表示 → 反応 → ブログ流入 → 訪問後の行動
という一連の流れとして分析できるようになります。
分からない流入は無理に投稿へ結び付けない
一方、すべてのアクセスを投稿単位まで特定できるとは限りません。
UTMを付け忘れたリンク、過去の投稿、コピーされたURLなどもあります。
こうしたアクセスを、
「YouTubeから来たから、おそらく動画01だろう」
と推測して確定データにすることは避けます。
投稿まで特定できた流入と、特定できない流入を区別して保存します。
分からないものを無理に分かったことにしないという、これまで決めてきた分析ルールをSNSでも維持します。
現在はまだ設計段階
現時点では、YouTubeについてAPIから動画情報や数値を取得できるところまで進んでいます。
ただし、各動画と元記事との関係や、UTMを使った投稿単位の流入分析はまだ本格運用していません。
PinterestやInstagramなども今後追加する予定です。
だからこそ、投稿数がさらに増える前に、
記事No・投稿ID・UTM・リンク・GA4
の関係を決めておく意味があります。
後から数百件の投稿について「これはどの記事から作ったものだったか」と復元するより、作成時点で関係を記録した方が確実です。
将来はAIに投稿単位で分析させたい
この仕組みができれば、最終的にはAIへ、
「ブログ流入につながったSNS投稿は?」
「再生数は少ないが送客効率が高い動画は?」
「同じ記事から作った投稿で反応が違う理由は?」
といった質問ができるようになります。
検索、ブログ、SNSを別々に分析するのではなく、一つのコンテンツが複数媒体を通じてどのように読者へ届いたのかを見ることが、全媒体データ分析基盤の目的です。
まとめ
SNSの表示回数や動画再生数だけでは、その投稿がブログ運営へどのように貢献したのかまでは分かりません。
そこで今後、
記事 → SNS投稿 → UTM・トラッキングリンク → ブログ訪問 → GA4
という関係を記録していきます。
UTMは単なる流入元の識別だけではなく、SNSとブログをつなぐ接点として使えます。
ただし、文字列から後で推測するだけではなく、記事No・投稿ID・発行リンクの関係を最初からデータベースへ残す設計にします。
まだこの部分は完成していません。
しかし投稿が増える前に「何と何をつなぐのか」を決めておけば、将来AIが分析するときにも意味の分かるデータを渡せます。
全媒体データ分析基盤も、数字を集めるシステムから、読者がどの投稿を経由してブログへたどり着いたのかを記録するシステムへ、少しずつ進めていきます。

