UTMパラメータの付け方:広告・メール・LINE・QRコードのリンクを分ける

公開 更新 書いた人 大林 諒

UTMパラメータは、リンクのURLの後ろに ?utm_source=line&utm_medium=social のような目印を付けて、Googleアナリティクス4(GA4)に「この人はどこから来たか」を教える仕組みです。何も付けないと、LINEの配信から来た人もチラシのQRコードから来た人も、GA4では「直接(Direct)」にまとまり、どの配信が申込につながったのか分かりません。この記事を読み終わると、社内で値の決まりをそろえ、LINE・メルマガ・チラシ・Instagramのリンクを1本ずつ分けて作り、GA4のレポートで配信ごとの申込を数えられるようになります。前提は、GA4のプロパティがあり、サイトの全ページでGoogleタグが動いていることです。画面の名前と仕様は2026年10月時点の公式ヘルプで確かめたものです。

例は、スタッフ6名ほどの予約制の料理教室「サンプル料理教室」のサイト sample-cooking.example(WordPress)です。体験レッスン申込フォームと送信後のサンクスページ /thanks/、電話番号のボタン、LINE公式アカウントの友だち追加ボタン、Instagramへのリンクがあり、体験申込完了・電話タップ・LINE追加をキーイベント(旧コンバージョン)にしています。集客はブログ記事のGoogle検索、Instagram、Google広告とMeta広告、LINEの配信、チラシのQRコードです。

この記事の内容
  1. 先に決めること
  2. 一覧の表
  3. 手順
  4. 応用
  5. できないことと、その代わり
  6. よく詰まるところ
  7. 次にやること

先に決めること

決まりなしで付け始めると、半年後のレポートに LINE line Line公式 が別々の行で並びます。付け始める前に次の5つを決めます。

  • 何を分けたいか。代表が知りたいのは「どの集客から体験申込が来たか」と「LINEのどの配信が効いたか」です。これがそのまま utm_source、utm_campaign、utm_content になります
  • 値の書き方。小文字だけ、つなぎはハイフン、日本語は使わない、のように1枚にまとめます。GA4は値の大文字と小文字を区別し、Instagram と instagram は別の参照元になります
  • utm_medium に入れる値。GA4の「デフォルト チャネル グループ」は主にメディアの値でチャネルを決めます。email と書けば「Email」、social と書けば「Organic Social」に入ります。ここを自由に書くと「未割り当て」が増えるので、使ってよい値を先に絞ります
  • 誰が作るか。LINEは受付、Instagramは講師、チラシは代表と分かれていても、URLは1つの台帳から作ります
  • どこには付けないか。Google広告の広告と、自分のサイトの中のリンクには付けません。理由は後の「Google広告は自動タグ設定に任せる」と「よく詰まるところ」で書きます

一覧の表

UTMの5つと、GA4で増えたもの

Google アナリティクス ヘルプの「URL 生成ツール: カスタム URL でキャンペーン データを収集する」と「トラフィック ソースのディメンション、手動タグ設定、自動タグ設定」に載っているパラメータです。utm_source・utm_medium・utm_campaign の3つは、どのリンクにも必ず付けます。1つでもUTMを付けたリンクで3つがそろっていないと、そろっていない分が「(not set)」になります。

パラメータ何を入れるかサンプル料理教室の例GA4で見えるディメンション
utm_sourceどこから来たか(媒体・サービス名)line instagram newsletter flyerセッションの参照元
utm_mediumどんな種類の経路かsocial email qr paid_socialセッションのメディア
utm_campaignどの配信・施策か2026-11_trial-autumnセッション キャンペーン
utm_content同じ配信の中のどのリンクかbtn-top btn-bottom imageセッションの手動広告コンテンツ
utm_term有料検索のキーワード使わないセッションの手動キーワード
utm_idキャンペーンのID使わないセッションの手動キャンペーン ID
utm_source_platform広告を買ったプラットフォーム使わないセッションの手動参照元プラットフォーム
utm_creative_formatクリエイティブの種類使わない2026年10月時点でレポートに出ない
utm_marketing_tacticターゲティングの種類使わない2026年10月時点でレポートに出ない

