Русский

Инструменты разработчика · Кодер и декодер URL

Почему незакодированные символы & и = в значениях UTM незаметно повреждают отчеты вашей кампании

· Почему это важно

URL-кодировка utm-отслеживание аналитика

UTM параметр кампании разделен амперсандом на несколько параметров аналитики
Оригинальная векторная иллюстрация ToolAcre

Название кампании, содержащее & или =, выглядит нормально в ссылке, но каждый аналитический инструмент разбивает его на два параметра. В этом посте показано, что происходит, как безопасно кодировать значения и как проверять ссылку перед ее отправкой.

Когда параметры UTM разделяются на незакодированные символы амперсанда

Имя кампании, содержащее & или =, выглядит нормально при вводе ссылки, но каждая аналитическая система разделяет его по амперсанду и обрабатывает остаток как новый параметр. Весна и лето становятся в отчетах двумя отдельными значениями кампании. Знак равенства внутри значения создает аналогичный разрыв: utm_campaign=2024=best незаметно повреждает пару ключ-значение. Эти символы зарезервированы в синтаксисе запроса для структуры, а не для содержания, поэтому каждый инструмент, анализирующий URL-адреса, считывает их как разделители.

Анализатор URL не может узнать, что вы имели в виду их как данные. Кодирование их как %26 и %3D сохраняет их как литеральные символы внутри значений. Без кодирования ваша аналитическая панель получает неполные или поврежденные названия кампаний и распределяет трафик по непредусмотренным сегментам. Одна общая ссылка может создать полдюжины фантомных кампаний, если имя содержит несколько специальных символов.

Как анализируются строки запроса — & разделяет пары и = отделяет ключ от значения без экранирования, если вы его не предоставите.

Анализ строк запроса показывает, почему амперсанд и равенство опасны в значениях. Амперсанд разделяет независимые пары ключ=значение: ?utm_source=email&utm_campaign=sale означает два отдельных параметра. Внутри значения неэкранированный амперсанд завершает текущую пару и начинает новую. Знак равенства отделяет ключи от значений: если utm_campaign=Q3&2024, синтаксический анализатор видит utm_campaign=Q3, а затем потерянный параметр «2024» без значения.

Этот анализ происходит на нескольких уровнях: браузер считывает URL, сервер получает запрос, а ваша аналитическая платформа снова декодирует строку запроса. Каждый уровень применяет одни и те же правила и приходит к одинаковым выводам о том, где начинаются и заканчиваются параметры. Вы не можете предупредить последующих потребителей о том, что ваш амперсанд особенный; Структура URL детерминирована и однозначна.

Какие символы необходимо кодировать в значении UTM — &, =, #, ?, пробелы и не-ASCII, и почему # — самый хитрый вариант

Символы, требующие кодирования в значениях UTM, включают амперсанд, равенства, решётку, вопросительный знак, пробелы и любые буквы и символы, отличные от ASCII. Хэш-символ самый коварный: #anything рассматривается как идентификатор фрагмента, который браузер вообще никогда не отправляет на сервер. Название кампании, заканчивающееся хешем, теряет все после себя еще до того, как запрос покинет ваш браузер. Пробелы должны стать %20 по той же структурной причине: они недопустимы в URL-адресах без кодировки.

Не ASCII, например, буква e с акцентом или китайские символы, закодированные как UTF-8 байт, а затем экранированные в процентах: буква e с акцентом становится %C3%A9. Тщательно создавайте свои ссылки или используйте форму, которая кодируется за вас. Инструменты, позволяющие вставить название кампании и создать полную ссылку, обычно выполняют этот шаг автоматически, но формула электронной таблицы или объединение вручную возлагают на вас ответственность.

Рабочий пример: кодирование «Продажи и запуска в третьем квартале» как utm_campaign — до и после, и как отчет читает каждую версию

Рабочий пример: кодирование «Продажа и запуск в третьем квартале» как utm_campaign ясно показывает проблему. Без кодирования URL заканчивается амперсандом: ?utm_campaign=Q3 Sale &. Остальное исчезает или становится деформированным новым параметром. При правильном кодировании %26 заменяет амперсанд: ?utm_campaign=Q3%20Sale%20%26%20Launch. Пробел также кодируется как %20. Теперь вся строка поступает на вашу аналитическую платформу в целости и сохранности и отображается как одна кампания.

