{"id":14279,"url":"\/distributions\/14279\/click?bit=1&hash=4408d97a995353c62a7353088166cda4ded361bf29df096e086ea0bbb9c1b2fc","title":"\u0427\u0442\u043e \u0432\u044b\u0431\u0435\u0440\u0435\u0442\u0435: \u0432\u044b\u0435\u0445\u0430\u0442\u044c \u043f\u043e\u0437\u0436\u0435 \u0438\u043b\u0438 \u0437\u0430\u0435\u0445\u0430\u0442\u044c \u0440\u0430\u043d\u044c\u0448\u0435?","buttonText":"","imageUuid":""}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Установка GTM

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

ставим GTM

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

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

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

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

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

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

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

получили значение 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).

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

0
48 комментариев
Написать комментарий...
Дмитрий Александрович

$url = 'https://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if (strpos($url, 'утм_метка') !== false) {
echo 'подменный контент';
}
else {
echo 'обычный контент';
}

Не удобнее ли один раз прописать вот так в коде страницы, чем делать JS-костыли, при использовании которых подменяемое содержимое будет "моргать" при загрузке страницы?

Ответить
Развернуть ветку
Александр / Маркетолог
Автор

Так надо же еще вытащить "элемент", в котором будет подменяться контент?) Для меня удобнее на JS. Плюс решил ты запустить сегодня новую РК, где 5 креативов и под каждый хочешь потестить разные заголовки. Что удобнее, лезть в код страницы или через интерфейс GTM за 5 мин все сделать.

Ответить
Развернуть ветку
Антон Пятков

Индексироваться как будет?

Ответить
Развернуть ветку
Александр / Маркетолог
Автор

Это для ppc каналов, для seo так нельзя делать.

Ответить
Развернуть ветку
Ilya Lapenkov

Можно;)

Ответить
Развернуть ветку
Костянтин Черних

Насколько знаю, Гугл очень не любит подмену контента, ибо это пахнет фишингом.  Или ютм метка зачтется как гет часть урла?

Ответить
Развернуть ветку
Ilya Lapenkov

Очевидно второе) любой гет параметр это новая страница

Ответить
Развернуть ветку
Denis Bystruev

У автора бесплатный хостинг со статическим контентом без скриптинга на сервере.

Ответить
Развернуть ветку
Diquman

Господи, 100 руб в месяц нет что ли

Ответить
Развернуть ветку
Denis Bystruev

Может быть, он из принципа

Ответить
Развернуть ветку
Alex

псс. parse_str()

Ответить
Развернуть ветку
Sergey

$_GET['utm_term']

Ответить
Развернуть ветку
Alex Yen

php разумеется лучше, только внутри появятся elseif, на случай, если клиент зайдет просто по базовой ссылке

Ответить
Развернуть ветку
Nazar Semin

В чём проблема вызывать js в <head> window.addEventListener('DOMContentLoaded', (event) => {
//code
});
И "моргать" не будет!

Ответить
Развернуть ветку
Mike Rudine

А почему просто не сделать отдельные страницы на каждый продукт? 

Ответить
Развернуть ветку
Алексей Медведев

Подчеркнуть, как круто уметь гуглить js, который не оптимизируется, гасит скорость загрузки и не индексируется. Фича в том, чтоб был один "лендинг", а не многостраничный сайт....) я так это вижу. По мне, такое себе решение. Проще уж сделать нормальный многостраничник. 

Ответить
Развернуть ветку
Appen Dmitry

Ну если лендинг - одноэкранник, где кроме заголовка, креатива и формы захвата ничего нет, тогда может и проще. А если лендос на несколько экранов и нужно поменять контент? Все страницы редактировать?

Ответить
Развернуть ветку
Александр Антипов

Думаю что получается сильно хлопотно, а вы так не думаете?

Ответить
Развернуть ветку
Mike Rudine

Продублировать код в новую страницу и исправить три строчки это сильно хлопотно? Ну фиг знает, это явно проще чем скрипты пилить и к тому же индексируется адекватнее

Ответить
Развернуть ветку
Александр Антипов

Ну у каждого на этот момент своё мнение. Пусть даже оно глупое, но своё)))

Ответить
Развернуть ветку
Mike Rudine

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

Ответить
Развернуть ветку
Александр Антипов

Я вот хотел спросить: а где этот идеальный мир? Такое ощущение, что мы в разных сказках живем)

Ответить
Развернуть ветку
Дмитрий Воробьёв

Минусы данного решения (кроме того, что это жесточайший костыль):
1. GTM может время от времени глючить или не всегда отрабатывать в некоторых браузерах или иметь проблемы с кэшом.
2. GTM чаще всего юзают маркетеры, которые в JS вообще не алле, в свою очередь многие разработчики в GTM не алле. В итоге непонятно, чья это зона ответственности на проекте и как это покрыть тестами.
3. Сложно писать и отлаживать код более чем в пару строк, который сможет не только менять одну картинку и заголовок, а что-то большее.
Google Optimize кстати вполне себе решение данного вопроса.