下の4つはGA4で使えるようになったものです。utm_id は、Google広告以外の広告費などをGA4に取り込むときに、取り込むデータのIDと突き合わせるためのものです。utm_source_platform は検索広告 360 やディスプレイ&ビデオ 360 を使う会社向けです。utm_creative_format と utm_marketing_tactic は、ヘルプに「現在レポートには含まれない」と書かれています。小さな会社でこの4つが要る場面はまずないので、source・medium・campaign・content の4つだけを使います。

GA4の「トラフィック獲得」レポートで、セカンダリ ディメンションに「セッションの手動広告コンテンツ」を足したところ
GA4の「トラフィック獲得」レポートで、セカンダリ ディメンションに「セッションの手動広告コンテンツ」を足したところ

社内で値をそろえる決まり

この表をそのまま社内の決まりにします。台帳のシートの1枚目に貼っておくと、作る人が迷いません。

決まり書き方だめな例理由
小文字だけinstagramInstagram INSTAGRAMGA4は値の大文字と小文字を区別し、別の行になる
単語のつなぎハイフン trial-autumn空白 trial autumn空白は %20 や + に変わり、読みにくく打ち間違えやすい
日本語を使わないtrial-autumn秋の体験URLが長くなり、変換されて読めない形でコピーされることがある
日付の形2026-1111月 202611 R8.11並べ替えたときに時系列で並ぶ
medium は決めた値だけsocial email qr paid_social organicline sns mail チラシチャネルの定義に当たらない値は「未割り当て」になる
source は媒体の名前line instagram newsletter flyerLINE公式 insta ig同じ媒体が別名で分かれないように1つに決める
campaign は「年月_施策」2026-11_trial-autumn体験 test月ごとに集計しやすく、何の施策か分かる
content は位置か形btn-top image richmenu-trial1 a半年後に見ても、どのリンクか分かる
個人の情報を入れないなしutm_content=tanakaメールアドレスや名前など個人を特定できる値はGA4に送らない

チャネルの定義は大文字と小文字を区別しないので、チャネルで見ると正しいのに参照元で見ると行が割れている、というずれが起きます。

medium の値と入るチャネル

GA4の「デフォルト チャネル グループ」の定義(2026年10月時点)に合わせて、サンプル料理教室で使う値を決めた表です。

入口utm_sourceutm_medium入るチャネル
LINEの配信・リッチメニューlinesocialOrganic Social
メルマガnewsletteremailEmail
Instagramのプロフィール・ストーリーズinstagramsocialOrganic Social
チラシのQRコードflyerqr未割り当て(後の応用で直す)
Meta広告instagram または facebookpaid_socialPaid Social
GoogleビジネスプロフィールのウェブサイトgoogleorganicOrganic Search
SMSの案内smssmsSMS
Google広告付けない(自動タグ設定)付けないPaid Search など

有料の扱いになるのは、メディアが cp を含むか、ppc retargeting か、paid で始まる値です。紙から来る経路を表すメディアは定義に無いので、チラシは何を書いても「未割り当て」です。

LINEの配信をメディア social にするのは、配信も友だち向けの発信で、広告費をかけていないからです。line をメディアに書くと、どの定義にも当たらず「未割り当て」に落ちます。LINEだけを1つのチャネルとして見たい場合は、後の応用で書く「カスタム チャネル グループ」で分けます。

手順

1. 台帳をスプレッドシートに作る

URLは手で打たず、Googleスプレッドシートの台帳で作ります。列は「リンク先URL」「utm_source」「utm_medium」「utm_campaign」「utm_content」「できあがりのURL」「作った人」「使った場所」「使い始めた日」です。

  1. Googleスプレッドシートを新しく作り、1枚目のシートに上の「社内で値をそろえる決まり」の表を貼ります
  2. 2枚目のシートの1行目に、上の列名を入れます
  3. utm_source と utm_medium の列に「データの入力規則」でプルダウンを付け、決めた値しか選べないようにします
  4. 「できあがりのURL」の列(F2)に次の式を入れ、下の行へコピーします
=IF(A2="","",A2 & IF(ISNUMBER(FIND("?",A2)),"&","?") & "utm_source=" & ENCODEURL(LOWER(B2)) & "&utm_medium=" & ENCODEURL(LOWER(C2)) & "&utm_campaign=" & ENCODEURL(LOWER(D2)) & IF(E2="","","&utm_content=" & ENCODEURL(LOWER(E2))))

