Как подменять контент на сайте без сервисов и костылей

В статье расскажу, как без сервисов и костылей делать подмену контента на сайте в зависимости от UTM-метки или любого другого параметра из URL. Зачем = для повышения конверсии.

Что такое подмена контента и зачем нужна

Предположим, вы автосервис и у вас куча различных направлений по услугам.

У вас в наличии простой лендинг, где все услуги и вся информация в одной куче. Один заголовок, одно описание на все направления.

Вы запускаете контекстную рекламу и у вас получилось 3 отдельных рекламных кампании:

  • Кузовной ремонт.
  • Удаление катализатора.
  • Диагностика.

Логично — чтобы конверсия была выше, для каждого сегмента ЦА нужен индивидуальный посыл. Кто ищет кузовной ремонт — нужно показать на первом экране заголовок и выгоды по кузовному ремонту, кто хочет удалить катализатор — надо показывать другой контент и т.д

Чтобы это реализовать, нужно либо писать скрипт, либо использовать сервисы (например YAGLA), либо можно использовать встроенный функционал конструкторов (например в Tilda).

Итого: подмена контента нужна для создания индивидуального предложения определенному сегменту ЦА, что в свою очередь повышает конверсию.

Как это работает

Подмена контента осуществляется по данным из UTM-метки или параметра URL.

Это может быть utm_campaign, utm_content, utm_term, можно прописать любые свои параметры - ?parametr=raz-dva-tri.

Минус сторонних сервисов и самописных скриптов — это “костыли” с ограниченным функционалом + если писать скрипты, нужно уметь кодить + сервисы стоят денег.

Как замутить самому, без сервисов и костылей

Использовать крутой, всем доступный и бесплатный инструмент — Google Tag Manager.

Это менеджер тегов, с помощью которого вы можете на лету вносить изменения в код сайта (в DOM-дерево).

Установка GTM

Регаемся, создаем контейнер, указываем веб-сайт, получаем код и добавляем по инструкции на свой сайт.

ставим GTM
ставим GTM

Как делать подмену контента по UTM-метке в GTM

Начинаем колдовать.

1. Получаем значение из UTM-метки или параметра URL

Заходим в раздел “Переменные” -> жмем создать.

Пишем имя переменной, жмем на конфигурацию. Выбираем тип переменной — URL.

Выбираем “тип компонента” - > Запрос.

В поле “Ключ запроса”, пишем метку, из которой будем брать данные, например это utm_term.

получили значение UTM в переменную
получили значение UTM в переменную

Сохраняем переменную.

2. Создаем триггер

Переходим в раздел триггеров: жмем создать, пишем имя.

Выбираем тип триггера — просмотр страницы.

Выбираем, когда активировать триггер: берем нашу переменную из предыдущего шага - “UTM_term”. Выбираем и пишем “Содержит: keyword”.

создаем триггер
создаем триггер

Логика простая, когда пользователь смотрит страницу с нужной вам UTM-меткой, срабатывает триггер, который активирует ТЕГ, а тег изменяет код на сайте.

3. Создаем тег подмены

Переходим в раздел Теги.

Жмем создать, пишем имя.

Далее в конфигурации тега, выбираем “Пользовательский HTML”.

В триггерах выбираем наш созданный триггер.

В HTML пишем JS код (это лишь пример, JS код у каждого будет индивидуальный):

<script> x = document.getElementsByTagName('h1'); x[0].innerHTML = 'Наш оригинальный заголовок'; </script>
создаем тег
создаем тег

Что делает этот код

В переменную X берем заголовок H1, т.е с помощью getElementsByTagName мы ищем в коде (дереве) сайта элемент H1.

Далее, обращаемся к массиву переменной X и задаем параметру innerHTML нужное значение.

Profit.

Получается, вы можете крутить-вертеть как угодно, подменять контент на лету на динамические параметры и пр.

Суть метода в двух словах:

В переменную GTM мы помещаем “ключ”, по которому будем менять контент.