Ответить
Развернуть ветку
Александр Слепов

Ну это вообще фича из серии "на коленке". Для серьёзного проекта, где работает большая команда и даже есть "зоны ответственности", я бы не стал юзать, а вот для одностраничника, созданного для разведки ниши и похожих целей - вполне. Хотя во втором случае можно просто потратиться на ноукод-решение с таким функционалом и сэкономить своё время:)

Ответить
Развернуть ветку
Борис Агафонцев

Какое днище. 

Ответить
Развернуть ветку
Myroslav D

Может ли гугл посчитать такое поведение за клоакинг?

Ответить
Развернуть ветку
Андрей Лещев

+ Аналогичный вопрос возник

Ответить
Развернуть ветку
Дмитрий Александрович

Это не клоакинг, технически страница с GET-параметром в урле и страница без него - это две отдельные страницы, контент на которых может отличаться. Ну и клоакинг - это в первую очередь про умысел обмана поисковых роботов, а не про используемую технологию. Например, подменять контент можно по IP для поисковых роботов и для обычных пользователей, а можно по IP для пользователей разных регионов (мультирегиональность на одном домене), первое влечет наложение санкций, а второе нет.

Ответить
Развернуть ветку
Иннокентий Фефилов

Мы на тильде такую штуку делаем обычно.

Ответить
Развернуть ветку
Александр / Маркетолог
Автор

да, в тильде есть такой функционал

Ответить
Развернуть ветку
Алексей Абрамов

Согласно правилам яндекс маркета нельзя показывать всплывающие окна на сайте, так вот все их проверяющие заходят на сайт по предоставленной ссылке в хмл фиде, в ссылку добавляем ютм-ку, и у себя пишем мол не показывать если ютмка сурс яндекс маркет. Это помогло пройти модерацию, ведь всплывающих окон при проверке нет :)

Ответить
Развернуть ветку
Сергей Кондратьев

Спасибо, в закладки)
В сравнении с Яглой такое решение удобнее, как по мне )

Ответить
Развернуть ветку
Алексей Стычёв

В dycont ещё удобнее)

Ответить
Развернуть ветку
Dmitriy

С точки зрения SEO, как тот же Яндекс к такому относится. Например, если на странице уже есть поисковый трафик в хорошем объеме, не хотелось бы его терять. 

Ответить
Развернуть ветку
Дамир Губаев

 Поиск видит обычную страницу без подмены

Ответить
Развернуть ветку
Dmitriy

т.е. они точно никак не узнают, что я подменяю контент?

Ответить
Развернуть ветку
Александр / Маркетолог
Автор

В примере контент подменяется только если человек зашел по определенной utm метке. Если параметры закрыты от индексации, то должно быть всё ок.

Ответить
Развернуть ветку
Dmitriy

Понятно, спасибо, нужно было убедится, что точно не повлияет. Я далек от веб разработки, просто думал яндекс метрика может определить такое поведение на странице и в дальнейшем снизить позицию в выдаче. Не хотелось бы потерять большой объем поискового трафика. 

Ответить
Развернуть ветку
Катерина Матвеева

Я тоже сначала не поняла, думала что будет какой-то негативный импакт все равно

Ответить
Развернуть ветку
Alex Yen
С точки зрения SEO

Есть пример одностраничника в топе Яндекса по высокочастотному запросу? Интересно.

Ответить
Развернуть ветку
Guru Net

А как просто отобразить на странице передаваемый параметр utm-term? У меня он передает адрес емэйла из которого происходит переход на страницу. То есть мне не надо ничего подставлять и т.п. а надо тупо написать Ваш емэйл такой то.

Ответить
Развернуть ветку
Александр / Маркетолог
Автор

В gtm создать переменную, в нее положить значение utm метки.

В JS коде, там где выводится значение inner html, выводить переменную созданную в gtm.

Ответить
Развернуть ветку
Guru Net

Ну маркетолог а не программист )) Памахите )

Ответить
Развернуть ветку
Александр / Маркетолог
Автор

Вот в коде где = запрос utm term, нужно в интерфейсе gtm выбрать переменную начав вводить {{ и там будет выбор переменной.

Я сам не прогер, хз как объяснить)

Ответить
Развернуть ветку
Guru Net

Объяснил доходчиво, все заработало. Если разобраться, то очень все просто оказывается, подстановка работает быстро. В общем огонь! Спасибо )

Ответить
Развернуть ветку
Guru Net

А если сайтик на конструкторе? )) Какой код писать?

Ответить
Развернуть ветку
Guru Net

Как в этом коде

x = document.getElementsByTagName('h1');
x[0].innerHTML = 'Наш оригинальный заголовок';

Выводить переменную, созданную в gtm?
Так?

x = document.getElementsByTagName('h1');
x[0].innerHTML = Запрос UTM term;

Ответить
Развернуть ветку
Denis

В скрипте var/const забыл

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
45 комментариев
Раскрывать всегда