この式は、リンク先URLにすでに ? があれば & でつなぎ、無ければ ? で始めます。値は LOWER で小文字にそろえます。リンク先URLにページ内の位置を示す #access のような部分が付いていると、UTMが # の後ろに入って読まれないので、A列には # を含まないURLを入れます。

UTM台帳のスプレッドシートで、プルダウンの付いた列と、できあがりのURLの列
UTM台帳のスプレッドシートで、プルダウンの付いた列と、できあがりのURLの列

2. Campaign URL Builder で1本作って確かめる

台帳の式が正しいかを、Googleの公式のURL生成ツール Campaign URL Builder で作ったURLと見比べて確かめます。画面は英語です。

  1. Campaign URL Builder を開き、上のタブが「Web」になっていることを確かめます(「Play」はAndroidアプリ用です)
  2. 「website URL」に https://sample-cooking.example/lesson/trial/ を入れます
  3. 「campaign source」に line、「campaign medium」に social を入れます。アスタリスクが付いた必須の欄は website URL・campaign source・campaign medium の3つです
  4. 「campaign name」に 2026-11_trial-autumn、「campaign content」に btn-top を入れます。campaign name の下には「One of campaign name or campaign id are required.」と出ていて、campaign name か campaign ID のどちらかも必須です。ここでは campaign name を入れるので、「campaign ID」(説明は「The ads campaign id.」)と「campaign term」は空のままにします
  5. 下の「generated URL」に出たURLを、右のコピーのアイコンでコピーし、台帳の同じ行のURLと一字ずつ見比べます
  6. 「Set campaign parameters in the fragment portion of the URL」のチェックは入れません。ツール自身が「not recommended」と書いている設定です

画面の欄は、campaign source が utm_source、medium が utm_medium、name が utm_campaign、ID が utm_id、term が utm_term、content が utm_content に入ります。

できあがりは次の形です。

https://sample-cooking.example/lesson/trial/?utm_source=line&utm_medium=social&utm_campaign=2026-11_trial-autumn&utm_content=btn-top

「Shorten link」の短縮ボタンは Bitly のアカウントとつなぐ必要があります。短縮URLは短縮サービスの側で切れるとリンクごと使えなくなるので、印刷物や常設のリンクには使いません。

Campaign URL Builder の入力欄と、下に出た generated URL
Campaign URL Builder の入力欄と、下に出た generated URL

3. LINEの配信ごとに分ける

サンプル料理教室では、LINE公式アカウントから月に2〜3回の配信と、常に出ているリッチメニュー、友だち追加直後のあいさつメッセージがあります。配信ごとに utm_campaign を変え、同じ配信の中のリンクを utm_content で分けます。

送るものutm_campaignutm_contentリンク先
11/5 秋の体験レッスン案内(上のボタン)2026-11_trial-autumnbtn-top/lesson/trial/
11/5 秋の体験レッスン案内(画像)2026-11_trial-autumnimage/lesson/trial/
11/5 秋の体験レッスン案内(下のボタン)2026-11_trial-autumnbtn-bottom/lesson/trial/
11/20 年末のパン講座の案内2026-11_bread-yearendbtn-top/lesson/bread/
リッチメニューの「体験申込」richmenurichmenu-trial/lesson/trial/
リッチメニューの「料金」richmenurichmenu-price/price/
あいさつメッセージgreetingbtn-top/lesson/trial/

utm_source はすべて line、utm_medium はすべて social です。

  1. 配信を作る前に、台帳に配信の行を足し、できあがりのURLをコピーします
  2. LINE公式アカウントの管理画面で「メッセージ配信」の作成画面を開き、本文やボタンのリンクにURLを貼ります
  3. テスト配信を自分のスマートフォンに送り、リンクを押して開いたページのアドレスバーに utm_ が残っているかを見ます
  4. 本配信を送り、台帳の「使った場所」と「使い始めた日」を埋めます
  5. リッチメニューとあいさつメッセージは、一度だけ同じ手順でURLを差し替えます。常設のリンクは月が変わっても richmenu greeting のまま変えません

実際に運用していると、LINEのアプリの中でリンクを開いた人は参照元が渡らないことが多く、UTMを付けていない配信は「直接」に入ります。ボタンが1つの配信にも utm_content を付けておくと、ボタンを2つにしたときに上と下を比べられます。