Через триггер мы ловим этот ключ, из-за триггера срабатывает тег -> выполняется JS код и меняет контент на сайте.

Под каждый креатив, рекламную кампанию, ключевое слово — вы можете показывать разный контент, подменяя заголовки, картинки, текст и что угодно.

Из примера выше, получается, когда utm_term будет содержать keyword, заголовок на сайте подменится на “ваш новый заголовок”.

Еще раз

Предположим, в одной рекламной кампании, в контексте, у вас есть 2 группы ключей:

  • монтаж
  • демонтаж

Вы хотите, чтобы по монтажу на лендинге был заголовок “Монтаж”, по демонтажу “Демонтаж”.

Все просто = в триггере, который “ловит ключ”, указываем — “содержит: монтаж” и “не содержит: демонтаж”.

Profit.

GTM очень гибкий инструмент. Нужно лишь немного понимать верстку и уметь гуглить куски JS кода.

Выводы

Рекомендую потестить всем, кто льет трафик на лендинги. Более глубокая сегментация и разный контент под каждый сегмент ЦА может сильно повысить конверсию и отдачу от рекламы.

Еще, например, можно запустить сплит-тест и посмотреть, какие заголовки и текст принесут больше конверсий (хотя более удобный инструмент для а/б тестов — Google Optimize).

Также подписывайтесь на мой телеграм канал, где я пишу небольшие статьи о контекстной рекламе (фишки, чек-листы и пр.).

60
48 комментариев
","lang":""}},{"type":"media","cover":false,"hidden":false,"anchor":"","data":{"items":[{"title":"создаем тег","image":{"type":"image","data":{"uuid":"dbe96fe3-7e6e-5059-a799-d40b5db5bb57","width":1891,"height":825,"size":24751,"type":"png","color":"e9eaea","hash":"","external_service":[]}}}]}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Что делает этот код

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

В переменную X берем заголовок H1, т.е с помощью getElementsByTagName мы ищем в коде (дереве) сайта элемент H1.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Далее, обращаемся к массиву переменной X и задаем параметру innerHTML нужное значение.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Profit.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Получается, вы можете крутить-вертеть как угодно, подменять контент на лету на динамические параметры и пр.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Суть метода в двух словах:

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

В переменную GTM мы помещаем “ключ”, по которому будем менять контент.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Через триггер мы ловим этот ключ, из-за триггера срабатывает тег -> выполняется JS код и меняет контент на сайте.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Под каждый креатив, рекламную кампанию, ключевое слово — вы можете показывать разный контент, подменяя заголовки, картинки, текст и что угодно.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Из примера выше, получается, когда utm_term будет содержать keyword, заголовок на сайте подменится на “ваш новый заголовок”.

"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Еще раз"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Предположим, в одной рекламной кампании, в контексте, у вас есть 2 группы ключей:

"}},{"type":"list","cover":false,"hidden":false,"anchor":"","data":{"items":["монтаж","демонтаж"],"type":"UL"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Вы хотите, чтобы по монтажу на лендинге был заголовок “Монтаж”, по демонтажу “Демонтаж”.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Все просто = в триггере, который “ловит ключ”, указываем — “содержит: монтаж” и “не содержит: демонтаж”.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Profit.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

GTM очень гибкий инструмент. Нужно лишь немного понимать верстку и уметь гуглить куски JS кода.

"}},{"type":"header","cover":false,"hidden":false,"anchor":"","data":{"style":"h2","text":"Выводы"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Рекомендую потестить всем, кто льет трафик на лендинги. Более глубокая сегментация и разный контент под каждый сегмент ЦА может сильно повысить конверсию и отдачу от рекламы.

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Еще, например, можно запустить сплит-тест и посмотреть, какие заголовки и текст принесут больше конверсий (хотя более удобный инструмент для а/б тестов — Google Optimize).

"}},{"type":"text","cover":false,"hidden":false,"anchor":"","data":{"text":"

