@deniskins23

Какой скрипт вставить для динамического контента?

Доброго времени суток!С праздниками всех!Кто может подсказать - жутко нагрели голову. Есть лендинг, из него хотят сделать мультлендинг, чтобы по переходу с рекламы по utm-метке, в зависимости от того, с какой метки пришел посетитель, заголовок h1 на сайте менялся. Маркетолог дал такую метку https://site.ru/?utm_source=yandex&utm_medium=cpc&... (изменил только название сайта). И я не пойму, по каким параметрам тут вообще можно что-то менять?Искал решение в сети, есть скрипты, но они с абсолютно другими параметрами в метке. Кто может подсказать?Горит очень.
  • Вопрос задан
  • 101 просмотр
Решения вопроса 2
potapchino
@potapchino
это вам дали шаблон сылки. вместо фигурных скобок {}, там будут значения меток, типа:
https://site.ru/?utm_term=глажка котов

spoiler
;(function(){
//   [1]
//   берем содержимое адресной строки (все что идет после знака «?», включая сам этот знак)
  const url = location.search;

//   [2]
//   теперь нужно эту строку (пример):
//   '?utm_source=yandex&utm_medium=cpc&utm_campaign=ооо_рога_и_копыта&utm_term=глажка котов'
//   распарсить в объект:
//   {
//     utm_source: 'yandex',
//     utm_medium: 'cpc',
//     utm_campaign: 'ооо_рога_и_копыта',
//     utm_term: 'глажка котов'
//   }
//   напишем для этого функцию: 
  function parseUrlSearchParams(url) {
    return url.replace('?', '').split('&').reduce((res, mark) => {
      const [key, value] = mark.split('=');
      return (res[key] = value, res);
    }, {});
  }

//   [3]
//   далее берем со страницы нужный вам заголовок h1 или что вам там нужно
  const htmlElement = document.querySelector('h1.my-super-seo-header');

//   [4]
//   далее собственно меням содержимое тега, на значение нужной вам utm-метки (к примеру это utm_term):
  htmlElement.textContent = parseUrlSearchParams(url)['utm_term'];
//   было:
//   <h1 class="my-super-seo-header">мойка собак</h1>
//   стало
//   <h1 class="my-super-seo-header">глажка котов</h1>

//   все
})();

и я думаю вам нужно уточнить у ваших маркетологов по каким правилам менять текст заголовка. т.е. не тупо менять на значение метки, а типо: если значение метки - 'глажка котов', то меняем текст на: 'Гладим котов быстро и качественно'. и так для всех возможных значений меток
Ответ написан
REKTOR_RG
@REKTOR_RG
Значит я это делаю так:
В ссылке можно передать аргументы (наверно не раз встречали ссылку вида my.site/something?id=45445, и даже сами сейчас прислали такую ссылку). К чему я собственно веду, там например мы можем передать какую-то цифру которой соответствует определённый текст.
Допустим у нас будет такая ссылка: https://site.ru/?type=1
Теперь в JS читаем значение type. Так как в JS нет готовых инструментов для этого, поступим просто. Затребуем необходимость указывать параметр type первым. И так, есть код, который при условии параметра type первого в списке возвращает его значение:
var type = "0";
if(window.location.href.split('/')[window.location.href.split('/').length-1].split('=')[0].replace("#","").replace("?","")=="type") 
{
type = window.location.href.split('/')[window.location.href.split('/').length-1].split('=')[1].replace("#","");
}

Теперь перейдём к html, и найдём нужный заголовок, укажем ему id="titletype"
<h1 id="titletype">Добро пожаловать!</h1>
Ок, вернёмся к скрипту:
var type = "0";
if(window.location.href.split('/')[window.location.href.split('/').length-1].split('=')[0].replace("#","").replace("?","")=="type") 
{
type = window.location.href.split('/')[window.location.href.split('/').length-1].split('=')[1].replace("#","");
}
if(type=="1") document.getElementById("titletype").innerHTML = "Спасибо за регистрацию!"
if(type=="2") document.getElementById("titletype").innerHTML = "Благодарим, что доверяете нам!"
/*И так далее*/

Конечный результат:
<h1 id="titletype">Добро пожаловать!</h1>
<script>
var type = "0";
if(window.location.href.split('/')[window.location.href.split('/').length-1].split('=')[0].replace("#","").replace("?","")=="type") 
{
type = window.location.href.split('/')[window.location.href.split('/').length-1].split('=')[1].replace("#","");
}
if(type=="1") document.getElementById("titletype").innerHTML = "Спасибо за регистрацию!"
if(type=="2") document.getElementById("titletype").innerHTML = "Благодарим, что доверяете нам!"
</script>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Pokupo.ru Новосибирск
от 50 000 руб.
AliveBe Москва
от 25 000 до 80 000 руб.
BSLab Москва
от 100 000 до 150 000 руб.