来店誘導でQRコードと短リンクのどちらが強いかは、掲載する媒体と導線で変わります。先に結論を書くと、QRコードか短リンクかだけを見て勝敗を決めるのは危険です。QRコードは入口の形式で、短リンクはURLの形式です。QRコードに短縮URLを埋め込めば、両者は同じURLを指せます。比較したいのは「どの接点で、どの提示方法が来店につながるか」です。
この記事では、QRコードと短リンクを来店誘導のA/Bテストで比べるときの設計、実装、計測の注意点を整理します。クリック数やスキャン数ではなく、最終的に来店をどう測るかに焦点を置きます。
比較の前に定義をそろえる
QRコードと短リンクは同じ土俵の競合ではありません。たとえば、印刷物にQRコードを載せる場合と、同じ印刷物に短いURLを文字で載せる場合では、ユーザーの行動が異なります。QRコードはカメラを向けて読み取る必要があり、短リンクはURLを入力するか、デジタル上ならクリックします。
A/Bテストでは、次のように接点と提示方法をセットで定義します。
- QR variant:チラシや店頭POPにQRコードを掲載する
- 短リンク variant:同じオファーを、文字の短縮URLとして掲載する
- 共通:着地ページ、クーポン内容、掲載期間、掲載場所をできるだけ揃える
ここで注意したいのは、QRコードに短縮URLを埋め込む場合です。QR variantと短リンク variantで同じ短縮URLを使うと、どちらから来たのかが分からなくなります。variantごとに別の短縮URLを発行し、クーポンコードも分けると計測しやすくなります。
| 観点 | QRコード | 短リンク |
|---|---|---|
| 向く接点 | 印刷物、店頭、オフライン | SNS、メール、Web、デジタル |
| ユーザーの操作 | カメラで読み取る | クリックまたは入力する |
| 中間指標 | スキャン数、読み取り後の到達数 | クリック数、到達数 |
| 主な摩擦 | 読み取り失敗、カメラ権限、位置 | URLの見た目、入力の手間 |
| 計測の注意 | 読み取り後の離脱、重複スキャン | プレビュー取得、ボット、重複クリック |
A/Bテストの設計
来店誘導の比較では、中間指標と最終指標を分けます。中間指標はスキャン数、クリック数、着地ページ到達、クーポン表示などです。最終指標は、クーポン利用やPOS連携で確認できる来店です。クリックやスキャンだけが多いvariantが、来店でも強いとは限りません。
設計の手順は次のとおりです。
- 仮説を決める。例:印刷物ではQRコードの方が短リンクより来店率が高い。
- 割付単位を決める。来店はユーザー単位で追いにくいため、接点単位や店舗単位でランダム化する方法が現実的です。
- 期間を決める。曜日、天候、キャンペーン初日と終盤の差をならすため、最低でも1週間以上を確保します。
- 交絡を減らす。オファー、着地ページ、QRコードの設置位置、短縮URLの文字サイズを揃えます。
- 来店の測り方を決める。variantごとに別のクーポンコードを発行し、店頭で提示またはPOS入力してもらいます。
同じ店舗でQR variantと短リンク variantを同時に混ぜると、ユーザー同士の口コミや店員の案内で汚染されることがあります。可能なら店舗や日時で層別し、どちらのvariantも同じ条件で比較できるようにします。
実装:variant付きリダイレクトとクーポンコード
短縮URLを自前でルーティングする場合の最小例です。QR variantと短リンク variantで別の入口URLを用意し、着地ページにvariantとユーザーIDを渡します。
import express from 'express';
import cookieParser from 'cookie-parser';
import crypto from 'node:crypto';
const app = express();
app.use(cookieParser());
const LANDING = process.env.LANDING_URL!;
const VARIANTS = new Set(['qr', 'link']);
app.get('/r/:variant', (req, res) => {
const variant = req.params.variant;
if (!VARIANTS.has(variant)) return res.status(404).send('invalid variant');
let vid = req.cookies?.ab_vid;
if (!vid) {
vid = crypto.randomUUID();
res.cookie('ab_vid', vid, {
maxAge: 1000 * 60 * 60 * 24 * 30,
httpOnly: true,
sameSite: 'lax',
});
}
const url = new URL(LANDING);
url.searchParams.set('variant', variant);
url.searchParams.set('vid', vid);
url.searchParams.set('coupon', variant === 'qr' ? 'STORE-QR' : 'STORE-LINK');
res.redirect(302, url.toString());
});
この例では、variantごとにクーポンコードを分けています。来店時に店頭でクーポンコードを確認できれば、クリックやスキャンではなく来店ベースで比較できます。
短縮URLの発行には、たとえばLinkBitのようなリンク短縮サービスを利用できます。QRコードに埋め込むURLを短くしておくと、印刷物のレイアウトを崩さず、接点ごとに別URLを割り当てやすくなります。
短縮URLサービスを使う場合の疑似コードです。実際のAPI仕様に合わせて読み替えてください。
type ShortenerResponse = { shortUrl: string };
async function issueShortUrl(destination: string, variant: 'qr' | 'link') {
const res = await fetch(process.env.SHORTENER_API_URL!, {
method: 'POST',
headers: {
'content-type': 'application/json',
authorization: `Bearer ${process.env.SHORTENER_API_KEY!}`,
},
body: JSON.stringify({ url: destination, tags: [variant] }),
});
if (!res.ok) throw new Error(await res.text());
const data = (await res.json()) as ShortenerResponse;
return data.shortUrl;
}
QRコードの画像生成は、たとえばqrcodeパッケージで行えます。生成した短縮URLをそのまま埋め込みます。
import QRCode from 'qrcode';
const qrShortUrl = await issueShortUrl(process.env.LANDING_URL! + '?src=flyer', 'qr');
await QRCode.toFile('flyer-qr.png', qrShortUrl, { margin: 2, width: 600 });
計測イベントの持ち方
来店までの導線を追うなら、少なくとも着地ページ到達、クーポン表示、店頭利用の3つを分けます。variantとvidを同じイベントに載せ、クーポンコードと紐付けます。
type StoreEvent = {
variant: 'qr' | 'link';
vid: string;
event: 'landing_view' | 'coupon_show' | 'store_redeem';
coupon: string;
ts: string;
};
このとき、スキャン数やクリック数だけでなく、着地ページ到達率とクーポン利用率も確認します。QRコードは読み取り後にブラウザが開かないケースがあり、短リンクはSNSのプレビュー取得やボットでクリックが水増しされることがあります。中間指標の解釈には注意が必要です。
よくある落とし穴
- QRコードと短リンクで着地ページやオファーが違う。比較条件が揃っていない。
- QR variantと短リンク variantで同じ短縮URLを使い、流入元が混ざる。
- クーポンコードを分けず、来店をvariant別に集計できない。
- 店舗ごとの案内やPOPの位置が違い、variant以外の差が大きい。
- 短期間の結果だけで判断し、曜日や天候の影響を無視する。
- クリック数だけを見て、来店率が高いと誤判定する。
どちらを選ぶか
印刷物、店頭POP、オフライン広告など、その場でURLを入力しにくい接点はQRコードが向きます。SNS、メール、Web広告など、クリックできる接点は短リンクが向きます。併用する場合は、QRコードに短縮URLを埋め込み、接点IDやvariantをURLとクーポンコードの両方に持たせると、来店までの追跡が現実的になります。
来店誘導の比較で大事なのは、QRコードか短リンクかの二択にすることではありません。どの接点で、どの提示方法が、実際の来店につながるかを測れる設計にすることです。まず中間指標と来店指標を分け、variantをURL、Cookie、クーポンコード、POSのどこで追跡するかを決めてから実装してください。