LINE公式アカウントのメッセージ配信の作成画面で、ボタンのリンクにUTM付きのURLを貼ったところ
LINE公式アカウントのメッセージ配信の作成画面で、ボタンのリンクにUTM付きのURLを貼ったところ

4. メルマガ

体験レッスンに来た人へ月1回送っているメルマガは、utm_source を newsletter、utm_medium を email にします。メディアが email なので、チャネルは「Email」に入ります。

  1. 台帳に 2026-11_newsletter のような月ごとの campaign で行を足します
  2. メール本文のリンクを、記事ごと・ボタンごとに utm_content で分けたURLにします
  3. 配信ツールにGoogleアナリティクス用のパラメータを自動で付ける機能がある場合は、どちらか一方だけにします
  4. テストメールを送り、リンクを押してアドレスバーを確かめます

メールソフトから開かれたリンクも参照元が渡らないことがあり、UTMが無いと「直接」に入ります。

5. チラシのQRコード

チラシは刷った後に直せないので、UTM付きのURLをそのままQRコードにし、慎重に確かめます。

  1. 台帳に、utm_source flyer、utm_medium qr、utm_campaign 2026-11_flyer-station(配った場所が分かる名前)の行を足します
  2. 配る場所や版が違うチラシは utm_campaign か utm_content を変えます。駅前で配るものと教室の店頭に置くものを flyer-station と flyer-shop で分ける、のようにします
  3. できあがりのURLをQRコードの作成ツールに入れて画像を作ります
  4. 画像を画面に表示して、自分のスマートフォンのカメラで読み取り、開いたページのアドレスバーに utm_ が残っているかを確かめます
  5. 印刷の入稿データに入れる前に、もう一度読み取って確かめます

URLが長いとQRコードが細かくなり、小さく刷ると読み取りにくいので、隅に小さく載せるなら utm_content を省きます。紙は何年も手元に残るので、短縮URLは使いません。

QRコードを読み取ったスマートフォンで、アドレスバーにUTMが残っている体験レッスンのページ
QRコードを読み取ったスマートフォンで、アドレスバーにUTMが残っている体験レッスンのページ

6. Instagramのプロフィール

Instagramは投稿の本文に書いたURLが押せないので、サイトへの入口はプロフィールのリンクとストーリーズのリンクになります。

  1. 台帳に、utm_source instagram、utm_medium social、utm_campaign profile の行を足します
  2. Instagramのアプリで「プロフィールを編集」を開き、リンクの欄にできあがりのURLを入れます
  3. ストーリーズでリンクを付ける場合は、utm_campaign をストーリーズの月と内容(2026-11_story-trial)にします
  4. プロフィールのリンクを自分で押し、アドレスバーを確かめます

UTMが無いと、Instagramから来た人は参照元が l.instagram.com や instagram.com に分かれることがあります。付けておけば instagram / social の1行にまとまります。

Instagramの「プロフィールを編集」のリンク欄にUTM付きのURLを入れたところ
Instagramの「プロフィールを編集」のリンク欄にUTM付きのURLを入れたところ

7. Google広告は自動タグ設定に任せる

Google広告の広告には、UTMを付けません。Google広告には「自動タグ設定」があり、オンにすると広告のクリックごとにリンク先URLへ gclid という目印が付きます。GA4とGoogle広告をリンクしておけば、この gclid からキャンペーン名や広告グループまでGA4に入ります。

自動タグ設定とUTMを両方付けた場合、GA4ではヘルプのとおり次のように扱われます。

項目自動タグ設定(gclid)とUTMの両方があるとき
参照元・メディア・キャンペーン自動タグ設定の値(google / cpc と実際のキャンペーン名)
手動広告コンテンツ・手動キーワードutm_content・utm_term の値
手動の値で上書きできない(GA4には手動タグを優先させる設定が無い)
gtag.js で gclid の情報を上書き自動タグ設定がオンのときはできない

広告にUTMを付けても参照元とキャンペーンは変わらず、広告ごとの違いはGoogle広告の管理画面のほうが詳しく見られます。

  1. Google広告の管理画面で「管理」→「アカウント設定」→「自動タグ設定」を開き、オンになっているかを確かめます。新しいアカウントでは最初からオンです
  2. GA4で「管理」→「サービス間のリンク設定」→「Google 広告のリンク」を開き、Google広告のアカウントがリンクされているかを確かめます
  3. 広告の最終ページURLに utm_ が入っていたら外します
