GA4が測るのは、QRの読み取りではなくサイト到着後
カメラがQRコードを認識した回数はGA4へ届きません。Googleタグが動くページへ到着して、初めてGA4のデータになります。
QRコードをGA4で計測する、という表現には2つの異なる数字が混ざりがちです。GA4が直接収集するのは、遷移先Webサイトで発生した page_view、セッション、イベントなどです。スマートフォンのカメラでQRコードを認識した瞬間や、紙面を見ただけの人は計測しません。
QR経由だけをレポートで分けるには、遷移先URLへUTMキャンペーンパラメータを追加します。ユーザーがUTM付きURLへ到着すると、その値がGA4へ渡り、トラフィック獲得レポートで参照元・メディア・キャンペーンとして確認できます。
WHAT GA4 SEES
| 行動 | GA4で直接測れるか | 主な確認方法 |
|---|---|---|
| 紙面を見た | 測れない | 調査・推計など別手段 |
| カメラがQRを認識した | 測れない | QR計測URLでも、リンクが開かれる前は測れない |
| QRのリンクを開いた | 到着ページでタグが動けば測れる | GA4のセッション・page_view |
| 計測URLへアクセスした | GA4とは別に測れる | ダイナミックQRの中継ログ |
| フォームを送信した | イベント実装後に測れる | イベント・キーイベント |
| 店舗で購入した | 自動では測れない | 注文データ、会員・クーポン連携など |
QRコード用URLへ、3つの基本UTMを付ける
utm_source・utm_medium・utm_campaignを基本セットにし、紙面や場所の違いはutm_contentで分けます。
Googleの公式案内では、カスタムURLに utm_source、utm_medium、utm_campaign を使用するよう示されています。QR施策にも同じ仕組みを使えます。ただし、QR専用の公式な値はないため、次の例は社内ルールの一案です。
EXAMPLE URL
https://example.jp/summer?utm_source=flyer&utm_medium=qr_code&utm_campaign=summer_2026&utm_content=shinjuku_aUTM FIELD DESIGN — 社内ルール例
| パラメータ | 例 | この例で表すもの |
|---|---|---|
| utm_source | flyer | 流入元となる販促物の種類 |
| utm_medium | qr_code | アクセス方法がQRコードであること |
| utm_campaign | summer_2026 | 施策全体の共通名 |
| utm_content | shinjuku_a | 配布場所・紙面Aなどの差分 |
| utm_id | smr26 | 費用データ連携などで使うキャンペーンID(必要な場合) |
URLの作り方
- 01
自社サイトの最終URLを決める
スマートフォンで表示でき、Googleタグが動いているページを選びます。短縮URLではなく、到着させたい正規のURLから始めます。 - 02
UTM命名表を先に埋める
source・medium・campaign・contentを、QR管理名と同じ行へ記録します。手入力の揺れを防ぎます。 - 03
Campaign URL BuilderなどでURLを作る
Googleが案内するURL生成ツールを使うか、仕様に沿ってクエリを追加します。日本語や記号は適切にURLエンコードします。 - 04
UTM付きURLをQRの遷移先へ設定する
静的QRならそのURLを直接格納し、ダイナミックQRなら管理画面の転送先として登録します。 - 05
実機で到着URLを確認する
転送後もUTMが残り、目的ページが開き、GA4のリアルタイム表示などへ届くことを確認します。
UTM命名は、意味より一貫性を優先する
GA4は Summer、summer、summer_2026 を別の値として扱います。後から直せない過去データを、最初から散らさないことが重要です。
- 小文字に統一:
Flyerとflyerを混在させない。 - 区切りを統一:スペースを避け、
summer_2026のようにアンダースコア等を固定する。 - 役割を固定:場所をcontentへ入れると決めたら、別案件でもsourceへ移さない。
- 人が変わっても読める:
a1だけで済ませず、対応表を必ず残す。 - 値を使い回さない:同じキャンペーン名を毎年再利用せず、年や期を入れる。
- 個人情報を入れない:氏名、メールアドレス、電話番号、会員IDなどをUTMへ含めない。
「qr_code」はGoogle公式の標準mediumではない
上の utm_medium=qr_code は、QR流入を人が見て識別しやすくする社内ルール例です。GA4のデフォルトチャネルグループには固定の分類ルールがあり、独自mediumがどのルールにも一致しない場合、チャネルは「Unassigned(未割り当て)」になる可能性があります。
これはUTMデータが消えたという意味ではありません。まず「セッションの参照元 / メディア」や「セッションキャンペーン」で値を確認します。チャネル単位で「Offline QR」へまとめたい場合は、sourceまたはmediumの条件でカスタムチャネルグループを作成します。
GA4のトラフィック獲得レポートで確認する
新規ユーザーの最初の流入ではなく、今回のQRセッションを見るため、まずトラフィック獲得を使います。
- 01
最初のテストはリアルタイムで見る
自分のスマートフォンでQRを開き、リアルタイムレポートやDebugViewなどで到着を確認します。通常レポートへの反映を待つ前に、タグが動くかを切り分けます。 - 02
レポート → 集客 → トラフィック獲得を開く
GA4の画面名称は更新されることがありますが、セッション単位の流入を確認するレポートを選びます。 - 03
セッションの参照元 / メディアを選ぶ
例ならflyer / qr_codeの行を探します。検索欄やフィルタで絞り込みます。 - 04
セッションキャンペーンを確認する
summer_2026が入り、意図した期間のセッションが集まっているか見ます。 - 05
紙面差は手動広告コンテンツで見る
utm_contentの値は「セッションの手動広告コンテンツ」などのディメンションで確認します。レポートへ副ディメンションを追加するか、探索で組み合わせます。 - 06
成果イベントと並べる
フォーム送信、予約完了、購入などをイベントとして実装し、重要なものをキーイベントに設定して、セッションやエンゲージメントと一緒に比較します。
REPORT READING EXAMPLE
| utm_content | セッション | フォーム開始 | 送信完了 | セッション→完了 |
|---|---|---|---|---|
| shinjuku_a | 102 | 22 | 8 | 7.8% |
| yokohama_b | 71 | 25 | 12 | 16.9% |
上は読み方を示す架空データです。セッション数は新宿Aが多い一方、完了率は横浜Bが高い、という違いが見えます。配布数・費用と結合すれば、入口の量、サイト内の効率、獲得単価を別々に判断できます。
QRのスキャン数とGA4セッションが一致しない理由
数字が違うこと自体は異常ではありません。2つのツールが記録する地点と条件が違います。
WHY NUMBERS DIFFER
| 状況 | QR側 | GA4側 |
|---|---|---|
| 中継URLは開いたが、到着前に閉じた | アクセスとして残る場合がある | タグが動かず残らない場合がある |
| 広告ブロック・同意拒否・JavaScript無効 | サーバーログは残る場合がある | 計測が制限・欠落する場合がある |
| 同じ人が短時間に何度も開いた | 複数アクセスとして残り得る | 1セッションへまとまる場合がある |
| UTMが転送途中で消えた | QR別アクセスは残る | direct / noneなど別分類になり得る |
| 自社タグのない外部ページへ遷移 | 中継アクセスは残る | 自社GA4には入らない |
| プレビューや自動アクセス | サービス仕様によって数える場合がある | ページ上でタグが動く条件により異なる |
direct / noneに入る時の確認順
- QRコードへ入れた元URLにUTMが付いているか。
- ダイナミックQRの転送後URLにもUTMが残っているか。
- 途中の短縮URLや別ドメイン転送でクエリ文字列を落としていないか。
- 遷移先ページに正しい測定IDのGoogleタグがあるか。
- レポートで「ユーザーの最初の参照元」ではなく「セッションの参照元」を見ているか。
- テスト端末の同意設定や広告ブロックで計測が止まっていないか。
CodeLytics・GA4・業務データを、役割でつなぐ
CodeLyticsは紙の入口、GA4はサイト内行動、業務データは成果。共通の命名で3つを結びます。
MEASUREMENT STACK
| 道具 | 主に測る地点 | 代表指標 | 共通キー |
|---|---|---|---|
| CodeLytics | QR計測URLへの入口 | QR別スキャン、日時、推定地域、端末 | QR管理名 |
| GA4 | 遷移先サイト内 | セッション、閲覧、イベント、キーイベント | utm_campaign / utm_content |
| CRM・予約・注文 | 問い合わせ・購入後 | 獲得件数、売上、粗利 | キャンペーン名、クーポン、注文属性 |
CodeLyticsの「新宿_A」とGA4の utm_content=shinjuku_a を対応表で結べば、入口120アクセスのうちGA4へ102セッション到着し、8件が送信完了した、という流れを作れます。さらにCRMで成約3件を確認すれば、入口から事業成果まで分けて説明できます。
CodeLyticsだけで購入を測ったり、GA4だけでカメラの読み取り回数を推定したりせず、それぞれの観測地点へ任せます。入口の数字の定義と限界はQRコードの効果測定とは、チラシ全体の反応率やCPAはチラシの効果測定も参照してください。
PRIMARY SOURCES
参考にした一次情報
本文は上記の公開情報とCodeLyticsの実装仕様を照合して作成しています。各サービスの画面・仕様は変更される場合があります。