1分で読了チュートリアル

電話番号、SMS、メールアドレス用のQRコード

電話番号用のQRコードはtel:を符号化し、番号が入力された状態でダイヤラーを開きます。電話、SMS、メールそれぞれの正確なペイロードと、誰も触れない落とし穴を解説します。

Ana Kowalska
Marketing solutions engineering
電話番号用、メッセージが事前入力されたSMS用、メールアドレス用の3つのQRペイロードを並べた図

電話番号用のQRコードにはURLが含まれていません。含まれているのはtel:+14155552671というテキストであり、スキャナーはtel:という接頭辞を認識して、番号が入力済みの状態でダイヤラーに渡します。私がテストしたどの端末でも、自動的に電話をかけることはありません。

同じ仕組みは近縁の2つもカバーします。SMSTO:はテキストメッセージを開き、mailto:はメールを開きます。3つのスキーム、3つのペイロード形式、そしてジェネレーターのサイトがたいてい省略する1つの共通の落とし穴があります。この方法で作られたコードはWebリクエストではなく動作を符号化しているため、編集も計測も決してできません。この記事では、正確なペイロード、それぞれが実際のスマートフォン上で何を行うか、そしてリンクを代わりに使うべきタイミングを解説します。印刷全体のワークフローについては、QRコードキャンペーンをゼロから作るが計画から計測までを解説しています。

3つのペイロードを実際に書いてみる

これらはいずれも、自由テキストを受け付けるジェネレーターにそのまま渡す普通のテキストです。URLは一切関係ありません。

tel:+14155552671
SMSTO:+14155552671:Hi Acme, I saw the flyer
mailto:[email protected]?subject=Quote%20request&body=Hi%20team

tel:スキームはRFC 3966に由来し、電話番号URIはローカルな番号ではなくグローバルな番号、つまり+と国番号を含む番号を持つべきだと明確に述べています。sms:スキームはRFC 5724によるものです。SMSTO:はそのRFCとはまったく関係なく、より古いQRの慣習から来ていますが、依然として最も広くスキャナーに対応している形式であり、ジェネレーターが今でもこれを出力する理由です。メールはRFC 6068で定義されており、subjectbodyは普通のクエリパラメータです。

この最後の点こそ、手作業で組み立てられたペイロードのほとんどが壊れる場所です。subjectとbodyはURLエンコードしなければならず、スペースは%20に、メッセージの中のアンパサンドは%26になります。bodyの中に生の&を残すと、それ以降すべてが別のパラメータとして読まれてしまい、メッセージの半分が消えてしまいます。手作業でこれらを書いているなら、URLエンコーディング入門に文字の完全な一覧があります。

tel、SMSTO、mailtoの各ペイロードが、スマートフォン上で何を開き、どの部分が事前入力されるかを示す図

誰かがスキャンすると実際に何が起きるか

印刷する前に知っておく価値があります。動作は、ジェネレーターサイトのマーケティング文章が匂わせるほど自動的ではないからです。

tel:のスキャンは、番号が見える状態でダイヤラーを開き、あとはタップするだけの状態にします。自動的に電話がかかることは一切なく、これはバグではなく意図的な保護であり、つまり「スキャンして電話する」は実際には「スキャンして番号を入力してもらう」という意味だということです。

SMSTO:のスキャンは、宛先が設定され、通常はメッセージも下書きに入った状態でメッセージアプリを開きます。メッセージの部分は端末によって異なり、一部のスマートフォンや一部のサードパーティ製メッセージアプリは事前入力されたテキストを落としてしまい、番号だけを残します。それを想定して設計してください。テキストが重要な役割を持つ場合、たとえば振り分けに必要なキーワードなどであれば、コードの横にも印刷しておきましょう。

mailto:のスキャンは、その人がメールアプリとして設定しているものを開きます。メールアカウントが設定されていないスマートフォンでは、スキャンしても何も起きていないように見えます。これは一般消費者向けの用途では覚えておく価値があります。