Google広告の「アカウント設定」で自動タグ設定がオンになっているところ
Google広告の「アカウント設定」で自動タグ設定がオンになっているところ

8. 付いたかを確かめる

配った後では直せないので、配る前に確かめます。

  1. できあがりのURLをスマートフォンとパソコンのブラウザで開き、表示されたページのアドレスバーに utm_source から最後まで残っているかを見ます。途中で消えていたら、サイトのリダイレクトで落ちています
  2. GTMのプレビュー(Tag Assistant)でそのURLを開き、page_view の page_location にUTMが入っているかを見ます
  3. 翌日、GA4の「レポート」→「集客」→「トラフィック獲得」で、表の上のディメンションを「セッションの参照元 / メディア」に切り替え、line / social の行があるかを見ます
Tag Assistant で page_view の page_location にUTMが入っているところ
Tag Assistant で page_view の page_location にUTMが入っているところ

9. GA4で配信ごとの申込を見る

  1. 「レポート」→「集客」→「トラフィック獲得」を開きます
  2. 表のディメンションの切り替えで「セッション キャンペーン」を選びます(切り替えの位置はヘルプに書かれていないので、画面で探してください)
  3. 表の上の検索欄に 2026-11 と入れ、11月の施策だけに絞ります
  4. 上の「フィルタを追加」で、キーイベントの「体験申込完了」だけに絞ります(絞り込みはヘルプでは「フィルタを追加」で案内されています)
  5. ボタンの位置まで見たい場合は、ディメンション名の横の「+」からセカンダリ ディメンションに「セッションの手動広告コンテンツ」を足します

毎月代表に見せるなら、データポータル(Looker Studio)の1枚に「セッション キャンペーン」と「キーイベント」の表を置きます。

トラフィック獲得レポートで、セッション キャンペーンに切り替えて体験申込完了の件数を並べたところ
トラフィック獲得レポートで、セッション キャンペーンに切り替えて体験申込完了の件数を並べたところ

応用

LINEとチラシを1つのチャネルとして見る

デフォルト チャネル グループは編集できません。LINEをOrganic Socialから出したい、チラシの「未割り当て」を「チラシ」と出したい場合は、カスタム チャネル グループを作ります。標準のプロパティでは2つまで作れ、チャネルは上から順に当てはめられます。

  1. 「管理」→「データの表示」→「チャネル グループ」を開き、「新しいチャネル グループの作成」を押します
  2. 名前を「サンプル料理教室の集客」にします
  3. 「新しいチャネルの追加」で「LINE」を作り、条件を「参照元が line と完全一致」にします
  4. 同じように「チラシ」を作り、条件を「メディアが qr と完全一致」にします
  5. 「LINE」と「チラシ」を一番上へ並べ替えます。下にあると、先にOrganic Socialなどに当たってしまいます
  6. 保存し、トラフィック獲得レポートのディメンションでこのチャネル グループを選びます
カスタム チャネル グループの編集画面で、LINEとチラシが一番上に並んでいるところ
カスタム チャネル グループの編集画面で、LINEとチラシが一番上に並んでいるところ

Meta広告

Meta広告にはGA4へキャンペーン名が自動で入る仕組みが無いので、UTMを付けます。広告の作成画面のリンク先の下にある「URLパラメータ」の欄に、? を除いた utm_source=instagram&utm_medium=paid_social&utm_campaign=2026-11_trial-autumn を入れます。配置をInstagramだけに絞った広告は instagram にします。メディア paid_social は「paid で始まる」に当たるので「Paid Social」に入ります。タグの入れ方は「GTMで広告のタグを入れる:Google広告のコンバージョンタグとMeta ピクセル」で書きます。

Googleビジネスプロフィールのウェブサイト

Googleマップの店舗情報の「ウェブサイト」に付けるリンクは、UTMが無いとGoogle検索から来た人と区別できません。utm_source google、utm_medium organic、utm_campaign gbp にすると、チャネルはOrganic Searchのまま、キャンペーンの行で地図から来た人だけを分けられます。

Search Console との関係

