広告を3種類出したのに、どれが効いたのか分からない。メルマガを送った日は申し込みが増えたのに、解析画面ではメール流入がほぼゼロになっている。
心当たりはありませんか。
その原因は、解析ツールの性能不足ではありません。多くの場合、犯人はリンクURLの作り方のほうにあります。
この記事では、UTMパラメータの仕組みと、実務で破綻しない付け方を、順を追って説明します。専門知識がなくても、読み終えたその日から使える形にまとめました。
UTMパラメータとは、URLに貼る流入元の名札
UTMパラメータとは、リンク先のURLの後ろに付け足す、流入元を示すための目印のことです。決まった名前のキーと、自分で決めた値を、? と & でつないで並べます。
たとえば7月のメールマガジンに載せるリンクなら、こうなります。
https://example.com/lp?utm_source=newsletter&utm_medium=email&utm_campaign=2026_07_summer
? から後ろがUTMパラメータです。表示されるページの中身は何も変わりません。
変わるのは、解析ツールに届く情報だけです。このURLをクリックして来た人は、メールマガジン経由の訪問者として集計されます。
UTMという名前はUrchin Tracking Moduleの略で、Google Analyticsの前身にあたるツールの名残です。今では特定のツール専用ではなく、ほぼすべての解析ツールが共通で読み取れる事実上の標準になっています。
リファラだけでは足りない理由
そもそも、なぜわざわざURLを長くする必要があるのでしょうか。ブラウザには、ページを移動するときにリファラ(直前にいたページのURL)を送る仕組みがあるからです。
解析ツールはこのリファラを見て、検索エンジンから来たのか、SNSから来たのかを自動で判断しています。ふだんの流入元レポートは、この情報で成り立っています。
ただ、リファラは案外もろい情報です。次のようなケースでは、丸ごと欠けてしまいます。
- iPhoneのメールアプリやOutlookアプリなど、ブラウザ以外から開かれたリンク
- QRコード、紙のチラシ、口頭で伝えたURLなど、そもそもWebページを経由しない流入
- 広告の配信サーバーを何度も経由して、途中で情報が落ちるケース
これらは軒並み直接流入、つまりURLを直接入力して来た人と同じ扱いになります。あれだけ手間をかけたメール施策が、解析画面では何もしていないのと同じ見た目になるわけです。
UTMパラメータは、この欠落を埋めるための自己申告です。ブラウザ任せにせず、リンクを配る側が名札を付けておく。
それだけで、消えるはずだった流入が正しい箱に入ります。
5つのパラメータと、値の書き方のルール
UTMパラメータは全部で5種類あります。ただし、いきなり5つ全部を使う必要はありません。
最初は3つで十分です。まずは全体像を表で押さえてください。
| パラメータ | 表すもの | 値の例 |
|---|---|---|
| utm_source | どこから来たか(具体名) | newsletter google x |
| utm_medium | どんな手段か(種類) | email cpc social |
| utm_campaign | どの施策か | 2026_07_summer |
| utm_content | 同じ施策の中のどれか | header_btn footer_link |
| utm_term | 検索キーワード(検索広告用) | web_analytics |
必ず付ける3つ
sourceとmediumとcampaignは、セットで考えます。この3つが揃って初めて、あとから見返せるデータになります。
utm_sourceには、送り出し元の具体名を書きます。メルマガならnewsletter、X(旧Twitter)ならx、提携先のブログならpartner_blogといった具合です。
utm_mediumには、その手段の種類を書きます。sourceが固有名詞なら、mediumは分類名だと考えてください。
ここが一番混乱しやすいところです。sourceは無限に増えていい、mediumは10種類以内に抑える。
この非対称を意識すると、設計がぶれません。
utm_campaignには、施策の名前を入れます。夏のキャンペーン、資料請求強化週間、そういった単位です。
後から検索しやすいように、日付を先頭に入れておくと便利です。2026_07_summerのように書いておけば、一覧を並べたときに時系列で整います。
余裕があれば付ける2つ
utm_contentは、同じ施策の中でどのリンクがクリックされたかを分けるためのものです。メール本文の上部ボタンと文末リンク、どちらが押されているのか。
これを知りたいときに使います。
utm_termは検索連動広告のキーワードを記録するための欄です。広告管理画面側で自動的に付与されることが多いので、手で書く機会はあまりありません。
迷ったら、contentまで付けておくと後悔が減ります。あとから分けることはできませんが、分けて取ったものを合算するのはいつでもできるからです。
値は小文字とアンダースコアで統一する
UTMの失敗の8割は、パラメータの種類の話ではありません。値の書き方が人によってばらつくことです。
半年後に解析画面を開いたら、emailとEmailとe-mailとmailが別々の行に並んでいた。これは本当によく起きます。
そこで、値はすべて小文字にしてください。多くの解析ツールは大文字と小文字を別の値として扱います。
Googleとgoogleに分裂したデータほど虚しいものはありません。
単語をつなぐときは、スペースではなくアンダースコア(_)かハイフン(-)を使います。どちらでも構いませんが、社内でどちらか一方に決め切ることが大事です。
スペースは避けてください。URLの中でスペースは%20という記号に変換されてしまい、レポートが読みづらくなります。
日本語も避けたほうが無難です。技術的には使えますが、URLをコピーしたときに長い記号列に化けて、原型をとどめなくなります。
mediumは辞書を作って固定する
mediumだけは、使ってよい値をあらかじめ決めて、そこから選ぶ運用にします。ここが揺れると、チャネル比較そのものが成り立たなくなるからです。
たとえば次のような対応表を作って、共有ドキュメントに貼っておきます。
| 施策の種類 | utm_medium | utm_sourceの例 |
|---|---|---|
| リスティング・ディスプレイ広告 | cpc |
google yahoo |
| メールマガジン・ステップメール | email |
newsletter onboarding |
| SNSの通常投稿 | social |
x instagram |
| 提携先サイト・記事広告 | referral |
partner_blog |
| オフライン(QR・チラシ・名刺) | offline |
flyer_a card |
この5行から選ぶ、というルールにするだけで、集計はぐっと安定します。新しい種類が出てきたら、勝手に増やさず表を更新してから使う。
ここを守れるかどうかが分かれ目です。
広告については、少し事情が違います。Google広告などはクリック時にgclidのような識別子をURLへ自動で付けるため、UTMが無くても広告流入として分類できるツールがあります(Strideもこの識別子を見て広告と判別します)。
とはいえ、識別子だけではどのキャンペーンのどのクリエイティブかまでは分かりません。広告にもUTMを併記しておくほうが安全です。
なお、流入元の分類そのものについては 流入元の正しい見方|検索・広告・メール・SNSを分けて計測する で詳しく整理しています。UTMを設計する前に一度目を通しておくと、mediumの粒度を決めやすくなります。
よくある失敗と、その避け方
ルールを決めても、実際に運用すると事故は起きます。頻度の高いものから見ていきましょう。
自社サイト内のリンクに付けてしまう
これが最も多く、最も被害の大きい失敗です。トップページから料金ページへのリンクに、社内キャンペーン管理のつもりでUTMを付けてしまうケースがあります。
何が起きるか。多くの解析ツールは、UTM付きのURLを踏んだ時点で新しいセッションの始まりとみなします。
つまり、自分のサイトの中を移動しているだけなのに、そこで訪問が切れて、別人のような扱いになるのです。ファネルの途中がぶつ切りになり、最初の流入元も上書きされます。
UTMは、外部から自分のサイトに人を連れてくるリンクだけに付ける。サイト内のリンクには絶対に付けない。
これは例外なしのルールだと考えてください。
サイト内のどのボタンが押されたかを知りたいなら、UTMではなくクリックイベントの計測を使います。Strideの場合はボタンやリンクのクリックを自動で取得するので、URLをいじる必要はありません。
リダイレクトの途中でパラメータが消える
短縮URLサービスや、社内のリダイレクト設定を経由すると、UTMが落ちてしまうことがあります。転送先のURLだけが指定されていて、クエリ文字列を引き継ぐ設定になっていない場合です。
対策はシンプルで、実際にクリックして最終的なURLを目視すること。ブラウザのアドレスバーにutm_source=が残っていれば成功です。
新しい配信ツールや短縮URLを使い始めるときは、必ず一度この確認をしてください。数十秒で終わりますし、これを飛ばして1か月分のデータを失う例は珍しくありません。
SNSでシェアされて値が伝播する
UTM付きのURLをそのままSNSに投稿すると、それを見た人がURLごとコピーして拡散します。結果として、まったく関係ない経路から来た人まで、メルマガ経由として記録されてしまいます。
完全には防げませんが、影響を小さくする工夫はあります。シェアされやすいコンテンツにはUTMを付けない、あるいはcampaign名を見て明らかに不自然な流入があれば期間を区切って除外する、といった運用です。
そもそも、UTMは厳密な計測装置ではありません。方向性を掴むための道具として扱うほうが、精神衛生上も健全です。
メール施策に付け忘れて、まるごと埋もれる
被害額で言えば、これが最大かもしれません。前半で書いたとおり、パソコンやスマホのメールアプリから開かれたリンクには、リファラが付きません。
つまりUTMを付けていないメール配信は、ほぼ確実に直接流入へ吸い込まれます。開封もクリックも起きているのに、解析画面では何も起きていないように見えるわけです。
一方、GmailやYahoo!メールのWeb版から開かれた場合は、リファラが残ります。ただしここにも罠があって、Gmailのドメインを検索エンジンと誤って分類し、メール流入を検索流入として数えてしまうツールがあります。
Strideは、WebメールのドメインをメールとしてまとめたうえでUTMのutm_medium=emailも同じ箱に入れるので、アプリ経由でもWeb版経由でもメール流入として揃います。とはいえ、これはツールの話です。
どのツールを使うにせよ、メール本文のリンクにUTMを付けるという一手間だけは、送り手側でやるしかありません。テンプレートの時点で埋め込んでおくのが、いちばん確実です。
実務での作り方と管理のしかた
理屈が分かったら、次は手を動かす番です。作り方は大きく2つあります。
ひとつは、Webの生成ツールに入力して出力されたURLをコピーする方法。もうひとつは、スプレッドシートで一括生成する方法です。
配信数が月に数本なら前者で十分です。広告のバリエーションが数十本あるなら、後者を選んでください。
自分でツールを作りたい場合は、ブラウザの標準機能だけで書けます。次のコードは、ベースURLとパラメータを渡すと完成形のURLを返す小さな関数です。
function buildUtmUrl(base, { source, medium, campaign, content }) {
const url = new URL(base);
const norm = (v) => String(v).trim().toLowerCase().replace(/\s+/g, '_');
url.searchParams.set('utm_source', norm(source));
url.searchParams.set('utm_medium', norm(medium));
url.searchParams.set('utm_campaign', norm(campaign));
if (content) url.searchParams.set('utm_content', norm(content));
return url.toString();
}
buildUtmUrl('https://example.com/lp', {
source: 'Newsletter',
medium: 'Email',
campaign: '2026 07 Summer',
content: 'header_btn',
});
// => https://example.com/lp?utm_source=newsletter&utm_medium=email&utm_campaign=2026_07_summer&utm_content=header_btn
大事なのは、小文字化とスペース置換を関数の中に閉じ込めていることです。人間が毎回気をつけるのではなく、仕組みで表記ゆれを潰す。
これが長続きするコツです。
そして、発行したURLは必ず一覧で残してください。発行日、campaign名、配信先、URL本体。
この4列があれば、半年後の自分が助かります。
管理表がないと、campaign名を思い出せずにsummer2のような苦しい名前が増えていきます。数字が増えるたびに、分析の解像度は下がります。
付けたあと、数字をどう読むか
UTMを整えると、それまで見えなかった差がはっきりします。ここが一番おもしろい部分です。
たとえば、同じ商品を告知した2つの施策があったとします。数字を並べてみましょう。
メルマガ(utm_medium=email)は、クリック800回に対して申し込み32件。CVRは4.0%です。
一方、SNS広告(utm_medium=cpc)は、クリック5,000回に対して申し込み50件。CVRは1.0%でした。
件数だけ見れば広告のほうが多く見えます。しかし1件あたりの効率は4倍の差です。
広告費が1クリック60円なら、50件の申し込みに30万円かけている計算になります。1件あたり6,000円。
この金額を許容できるかどうかが、次の判断材料になります。
UTMを付けていなければ、この800回と5,000回は同じ直接流入の山に混ざり、平均CVR1.4%という何も語らない数字になっていたはずです。分けて測るからこそ、どこに予算を寄せるかを判断できます。
さらに一段深く見るなら、流入からコンバージョンまでの経路を追います。広告のほうはクリック直後の離脱が多いのか、それともフォームで詰まっているのか。
Strideでは、流入元ごとにファネルの到達率を出せるので、メール経由と広告経由でどのステップの通過率が違うのかを並べて確認できます。広告費の配分を考える前に、この比較を一度やっておくと判断が早くなります。
【関連記事】広告の費用対効果をもう一段掘り下げたい方は 広告のROIを上げる|LPとファネルで「無駄打ち」を減らす もあわせてどうぞ。メール施策の測り方は メールマーケの効果測定|「開封率」の先を見る で扱っています。
まとめ
UTMパラメータは、難しい技術ではありません。URLの後ろに数十文字を足すだけです。
難しいのは、それを全員が同じルールで、毎回続けることのほうです。
最後に要点を3つだけ。値は小文字で統一する。
mediumは決めた辞書から選ぶ。そして、サイト内リンクには絶対に付けない。
この3つを守るだけで、半年後のレポートの読みやすさが変わります。今日配信するメールのリンクから、さっそく試してみてください。