QR-код на листовке, визитке или упаковке приводит человека на сайт. Но если на всех носителях зашита одна обычная ссылка, аналитика не покажет, откуда именно пришёл посетитель.
Чтобы разделить переходы, к адресу страницы добавляют UTM-метки, а затем создают QR-код: офлайн-носитель → ссылка с UTM-метками → QR-код → сайт → отчёт в аналитике.

Сам QR-код ничего не знает о рекламной кампании. Он хранит адрес, текст, контакт или другие данные.
Представим, что одна ссылка размещена:
Переходы появятся в аналитике, но сравнить носители не получится. Для системы это один адрес.
UTM-метки добавляют к ссылке сведения об источнике, канале и кампании. Благодаря этому можно увидеть, какое размещение принесло визиты, заявки или покупки.
Камера распознала код, человек открыл ссылку, аналитика зарегистрировала визит — это три разных события.
Если пользователь навёл камеру, но не открыл страницу, веб-аналитика ничего не запишет.

Готовая ссылка может выглядеть так:
https://site.ru/sale/?utm_source=flyer&utm_medium=qr&utm_campaign=summer_sale&utm_content=layout_a
Для офлайн-QR нет единственной обязательной схемы именования. Ниже используется практический вариант:
Можно выбрать другую систему. Главное — зафиксировать её до запуска и не менять названия посреди кампании.
В этом параметре можно указать, где размещён код:
utm_source=flyer
utm_source=packaging
utm_source=store_windowЕсли листовка сначала называется flyer, не стоит через неделю заменять значение на leaflet. Аналитика увидит два источника, хотя речь идёт об одном типе носителя.
Для всех QR-размещений удобно использовать одно значение: utm_medium=qr
Так переходы через QR-коды можно собрать в одну группу, а отдельные носители сравнивать по utm_source.
Параметр объединяет размещения, относящиеся к одной акции:
utm_campaign=summer_sale
utm_campaign=new_collection
utm_campaign=store_openingЛистовка, упаковка и вывеска могут относиться к одной кампании, но иметь разные значения utm_source.
utm_content — макет, филиал или точка размещенияДополнительный параметр помогает различать варианты внутри одного носителя:
utm_content=layout_a
utm_content=store_center
utm_content=stand_15Через него можно разделить два дизайна листовки, несколько магазинов, выставочные стенды или визитки разных менеджеров.
Первый параметр начинается после знака ?, остальные присоединяются через &.
Исходная ссылка: https://site.ru/catalog/?category=rings
Ссылка с UTM: https://site.ru/catalog/?category=rings&utm_source=packaging&utm_medium=qr&utm_campaign=repeat_purchase
Второй знак ? ставить нельзя: ссылка может обрабатываться неправильно.
Чтобы одна кампания не распалась в отчёте на несколько строк:
Яндекс Метрика учитывает регистр: Flyer и flyer будут разными значениями. Яндекс: https://yandex.ru/support/metrica/ru/reports/tags-utm
UTM работают и при хаотичных названиях. Просто отчёт потом приходится разбирать как семейный архив без подписей на фотографиях.
| Сценарий | utm_source | utm_medium | utm_campaign | utm_content |
| Листовка | flyer | qr | summer_sale | layout_a |
| Визитка | business_card | qr | consultation | manager_ivan |
| Упаковка | packaging | qr | repeat_purchase | box_small |
| Витрина | store_window | qr | store_opening | main_entrance |
| Выставочный стенд | expo | qr | expo_2026 | stand_15 |
Если листовка и упаковка ведут на одну страницу, для них всё равно создают разные ссылки:
https://site.ru/sale/?utm_source=flyer&utm_medium=qr&utm_campaign=summer_sale
https://site.ru/sale/?utm_source=packaging&utm_medium=qr&utm_campaign=summer_sale
Страница одна, но QR-коды будут разными. В отчёте появится возможность сравнить носители.
Для нескольких филиалов можно использовать utm_content:
store_center
store_north
store_airport| Носитель | Место размещения | Кампания | Итоговая ссылка | Имя QR-файла |
Файлам лучше давать понятные названия:
qr_flyer_summer_sale_center.png
qr_packaging_repeat_purchase.pngФайл qr-final-new-2-really-final.png обычно означает, что порядок уже покинул проект.
Сначала нужно окончательно собрать ссылку. После этого из неё создают код.
Откройте ссылку в браузере и убедитесь, что:
Редиректы между доменами, языковыми версиями или протоколами иногда удаляют параметры. Яндекс также относит потерю UTM при перенаправлении и отсутствие счётчика на конечной странице к причинам неполных данных. Яндекс: https://yandex.ru/support/metrica/ru/reports/tags-utm

