QR-код номера телефона не содержит URL. Он содержит текст tel:+14155552671, и сканер распознаёт префикс tel: и передаёт его в набор номера с уже заполненным номером. Он никогда не совершает звонок сам, ни на одном телефоне, который я проверяла.
Тот же трюк работает для двух соседей: SMSTO: открывает текстовое сообщение, mailto: открывает письмо. Три схемы, три формата полезной нагрузки и один общий подвох, который сайты-генераторы обычно упускают - код, построенный так, кодирует действие, а не веб-запрос, поэтому его никогда нельзя ни отредактировать, ни посчитать. В этой статье - точные форматы полезной нагрузки, что каждый из них делает на реальном телефоне, и когда вместо этого стоит использовать ссылку. Про более широкий процесс печати статья QR-кампания с нуля рассказывает от планирования до измерения.
Три формата полезной нагрузки целиком
Каждый из них - это простой текст, который передаётся в любой генератор, принимающий произвольный текст. 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-конвенций, и это до сих пор формат с самой широкой поддержкой сканеров, поэтому генераторы до сих пор его выдают. Email - это RFC 6068, где subject и body - обычные параметры запроса.
Именно на этой последней детали чаще всего ломается полезная нагрузка, собранная руками. subject и body должны быть URL-закодированы, так что пробел - это %20, а амперсанд внутри вашего сообщения - %26. Оставьте необработанный & в body, и всё, что после него, будет прочитано как другой параметр, так что половина вашего сообщения пропадёт. Статья URL-кодирование объяснено содержит полный список символов, если вы пишете это руками.
Что на самом деле происходит при сканировании
Стоит знать это до печати, потому что поведение куда менее автоматическое, чем обещают маркетинговые тексты на сайтах-генераторах.
Сканирование tel: открывает набор номера с видимым номером и одним оставшимся нажатием. Ничего не звонит само по себе, и это осознанная защита, а не баг: получается, что "отсканируй, чтобы позвонить" на самом деле означает "отсканируй, чтобы номер набрали за тебя".
Сканирование SMSTO: открывает мессенджер с уже указанным получателем и, обычно, сообщением в черновике. Именно сообщение - та часть, которая варьируется: некоторые телефоны и некоторые сторонние мессенджеры отбрасывают предзаполненный текст и оставляют только номер. Учитывайте это при проектировании. Если текст критически важен - например, ключевое слово, нужное для маршрутизации, - напечатайте его рядом с кодом тоже.
Сканирование mailto: открывает то почтовое приложение, которое настроено у человека. На телефоне без настроенного почтового аккаунта сканирование выглядит так, будто вообще ничего не происходит, и это стоит помнить, если аудитория - обычные потребители.
| Полезная нагрузка | Что открывается | Что предзаполнено | Главный подвох |
|---|---|---|---|
tel:+1... | Набор номера | Номер | Никогда не звонит сам; нужен код страны |
SMSTO:+1...:text | Мессенджер | Номер, обычно текст | Предзаполненный текст не гарантирован |
sms:+1...?body=text | Мессенджер | Номер, иногда текст | Стандарт, но поддерживается менее широко, чем SMSTO |
mailto:a@b?subject= | Почта по умолчанию | Адрес, тема, текст | Молча ничего не делает, если почта не настроена |
Пишите номер в формате E.164, иначе он не сработает за границей
+14155552671, а не 0415 555 2671 и не (415) 555-2671. Международный формат стандартизирован как E.164 в ITU: ведущий +, код страны, а затем национальный номер без пробелов, дефисов и скобок.
Номер в национальном формате корректно разрешается для сканера в этой стране и не срабатывает для всех остальных, и именно поэтому напечатанный код для звонка часто отлично работает у команды, которая его проверяла, и ни у кого на выставке. Пунктуация - это вторая половина проблемы: некоторые наборщики убирают пробелы и дефисы, другие воспринимают их как цифры для набора, а скобка, как известно, может прервать разбор раньше времени.
Разместите ссылки и коды своих кампаний на собственном домене - и вы получите тот же генератор плюс аналитику, которую эта прямая полезная нагрузка дать не может.
Подвох: эти коды нельзя ни изменить, ни посчитать
Оба ограничения растут из одного и того же факта. Полезная нагрузка tel:, SMSTO: или mailto: - это инструкция для телефона, а не запрос к серверу. В интернет ничего не отправляется, так что нечего считать и нечего перенаправлять.
Для всего напечатанного это означает две вещи. Номер неизменен на весь срок жизни носителя: новая офисная линия, переезд отдела продаж или смена мессенджер-провайдера делают код неверным, и перепечатка - единственное решение. И вы никогда не узнаете, сработал ли код, потому что сканирование, открывающее набор номера, не оставляет никакого видимого следа. Динамические против статических QR-кодов разбирает это различие в целом, а истекает ли срок действия QR-кодов разбирает, что ещё может тихо перестать работать после тиража печати.
Альтернатива - один уровень непрямого обращения. Закодируйте короткую ссылку на небольшую страницу с кнопкой звонка, кнопкой сообщения и кнопкой email, построенными на тех же схемах. Теперь сканирование - это веб-запрос: его считают, адрес назначения можно редактировать при смене номера, а страница может содержать часы работы или форму для тех, кто сканирует в два часа ночи. Цена - одно лишнее нажатие для посетителя.
Когда прямая схема всё же уместна
Два случая, и оба реальны:
- Номер, который не изменится и не нуждается в измерении. Наклейка на лифте с номером ремонтной службы, внутренняя линия хелпдеска, табличка возле оборудования. Прямая полезная нагрузка короче, значит код меньше, и он работает без какого-либо сервиса позади вечно.
- Место без надёжной связи. Сканирование
tel:работает в подземном паркинге; короткая ссылка без сети не разрешится.
За пределами этих случаев непрямое обращение отрабатывает своё лишнее нажатие. Как отслеживать сканирования QR-кода разбирает, что вы получаете, когда сканирование становится запросом.
Проверьте перед печатью
Четыре проверки, и вторую обычно пропускают:
- Отсканируйте штатным приложением камеры и на iPhone, и на Android. Сторонние приложения-сканеры более снисходительны, чем встроенные, так что код, который работает только в приложении-сканере, - это код, который откажет в реальных условиях.
- Отсканируйте телефоном из другой страны, или хотя бы с другим установленным регионом. Именно это выявляет отсутствующий код страны.
- Проверьте, сохранилось ли предзаполненное сообщение, и решите, что делать, если оно не сохранилось.
- Распечатайте пробник в финальном размере и отсканируйте его при плохом освещении с того расстояния, с которого будет стоять реальный человек. Статья каким должен быть размер QR-кода содержит правила расстояния.
Меня однажды подвело именно почтовое приложение. Код mailto:, проверенный на рабочем телефоне с настроенным Outlook, выглядит идеально и вообще ничего не делает на обычном телефоне, на котором никогда не добавляли почтовый аккаунт. Если email - это основной призыв к действию, поставьте рядом с ним ссылку.
Читайте цикл опорных статей
Эта статья входит в кластер туториалов. Про весь процесс целиком статья QR-кампания с нуля рассказывает от планирования до измерения, а как создать QR-код разбирает выбор между статическим и динамическим.
Связанные статьи в блоге
- vCard QR-коды для визитных карточек, которые действительно сохраняют контакт
- QR-код для WiFi: подключение к сети без ввода пароля
- Динамические против статических QR-кодов: что на самом деле меняется
- Истекает ли срок действия QR-кодов? Что ломается и как это предотвратить
- Как сделать кликабельную ссылку в email, соцсетях и HTML
Частые вопросы
Как сделать QR-код для номера телефона?
Закодируйте текст tel:+14155552671, а не URL. Это может сделать любой генератор, принимающий произвольный текст. Когда кто-то его сканирует, телефон открывает набор номера с уже заполненным номером и ждёт, когда человек нажмёт вызов - он никогда не звонит сам, ни на iOS, ни на Android.
Какая полезная нагрузка нужна для SMS QR-кода?
SMSTO:+14155552671:Your message here - это формат с самой широкой поддержкой сканеров, а sms:+14155552671?body=Your%20message - это стандарт из RFC 5724. Поддержка предзаполненного сообщения - та часть, которая различается между телефонами и мессенджерами, так что относитесь к тексту как к приятному бонусу, а к номеру - как к тому, что обязательно должно работать.
Как создать email QR-код с темой письма?
Закодируйте mailto:[email protected]?subject=Quote%20request&body=Hi%20team. subject и body - это параметры запроса, определённые в RFC 6068, и оба значения должны быть URL-закодированы, поэтому пробел выглядит как %20. Сканирование открывает почтовое приложение человека по умолчанию с уже заполненными полями.
Нужен ли QR-коду номера телефона код страны?
Да, и с ведущим плюсом. Записывайте номер в формате E.164 - то есть +14155552671, а не 0415 555 2671 и не (415) 555-2671. Номер в национальном формате работает только для сканера в этой стране и молча не срабатывает для всех остальных, и это самая частая причина, по которой напечатанный код для звонка работает у команды, которая его тестировала, и ни у кого больше.
Можно ли отследить, сколько людей отсканировали QR-код телефона или email?
Не с прямой полезной нагрузкой tel:, SMSTO: или mailto:. Они кодируют действие, а не веб-запрос, так что ничего не доходит до сервера, который мог бы это посчитать. Если вам нужно число, закодируйте вместо этого короткую ссылку на небольшую страницу с кнопками звонка и сообщения и считывайте клики там.
Что происходит, если номер телефона меняется после печати?
Прямой код tel: становится неверным навсегда, потому что номер зашит в узор. Остаётся перепечатать или перенаправить - а перенаправление возможно только если код кодирует ссылку, которую вы контролируете, а не сам номер. Для всего, что живёт дольше, чем сама кампания, кодируйте ссылку.
Попробуйте Elido
Вставьте URL - получите короткую ссылку
Без регистрации. Ссылка живёт 30 дней. Зарегистрируйтесь, чтобы оставить её навсегда.
Бесплатно, без регистрации · 2 в день