QRコードからは、スキャンされた回数、おおよその時間、デバイスの種類が分かります — ただしコードが動的である場合、つまり各スキャンをアクセスを記録するリダイレクト経由にしている場合に限ります。動的か静的かを問わず、誰がスキャンしたかを知れるQRコードはありません。この記事では、現実に測定できること、できないこと、そしてスマートフォンを持つ人のプライバシーを尊重しながらスキャンをトラッキングする方法を説明します。
動的コードだけがスキャン数を数えられる理由
QRコードはデータの画像にすぎません。静的コードでは、そのデータはリンク先URLそのものです。スキャンすると、スマートフォンは直接ウェブサイトへ移動し、途中で何も記録しません。ウェブ解析にはアクセスとして映りますが、事前にURLへタグを付けていない限り、他のアクセスと同じに見えます。
動的コードは仕組みが異なります。ジェネレーターサービスが所有する短いリダイレクトURL — 例えば qrmx.vip/abc123 のようなもの — をエンコードします。スキャンすると、スマートフォンはまずその短いURLへリクエストします。サービスのサーバーはリクエストを受け取り、いくつかの詳細を記録し、実際のリンク先へHTTPリダイレクトを返します。このログこそがトラッキングです。印刷後でも動的コードを編集できるのはこのためです:リダイレクト先を変更しても、同じ白黒の四角形がそのまま機能し続けます。
トレードオフは依存です。リダイレクトサービスが障害を起こしたり終了したりすると、印刷済みのすべてのコードが機能しなくなります。動的トラッキングは、自分で制御できないチェーン内の1リンクを犠牲にして、測定と柔軟性を手に入れます。
現実的に測定できること
各スキャンはリダイレクトサーバーに届く普通のウェブリクエストなので、測定できるのはウェブサーバーが自然に見るものです:
- スキャン数。 各リクエストが1スキャンとして数えられます。合計は概算として扱ってください:再スキャンする人、リンクを先読みするカメラアプリもあり、熱心な1人の訪問者が数を膨らませることがあります。
- おおよその時間。 サーバーのタイムスタンプから日付と、通常は時間帯が分かります。設置場所の比較 — 入口のポスターと袋のチラシ — に最も役立ちます。
- デバイスの種類。 リクエストのuser-agentヘッダーからOSの系統、通常はiOSかAndroidか、場合によってはブラウザーが分かります。粗いシグナルであり、欠落したり一般的な値になったりします。
- 国または地域。 サーバーはIPアドレスからおおよその位置を推測できます。VPN、オフィスネットワーク、モバイルキャリアのルーティングがすべてこれを歪めるため、市区町村レベルのデータは事実ではなくヒントとして扱ってください。
特別なものは何もなく、すべてのウェブサイトへのアクセスが生む浅いデータと同じです。価値は構造から生まれます。設置場所ごとに専用のコードを割り当てれば、数値は1つの塊に混ざるのではなく、比較可能になります。
分からないこと
スキャンは匿名のHTTPリクエストです。名前も、メールアドレスも、電話番号も、アカウントIDも含みません。相手がリンク先ページのフォームに自発的に情報を入力しない限り、誰なのか見当も付きません。複数のコードやアクセスにわたって1人を確実に追跡することもできません。自分のドメインにログインやCookieがなければ、すべてのスキャンは初対面の他人です。
QRコードへの不安は事実を上回りがちなため、2点を明確にしておく価値があります:
- スキャンによって誰かがスマートフォンへアクセスできるわけではありません。コードは連絡先、写真、メッセージ、正確なGPS位置情報を読めません。できるのはリンクを開くこと、または特殊なケースではWi-Fiネットワークへの参加のような動作のきっかけになることだけです。
- IPアドレスは身元ではありません。おおよその地域を示唆するだけで、世帯の中のどの人物 — ましてや街の中のどの人物 — がスマートフォンを持っていたかは分かりません。
デバイスの種類でさえ、スマートフォンが送るヘッダーに基づく推測であり、ブラウザーはそれを変更できます。QRコードだけからスキャンした人の身元を約束する人がいれば、持っていないものを売りつけているのです。
UTMタグとウェブ解析による静的コードのトラッキング
知りたいのがコードがウェブサイトへもたらすトラフィックの量だけなら、動的コードはまったく不要かもしれません。コードは静的なままにして、リンク先URLへUTMパラメーターを追加します:
https://example.com/menu?utm_source=poster&utm_medium=qr&utm_campaign=spring
既存のウェブ解析は、これらのアクセスを検索、ソーシャル、直接入力のトラフィックとは別の固有セグメント — ソース「poster」、メディア「qr」 — として表示します。追加サービスも、リダイレクトへの依存もなく、コードが機能しなくなることはありません。タグはURL自体に見えるので、それは一種の誠実さです:気になる人は誰でも、リンクが測定されていると確認できます。
制限は現実に存在します:
- URLが長くなるため、QRのパターンが密になり、離れた場所からは少しスキャンしにくくなります。
- 印刷後にリンク先を変更できません。
- 測定するのはアクセスであってスキャンではありません。ほとんどのスマートフォンはスキャン後にURLプレビューを表示してタップを待つため、スキャンして一目見て立ち去る人は解析に現れません。
多くの用途——飲食店のメニュー、商品ページ、ダウンロードリンク——には十分です。「どれだけのアクセスがあるか?」という問いにはUTMタグ付き静的コードを、タップ前にスキャン数が必要な場合や後でリンク先を編集したい場合には動的コードを選びましょう。
プライバシーに配慮した運用
スキャンの計測は正当な行為です。しかし不用意な計測は不要であり、EUのGDPRなどのプライバシー法ではIPアドレスが個人データとみなされるため、多くの地域で法的問題にもなり得ます。次の3つの習慣を守れば、スキャン計測の仕組みを倫理と法律の両面で正しい側に保てます。
個人データは収集しない
完全なIPアドレスをログに残さず、デバイスのフィンガープリントを取得せず、スキャンした人を特定するためだけにコンテンツの有用な部分をログインの背後に置かないでください。残すのは前述の集計シグナルのみです。回数、タイムスタンプ、デバイスファミリー、おおよその地域。リダイレクトサービスを使う場合は、IPアドレスを完全な形で保存せず、切り詰めたりハッシュ化したりするサービスを選びましょう。有用な判断基準:記録を個人と紐付けできないなら、害やコンプライアンス上の問題を引き起こす可能性ははるかに低くなります。
短期間だけ保管する
生のリクエストログは理由もなく溜まっていきます。一般的な目安:生ログは30〜90日間保管します。トレンドの把握やキャンペーン不具合のデバッグに十分な期間です。その後は削除し、コードごとの月間回数、デバイス別内訳などの集計データだけを残します。集計データはレポートが問うほとんどの問いに答えられますし、保有しなくなったデータは漏洩し得ないデータでもあります。
行うことを告知する
人が知りたがるであろうことは伝えましょう。ポスターやランディングページに一言——「このコードのスキャンは、イベント改善のため匿名で計測されています」——と書けば、一文のコストで、隠密裏の計測が失う信頼を得られます。動的コード用のジェネレータサービスを使う場合は、印刷前にプライバシーポリシーを読みましょう。何をログに残すか、どのくらい保管するか、データを第三者と共有するかどうか。
実際に機能するシンプルなワークフロー
- 答えたい問いをひとつ書き出します。例:「どのポスター設置場所が最も効果的か?」
- それに答えられる最も軽いツールを選びます。アクセス数の問いにはUTMタグ付き静的コード、スキャン数と編集可能性には動的コード。
- 設置場所ごとにコードを1つ作成します。QRCodeMax.Vipのような無料ジェネレータは静的・動的の両方に対応しているので、問いに合ったツールを選べます。
- 各コードと設置場所の対応を書いた小さなメモを残します。ラベルのないコードは1か月で謎になります。
- 大量印刷の前に、すべてのコードを2台の異なるスマートフォンでテストスキャンします。
- 週次または月次など決まった日程で数値を確認し、行動に移します。ポスターの移動、リンク先の変更、キャンペーンの終了。
重要なポイント
動的コードまたはUTMタグ付き静的コードで回数とおおよその文脈を計測し、スキャンした人の身元は決して追わないこと。収集できる最大限ではなく必要最小限を集め、義務上の期限より早く削除し、計測内容を率直に伝える。それが信頼されるトラッキングであり、偶然でなく、実際に使い続けられるトラッキングでもあります。