Google検索の自然な流入にはUTMを付けません。どの検索語で表示されたかはSearch Consoleで見て、来た後の申込はGA4の「Organic Search」で見ます。

できないことと、その代わり

  • 過去にさかのぼって分けることはできません。付け始めた日を台帳に残し、それより前とは比べません
  • 電話の申込、チラシを見てから検索した人、紹介で来た人は分けられません。申込フォームと電話の受付で「どこで知りましたか」を聞き、GA4とは別に数えます
  • LINEの配信で一度見た人が3日後に検索から申し込んだ場合、セッションの参照元で見ると申込は検索に付きます。UTMは「その来訪がどこからか」を示すだけです。最初にどこで知ったかは「ユーザー獲得」レポートで見ます
  • Google広告の分類をUTMで上書きすることはできません。GA4では自動タグ設定が優先されます。広告の中の細かい分け方はGoogle広告の管理画面で見ます
  • utm_creative_format と utm_marketing_tactic の値は、2026年10月時点でGA4のレポートに出ません。BigQueryへのエクスポートには入るので、どうしても要る場合はそちらで見ます
  • LINEのアプリの中のブラウザで見た人が普段のブラウザで開き直すと、GA4では別の人になり、UTMは最初のブラウザにしか残りません。防ぐ手は無いので、配信どうしの比較にとどめます

よく詰まるところ

症状原因直し方
UTMを付けたのに「直接」に入るサイトのリダイレクト(http→https、wwwの有無、末尾の / の付け直し)でURLの ? 以降が消えている最終的に表示されるURLそのものを台帳のリンク先に入れる。制作会社にリダイレクトでクエリを残すよう頼む
参照元に Instagram と instagram の2行がある大文字と小文字が混ざっている台帳の式の LOWER を通す。既に配ったURLは直せないので、探索レポートで2行を足して見る
キャンペーンが「(not set)」utm_campaign を付け忘れた、または source と medium だけを付けたsource・medium・campaign の3つを必ず付ける。台帳のプルダウンで空欄を作らない
チャネルが「未割り当て」utm_medium が line sns mail のように定義に無い値medium の値を表の中から選ぶ。チラシのように定義に無いものはカスタム チャネル グループで分ける
広告の成果が減り、社内バナーの申込が増えた自分のサイトの中のリンク(トップのバナーなど)にUTMを付けたサイト内のリンクからUTMを外す。サイト内のどこが押されたかはクリックのイベントで数える
予約システムから戻った人が reserve.example / referral になる外部の予約システムから自社サイトに戻ると、予約システムが参照元として数えられる「管理」→「データ ストリーム」→ウェブのストリーム→「タグ設定を行う」→「すべて表示」→「除外する参照のリスト」に reserve.example を足す
同じURLの中に ? が2つあるリンク先に既に ?page=2 のようなパラメータがあるのに ?utm_ を足した2つ目からは & でつなぐ。台帳の式は自動で切り替える
ページ内の位置へ飛ぶリンクでUTMが読まれない#access?utm_source=... のように # の後ろにUTMを置いた/?utm_source=...#access のように # より前に置く
Google広告が「(not set)」や「google / cpc」だけで、キャンペーン名が出ないGA4とGoogle広告がリンクされていない、または自動タグ設定がオフ「サービス間のリンク設定」→「Google 広告のリンク」でリンクし、Google広告で自動タグ設定をオンにする
QRコードで来た人が数えられない短縮URLのサービスがUTMを落としている、または短縮URLが切れたQRコードにはUTM付きのURLを直接入れる。印刷前に実機で読み取る

次にやること

UTMで分けた入口を、チャネルや参照元のどの見方で読むかは「流入経路の見方:参照元・メディア・チャネルの違いと、広告・SNS・検索の分け方」で書きます。Google広告の自動タグ設定を生かして、体験申込をGoogle広告の成果として数えるには「GA4とGoogle広告を連携する:問い合わせを広告のコンバージョンにする」に進みます。Meta広告のURLパラメータとピクセルは「GTMで広告のタグを入れる:Google広告のコンバージョンタグとMeta ピクセル」で書きます。配信ごと・ボタンの位置ごとの申込を自由な切り口で並べたい場合は「探索レポートの作り方:自由形式・ファネル・経路データ探索」で、セッションの手動広告コンテンツを使った表を作ります。

あわせて読む