PayloadWhat opensPrefilledMain gotcha
tel:+1...ダイヤラー番号自動発信は一切なし。国番号が必要
SMSTO:+1...:textメッセージアプリ番号、たいていテキストも事前入力テキストは保証されない
sms:+1...?body=textメッセージアプリ番号、時々テキストも標準だがSMSTOより対応範囲が狭い
mailto:a@b?subject=既定のメールアプリアドレス、件名、本文メールアプリが未設定だと何も起きない

番号はE.164形式で書く。そうしないと海外で壊れる

0415 555 2671ではなく、(415) 555-2671でもなく、+14155552671と書きます。国際形式はITUによるE.164として標準化されており、先頭の+、国番号、そしてスペースやダッシュや括弧を含まない国内番号という構成です。

国内形式の番号は、その国のスキャナーでは正しく解決されますが、他のすべての人には失敗します。これが、印刷された「電話してください」コードが、校正したチームには完璧に動くのに展示会の会場では誰にも動かない理由です。記号もまた問題の半分を占めています。ダイヤラーによってはスペースやダッシュを取り除くものもあれば、ダイヤルすべき数字として扱ってしまうものもあり、括弧が原因で解析が途中で終わってしまうことも知られています。

キャンペーンのリンクとコードを自分のドメインに置けば、同じジェネレーターに加えて、これらの直接ペイロードでは得られないアナリティクスも手に入ります。

落とし穴:これらのコードは変更もカウントもできない

この2つの制約はどちらも同じ事実から来ています。tel:SMSTO:mailto:のペイロードは、サーバーへのリクエストではなくスマートフォンへの指示です。インターネット上のどこにも接続されないため、カウントできるものも向き先を変えられるものも何もありません。

これは、印刷された資産にとって2つのことを意味します。番号はその資産が存在する限り固定されており、新しいオフィスの電話番号、営業チームの移転、メッセージプロバイダーの切り替えなどが起きるとコードは間違ったものになり、再印刷が唯一の直し方になります。そして、そのコードが機能したかどうかを知ることは決してできません。ダイヤラーを開くスキャンは、あなたが見られる場所に何の記録も残さないからです。ダイナミックQRコード対スタティックQRコードではこの区別を一般的に解説しており、QRコードは期限切れになるのかでは印刷後に他に何が静かに動かなくなり得るかを解説しています。

代わりの方法は、1段の間接参照を挟むことです。通話ボタン、メッセージボタン、メールボタンを同じスキームで作った小さなページへの短縮リンクを符号化します。これでスキャンはWebリクエストになり、カウントされ、番号が変わったときには宛先を編集でき、ページには営業時間や午前2時にスキャンする人のためのフォームを載せることもできます。コストは訪問者にとって1タップ増えることだけです。

直接のtelペイロードと、問い合わせページへの短縮リンクを符号化したQRコードを比較し、どちらがカウントと向き先の変更に対応しているかを示す図

直接スキームがそれでも正しい場合

2つのケースがあり、いずれも実際に存在します。

  • 変わることがなく、計測も必要ない番号。エレベーター修理用のステッカー、社内ヘルプデスクの番号、機械の横のプレートなどです。直接ペイロードはより短く、コードも小さくなり、背後にサービスが存在しなくても永久に機能します。
  • 安定した接続がない場所。tel:のスキャンは地下の駐車場でも機能しますが、短縮リンクはネットワークがなければ解決できません。

それ以外の場合は、間接参照が余分なタップに見合う価値を生みます。QRコードのスキャンを追跡する方法では、スキャンがリクエストになった時点で何が得られるかを解説しています。

印刷前にテストする

