記事をSNSへ流す運用を始める―X連携の前に投稿方法と候補を確認する

ゆまラボの記事をSNSへ流す前に、X、Bluesky、Threads、Mastodonの投稿方法を現在の公式情報で確認する。リンクプレビュー、投稿、GA4での流入計測を分け、まずXから始めるための前提を確認する。

執筆:ゆまラボ運営者

公開:
記事をSNSへ流す運用を始める―X連携の前に投稿方法と候補を確認する

ゆまラボは、記事を公開して検索から読んでもらうところまでは進めてきた。

Search Consoleを登録し、Google Analyticsも導入した。アクセス解析の記事では、SNSを始めたあとに「Google検索、SNS、直接アクセス、外部サイトのどこから読まれているか」を確認したいという話も書いている。

次に実作業として進めるのはXとの連携。

Xを使うこと自体は決めている。ただ、SNS連携という言葉だけでは範囲が広い。

記事ページにシェアボタンを置くのか。記事公開後に自動投稿するのか。SNS上でリンクカードを表示するのか。Google Analyticsで流入元を分けるのか。

さらにX以外を見ると、Bluesky、Threads、Mastodonにも公式の投稿APIがある。

全部を同時に始めるつもりはないが、Xの実装へ入る前に現在の選択肢を確認しておく。

SNS連携は投稿・リンク表示・流入計測を分ける#

ブログとSNSをつなぐ処理は、大きく3つに分かれる。

1. 記事URLをSNSへ投稿する
2. SNS上でタイトル・説明・画像などを表示する
3. SNSから来たアクセスを計測する

この3つは別の処理。

例えばXへ記事URLを投稿する部分は、Web Intentを使って投稿画面を開く方法と、X APIから自動投稿する方法で実装が違う。

一方、投稿後にURLがどう見えるかは、サイト側のメタデータが関係する。

現在のゆまラボは、ブラウザのDevToolsでHTMLを確認すると、canonical、description、Open Graph、Twitter Card系のmetaが出ている。

ゆまラボのタグ一覧とDevToolsでOpen GraphやTwitter Card系metaを確認している画面

SNSを始めるために、まず記事本文の公開方法を変える必要はない。

Markdownを公開

記事URLができる

SNSへURLを投稿

SNS側がリンク情報を使って表示

読者がクリック

bringain.comへアクセス

Google Analyticsで流入を確認

という経路になる。

ここで投稿方法とアクセス計測を一緒に実装すると分かりにくい。

最初は「Xへ記事を出せること」と「X経由のアクセスを判別できること」を分けた方が確認しやすい。

XはWeb IntentとAPIで役割が違う#

Xには、サイトから投稿画面を開くWeb Intentが現在も用意されている。

公式ドキュメントではhttps://x.com/intent/tweetを使い、ユーザーがX側の投稿画面で内容を確認して投稿する。Web Intent自体にはXアプリの作成、認証情報の保存、投稿権限の取得は必要ない。

これは「この記事をXで共有する」ボタンには向いている。

ただし、ゆまラボ側で記事公開を検知し、自動的にXへ告知する処理とは別。

自動投稿まで行うならX APIを使う。

現在の公式ドキュメントでは新規実装にX API v2が推奨され、投稿作成は次のエンドポイントになっている。

POST https://api.x.com/2/tweets
Authorization: Bearer <access-token>
Content-Type: application/json

本文はJSONのtextで送る。認証にはOAuth 2.0で取得したアクセストークンが必要。

ここで確認しておきたいのが料金。

2026年9月12日時点のX APIは、以前の固定プランではなくpay-per-usage方式になっている。公式料金表では、

Post: Create            $0.015 / request
Post: Create (with URL) $0.200 / request

となっている。

ゆまラボでやりたいのは記事URL付きの告知なので、APIからURL付きPostを作成する場合は現在のPost: Create (with URL)が関係する。

1記事を1回投稿するだけなら大きな金額ではない。ただ、無料だからとりあえず組み込む機能ではなくなっている。

X側も価格は変更される可能性があり、最新価格はDeveloper Consoleで確認するよう案内している。実装時にはもう一度確認する。

このためX連携には少なくとも、

記事ページから読者が共有する
→ Web Intent