Вставьте окончательный адрес в генератор QR-кодов /tools/qr-code-generator/, настройте оформление и скачайте готовый файл.
Порядок простой:
Отсканируйте код и пройдите весь маршрут:
сканирование → открытие страницы → загрузка счётчика → появление визита в отчёте.
Данные могут появиться не мгновенно. Для быстрой проверки используйте доступные отчёты реального времени или журнал визитов.
После вставки кода в макет проверьте его ещё раз:
Правила контраста, размера, формы и добавления логотипа разобраны в статье о дизайне QR-кода /blog/dizayn-qr-koda/.
QR-коду не мешает длинный URL: пользователю не придётся вводить его вручную.
Для разовой кампании проще использовать конечную ссылку. Для материалов, которые будут использоваться годами, можно создать собственный управляемый адрес: site.ru/go/catalog
Он перенаправляет посетителя на нужную страницу. Если адрес страницы изменится, редирект можно обновить без перепечатки носителя.
Сторонний сокращатель тоже решает эту задачу, но работа напечатанного QR-кода будет зависеть от чужого сервиса и его тарифа.
В Яндекс Метрике откройте:
Отчёты → Источники → Метки UTM.
Официальная справка Яндекса указывает этот маршрут и поясняет, что отчёт группирует статистику по парам «атрибут — значение» UTM-метки. Яндекс: https://yandex.ru/support/metrica/ru/reports/tags-utm
В отчёте можно сравнить:
Смотреть только на число переходов недостаточно. Носитель с меньшим трафиком может принести больше заявок или покупок.
В GA4 UTM-параметры передаются в отчёт «Привлечение трафика». Google рекомендует использовать как минимум utm_source, utm_medium и utm_campaign, а utm_content — для различения вариантов рекламных материалов. Поддержка Google: https://support.google.com/analytics/answer/10917952?hl=ru
Метрика связывает UTM с визитом. Чтобы менеджер видел источник конкретной заявки, сайт должен передать параметры вместе с формой в CRM.
Подробнее этот маршрут разобран в статьях:
| Аналитика показывает | Аналитика не гарантирует |
|---|---|
| источник перехода | число распознаваний кода камерой |
| рекламную кампанию | личность посетителя |
| носитель, филиал или макет | учёт просмотра ссылки без открытия |
| визиты и целевые действия | регистрацию каждого сканирования |
| сравнение размещений | абсолютное совпадение данных разных систем |
Статистика может быть неполной, если пользователь не открыл ссылку, страница не загрузилась, UTM потерялись при редиректе или браузер заблокировал счётчик.
Этого не нужно пугаться. Задача UTM — не посчитать каждое движение камеры, а сравнить рекламные размещения по единой методике.
В статическом QR-коде адрес записан непосредственно в изображение. После печати заменить его нельзя.
«Динамическим» обычно называют QR-код, ведущий на промежуточный управляемый адрес. Конечную страницу такого адреса можно изменить, но работоспособность зависит от владельца редиректа или стороннего сервиса.
Для статического кода правило простое:
ссылка, UTM-метки и конечная страница должны быть проверены до печати.
Подготовка размеченной ссылки занимает несколько минут. Исправление тиража с неправильным адресом занимает дольше и почему-то всегда стоит заметно дороже.