4つの確認事項があり、2番目は皆が省略してしまうものです。

  1. iPhoneとAndroidの両方で、標準のカメラアプリでスキャンします。サードパーティ製のスキャナーアプリは標準アプリより許容度が高いため、スキャナーアプリでしか動かないコードは実際の現場では失敗するコードです。
  2. 別の国の、少なくとも地域設定が異なるスマートフォンでスキャンします。これによって国番号の欠落を発見できます。
  3. 事前入力されたメッセージが残っているかを確認し、残っていなかった場合にどうするかを決めます。
  4. 最終サイズで校正を印刷し、実際の人が立つ距離から、悪い照明の下でスキャンします。QRコードはどれくらいの大きさにすべきかに距離のルールがまとめてあります。

私がひっかかったのはメールアプリでした。Outlookが設定された仕事用のスマートフォンで校正したmailto:コードは完璧に見えますが、メールアカウントを一度も追加したことがない一般消費者向けの端末では何も起きません。メールが主要な行動喚起であるなら、その横にリンクも置いておきましょう。

コーナーストーンシリーズを読む

この記事はチュートリアルクラスターに属しています。全体の構築については、QRコードキャンペーンをゼロから作るが計画から計測までを解説し、QRコードの作り方がスタティックかダイナミックかの判断を解説しています。

ブログの関連記事

よくある質問

電話番号用のQRコードはどうやって作りますか。

URLではなくtel:+14155552671というテキストを符号化します。自由テキストを受け付けるジェネレーターであればどれでも作れます。誰かがスキャンすると、その人のスマートフォンは番号が入力済みのダイヤラーを開き、通話ボタンを押すのを待つだけです。iOSでもAndroidでも、自動的に電話をかけることはありません。

SMS用QRコードのペイロードは何ですか。

SMSTO:+14155552671:Your message hereは、最も広くスキャナーに対応している形式であり、sms:+14155552671?body=Your%20messageはRFC 5724で定められた標準形式です。事前入力されるメッセージへの対応は端末やメッセージアプリによって異なる部分なので、テキストはあれば嬉しい程度に考え、番号こそが必ず動くべきものと捉えてください。

件名付きのメールQRコードはどうやって作りますか。

mailto:[email protected]?subject=Quote%20request&body=Hi%20teamを符号化します。subjectとbodyはRFC 6068で定義されたクエリパラメータで、どちらの値もURLエンコードする必要があり、そのためスペースは%20として表示されます。スキャンすると、その人の既定のメールアプリが各フィールド入力済みの状態で開きます。

電話番号用のQRコードには国番号が必要ですか。

はい、先頭にプラス記号を付けて必要です。+14155552671のようにE.164形式で書き、0415 555 2671や(415) 555-2671のような形式は使いません。国内形式の番号はその国のスキャナーでしか正しく動作せず、他のすべての人に対しては何のエラーも出さずに失敗します。印刷された「電話してください」コードが、テストしたチームだけでは動き、他の誰にも動かない最もよくある理由がこれです。

電話やメール用のQRコードが何回スキャンされたか追跡できますか。

直接のtel:、SMSTO:、mailto:ペイロードでは追跡できません。これらはWebリクエストではなく動作を符号化しているだけなので、カウントできるサーバーには何も届きません。数字が必要な場合は、代わりに通話ボタンとメッセージボタンを載せた小さなページへの短縮リンクを符号化し、そちらのクリックを読み取ってください。

印刷後に電話番号が変わった場合はどうなりますか。

直接のtel:コードは永久に間違ったままになります。番号がパターンの中に焼き込まれているからです。選択肢は再印刷か向き先の変更ですが、向き先の変更ができるのは、番号そのものではなく自分が管理するリンクをコードが符号化している場合だけです。キャンペーンより長く使うものには、リンクを符号化してください。

Elidoを試す

URLを貼り付けて短縮リンクを取得

登録不要。リンクは30日間有効。永久に保存するには登録してください。

Free、登録不要 · 1日あたり2件

Elidoを試す

EUホスティングのURL短縮サービス。カスタムドメイン、詳細な分析、オープンAPI付き。無料プラン - クレジットカード不要。

タグ
qr code for phone number
sms qr code
email qr code
tel uri
mailto
dynamic qr code

続きを読む