記事公開後にゆまラボ側から自動投稿する
→ X API

という2つの候補がある。

次にXを実装するときは、ここを先に決める必要がある。

X以外はBluesky・Threads・Mastodonを候補に残す#

記事URLをテキストと一緒に流す用途に絞ると、X以外にもAPIを持つSNSがある。

現時点で確認できた範囲は以下。

横にスクロールできます
サービス投稿方法URL・リンクカード現時点の扱い
XX API v2 / Web IntentURL付きPost、Web Intent次に連携する
BlueskyAT Protocol / app.bsky.feed.postapp.bsky.embed.externalでWebサイトカードを持てる候補
ThreadsThreads API / OAuth 2.0テキスト中のURL、link_attachmentに対応候補
MastodonPOST /api/v1/statusesstatus本文へURLを含められる候補

Blueskyは投稿そのものがapp.bsky.feed.postというレコードになっている。

URLを投稿するだけでなく、公式ドキュメントにはapp.bsky.embed.externalを使ったWebsite Cardの例もある。URI、title、description、thumbnailを投稿レコード側に持たせる構造で、Xとはリンクカードの扱いが少し違う。

Threadsも公式APIからテキスト投稿ができる。

Metaの公式Threads APIコレクションでは、OAuth 2.0を使い、テキストだけのPostでは本文中の最初のURLをリンクプレビューへ使う方法と、link_attachmentでURLを明示する方法が案内されている。

MastodonはインスタンスごとにAPIのホストは変わるが、公式API仕様には、

POST /api/v1/statuses

があり、ユーザートークンとwrite:statuses権限で投稿できる。

技術的にはどれも「ブログ記事の公開後にURLを投稿する」処理を作れる。

ただ、APIがあることと、ゆまラボで運用する価値があることは別。

X以外はまだ連携を決めていないので、先にアカウントや自動投稿処理を増やす必要はない。Xを動かして、実際の流入と運用負荷を見てから追加すればよい。

SNSからのアクセスはUTMで分ける#

SNSへの投稿を始めるなら、流入の計測方法は最初に決めておきたい。

Google Analyticsはすでに導入している。

過去の人気記事とアクセス解析の記事でも、SNS開始後に流入元を確認することを想定していた。

Google Analyticsでは参照元からSNS流入を見ることもできるが、複数のSNSへ同じ記事を投稿するならUTMを付けておくと区別しやすい。

Googleの公式ヘルプでは、カスタムキャンペーンURLに、

utm_source
utm_medium
utm_campaign

を付ける方法を案内している。

例えばXなら、

https://example.com/blog/example/
?utm_source=x
&utm_medium=social
&utm_campaign=article_publish

Blueskyなら、

https://example.com/blog/example/
?utm_source=bluesky
&utm_medium=social
&utm_campaign=article_publish

という形にできる。

ThreadsやMastodonもutm_sourceだけサービスごとに変える。

GoogleはUTMの値について表記を統一することも勧めている。値は大文字小文字を区別するため、

x
X
twitter
Twitter

のように途中で変えると、分析時に別データとして扱われる可能性がある。

SNS連携を作るなら、投稿処理の中で毎回手入力するのではなく、サービスごとのutm_sourceを決めてURLを生成する方が扱いやすい。

記事ごとの差はリンク先のパスで分かるので、最初から大量のUTMパラメータを追加する必要はない。

最初はXだけで運用を確認する#

候補を調べると、X以外もAPIで投稿できる。

それでも、最初から4サービスへ自動投稿する構成にはしない。

ゆまラボで次に確認したいのは、

記事を公開

Xへ投稿

リンク表示を確認

実際にクリックする

Google AnalyticsでX流入を確認

という1本の経路。

ここまで動けば、同じ考え方をBlueskyやThreadsへ増やせる。

逆に、Xだけでも投稿文を毎回直す、認証の管理が必要、料金が気になる、といった運用上の問題が出るなら、SNS数を増やす前にそちらを修正した方がよい。

現時点で確定しているのはXとの連携。

Bluesky、Threads、Mastodonは「APIがあり、記事URLを配信できる候補」として残す。

次の実装では、XをWeb Intentで扱うのか、APIで自動投稿するのかを決め、実際の投稿とGA4での流入確認まで行う。

参考#