Также подписывайтесь на мой телеграм канал, где я пишу небольшие статьи о контекстной рекламе (фишки, чек-листы и пр.).

"}}],"summaryContent":null,"isExistSummaryContent":false,"warningFromEditor":null,"warningFromEditorTitle":null,"counters":{"comments":48,"favorites":225,"reposts":0,"views":47,"hits":11854,"reads":null,"online":0},"dateFavorite":0,"hitsCount":11854,"isCommentsEnabled":true,"isLikesEnabled":true,"isRemovedByUserRequest":false,"isFavorited":false,"isPinned":false,"repostId":null,"repostData":null,"subscribedToTreads":false,"isEditorial":false,"isAudioAvailable":true,"audioUrl":null,"isAudioAvailableToGenerate":false,"commentEditor":{"enabled":true,"who":null,"text":"","until":null,"reason":null,"type":"everybody"},"isBlur":false,"isPublished":true,"isDisabledAd":false,"withheld":[],"ogTitle":null,"ogDescription":null,"url":"https://vc.ru/marketing/219873-kak-podmenyat-kontent-na-saite-bez-servisov-i-kostylei","author":{"id":512437,"name":"Александр / Маркетолог","nickname":null,"description":"Создаю продающие лендинги для Яндекс Директ с конверсией от 5% и запускаю рекламу. Бесплатно проведу аудит рекламы и сайта. Связь: https://t.me/alasheev_ru","uri":"","avatar":{"type":"image","data":{"uuid":"534139e7-6a03-5c7d-aa1c-c29513780965","width":880,"height":880,"size":310463,"type":"png","color":"131214","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQIAHAAcAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAACAYH/8QAJxAAAgAEBAUFAAAAAAAAAAAAAQIDBAUGAAcRIQgTFCMxEiIyQmH/xAAYAQEAAwEAAAAAAAAAAAAAAAAFAAECA//EAB0RAAICAgMBAAAAAAAAAAAAAAABAgQDESIxMvD/2gAMAwEAAhEDEQA/ANbtK7cprDmpSwrdn7Qh2jSqTJieZXhMkszNo/PIOilgR8vA08a4JsZMyswhHpjVXDXlTyTn6XyIO4OGnhCqNeqVQ6e3j1U3GjduLDK+5ydiDoRvthHbB9IKeREaMnApnK6RXVmqsgrEMQSPVB2P5jtrkmUm1FoIkSPG5jd5/J+xxGzKP//Z"}},"cover":{"cover":{"type":"image","data":{"uuid":"8339bdf5-8a0f-5ec8-8271-754874f91a50","width":1536,"height":768,"size":601031,"type":"png","color":"272627","hash":"","external_service":[],"base64preview":"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAAKAAoDAREAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAABwMF/8QAIhAAAgEEAQQDAAAAAAAAAAAAAQMCBAUREgAGEyExFCJx/8QAGAEBAAMBAAAAAAAAAAAAAAAABAACAwX/xAAiEQABAwIGAwAAAAAAAAAAAAABAAIDESEEEjFRcdEFkZL/2gAMAwEAAhEDEQA/AAWivVqoLemlXe6Ks7qFVEimpMoxmxmgi866qZHJOZE4BIzyseeSRjKWNjsOe9VJssTHv2vpUnjpUf0zai9hb1/0/Ge52jG8mQBz5AIGD+86JwbgaW9oDfLxkAhrvlEl9raxL+0mrcuDELjOMWECQHoED3jh5GgSCgS2OJjNStn5D5faT2EnySZHJPN8xRgxuy//2Q=="}},"cover_y":90},"achievements":[{"title":"Год на vc.ru","code":"registration_1_year","description":"Первый год с vc.ru. Получена 24 июля 2025.","previewUuid":"0d11c244-49de-50e7-894e-b9b27945d42b","formats":{"glb":"https://static.vc.ru/achievements/fish.glb","usdz":"https://static.vc.ru/achievements/fish.usdz"},"viewData":{"contentColor":"#C67AA3","textMaxWidth":0.634765625,"textX":0.5888671875,"textY":0.54296875,"logoX":0.5859375,"logoY":0.6669921875,"logoXNoText":0.6044921875,"logoYNoText":0.5439453125},"id":4916576,"userId":512437,"count":0,"shareImage":"https://api.vc.ru/achievements/share/4916576"},{"title":"3 года на vc.ru","code":"registration_3_years","description":"Провёл 3 года вместе с vc.ru. Получена 23 июля 2025.","previewUuid":"d9d72ac5-bcb5-55e0-8c72-b99251e5cdd9","formats":{"glb":"https://static.vc.ru/achievements/shark.glb","usdz":"https://static.vc.ru/achievements/shark.usdz"},"viewData":{"contentColor":"#8E6F09","textMaxWidth":0.66796875,"textX":0.5205078125,"textY":0.341796875,"logoX":0.5205078125,"logoY":0.4609375,"logoXNoText":0.5,"logoYNoText":0.3662109375},"id":1292489,"userId":512437,"count":0,"shareImage":"https://api.vc.ru/achievements/share/1292489"},{"title":"5 лет на vc.ru","code":"registration_5_years","description":"Провёл 5 лет вместе с vc.ru. Получена 23 июля 2025.","previewUuid":"a9140d54-73b8-5f40-afa8-449fbaafd42b","formats":{"glb":"https://static.vc.ru/achievements/whale.glb","usdz":"https://static.vc.ru/achievements/whale.usdz"},"viewData":{"contentColor":"#8E6F09","textMaxWidth":0.66796875,"textX":0.533203125,"textY":0.658203125,"logoX":0.533203125,"logoY":0.77734375,"logoXNoText":0.4375,"logoYNoText":0.66015625},"id":65781,"userId":512437,"count":0,"shareImage":"https://api.vc.ru/achievements/share/65781"}],"lastModificationDate":1765025649,"isSubscribed":false,"isSubscribedToNewPosts":false,"isMuted":false,"isAvailableForMessenger":true,"badgeId":null,"isDonationsEnabled":false,"isPlusGiftEnabled":true,"isUnverifiedBlogForCompanyWithoutPro":false,"isRemovedByUserRequest":false,"isFrozen":false,"isDisabledAd":false,"isPlus":false,"isVerified":false,"isPro":false,"yandexMetricaId":null,"badge":null,"isOnline":false,"tgChannelShortname":null,"isUnsubscribable":true,"type":1,"subtype":"personal_blog"},"subsite":{"id":199113,"name":"Маркетинг","description":"Рекламные кейсы из России и других стран, советы по продвижению, маркетинг и digital.","uri":"/marketing","avatar":{"type":"image","data":{"uuid":"d66009fe-9bf0-52da-bdbf-4c758eba39e7","width":2400,"height":2400,"size":841299,"type":"jpg","color":"f97373","hash":"0c1cf06cf0d010","external_service":[]}},"cover":{"type":"image","data":{"uuid":"5488a646-f32d-57a6-a31f-d290afc4388a","width":960,"height":280,"size":177,"type":"png","color":"fc7c7c","hash":"","external_service":[]}},"lastModificationDate":1661337194,"isSubscribed":false,"isSubscribedToNewPosts":false,"isMuted":false,"isAvailableForMessenger":false,"isDisabledAd":false,"nickname":"marketing","isUnsubscribable":true,"badge":null,"badgeId":null,"isDonationsEnabled":false,"isOnline":false,"isPlus":false,"isUnverifiedBlogForCompanyWithoutPro":false,"isVerified":false,"isRemovedByUserRequest":false,"isFrozen":false,"isPro":false,"type":2,"subtype":"community"},"reactions":{"counters":[{"id":1,"count":60}],"reactionId":0},"isNews":false,"source":null,"clusters":[],"donations":{"amount":0,"isDonated":false},"commentsSeenCount":null,"keywords":[],"media":null,"customCover":null,"robotsTag":null,"categories":[],"isAnonymized":true}};