Вставьте незакодированную и закодированную версию в отдельные декодеры URL и посмотрите, чем они отличаются. Закодированная форма декодируется обратно в исходный текст с сохранением всех специальных символов. Используйте кодировщик URL для проверки любой ссылки UTM, прежде чем делиться ею с членами команды или публиковать ее в кампаниях по электронной почте или на платформах социальных сетей.

Формулы электронных таблиц и построители ссылок — когда кодирование происходит или не выполняется в обычных рабочих процессах, описанных в общих чертах.

Формулы электронных таблиц и специальные построители ссылок часто терпят неудачу, поскольку они объединяют строки без кодирования. Формула CONCATENATE, создающая URL, может создавать вполне корректный текст, который ломается при открытии как ссылка. Кодирование должно происходить внутри формулы, а не после. Многие службы сокращения ссылок и платформы отслеживания электронной почты автоматически кодируют для вас, поэтому тестируйте созданную ссылку, а не предполагайте, что создание вручную безопасно.

Конструкторы кампаний с перетаскиванием в Google Analytics, HubSpot и подобных платформах обрабатывают кодирование внутри себя. Если вы создаете ссылки вручную в электронной таблице или вставляете их в Slack, предполагайте, что они не будут кодироваться автоматически. Прежде чем распространять ссылку, запустите окончательный вариант URL через декодер, чтобы убедиться, что все специальные символы представлены как %XX.

Распространенные ошибки — кодирование всего URL и смешивание + и %20, так что одна кампания превращается в две.

Распространенные ошибки включают в себя полное кодирование URL, которое нарушает его структуру из-за кодирования двоеточий и косых черт в https://.. Другая ошибка смешивает плюс и %20 для пробелов: некоторые системы используют плюс (кодировка устаревшей формы), в то время как современный стандарт использует %20. Если в одном значении кампании используется плюс, а в другом — %20, они отображаются как разные кампании, хотя и представляют один и тот же текст. Сохраняйте последовательность и используйте %20 для компонентов URL.

Двойное кодирование также происходит, когда построитель ссылок кодирует один раз, а вы кодируете снова, создавая %2526 вместо %26. После однократного декодирования вы получите %26 вместо амперсанда. Символ становится буквальной строкой процентов два-шесть, а не амперсандом. Проверьте промежуточные шаги в процессе сборки, чтобы убедиться, что кодирование происходит ровно один раз для каждого значения.

Что сюда не входит: конфигурация аналитической платформы и модели атрибуции.

Конфигурация аналитики и моделирование атрибуции полностью зависят от получения стабильно точных данных о кампании. Если ваши значения UTM будут искажены или разделены, отчеты не смогут правильно сопоставить кампании, а модели мультитач-атрибуции не смогут точно присвоить ценность. Единичная ошибка кодирования распространяется на все отчеты, в которых используются параметры, существенно искажая сравнения по месяцам или между кампаниями.

Проверьте ссылки своей кампании перед полным запуском. Вставьте их в декодер URL и убедитесь, что каждый специальный символ в названии кампании закодирован правильно. Кодер URL показывает одновременно закодированные и декодированные формы, поэтому вы можете проверить, произошло ли кодирование, и декодирование точно восстанавливает исходный текст.

Вывод: кодируйте каждое значение один раз — как кодировщик и декодер URL создает безопасное значение запроса из любого названия кампании.

Вывод прост: кодируйте каждое значение один раз, используя правильные правила процентного кодирования. Знак амперсанда или равенства внутри параметра UTM должен стать %26 или %3D, прежде чем URL будет завершен и опубликован. Кодер URL в однозначном режиме выполняет это кодирование автоматически и надежно. Вставьте название своей кампании, выберите режим значения, скопируйте закодированный результат в шаблон ссылки.

Каждый аналитический инструмент, обрабатывающий URL-адреса, применяет одни и те же правила анализа. Не существует способа обойти это и нет инструмента, который мог бы угадать ваши намерения или намерения. Этап кодирования не является обязательным; это единственный способ сохранить специальные символы внутри значений строки запроса. Убедитесь, что ваши ссылки работают должным образом, прежде чем делиться ими с заинтересованными сторонами или публиковать их в кампаниях.