Передаём метки через редирект в первозданном виде

Итак, допустим, у нас есть скрипт http://site.ru/script.php. Он должен отправлять посетителей на http://site2.ru – конечный лендинг/партнёрскую ссылку/что угодно.

Мы хотим лить трафик с различными параметрами на скрипт. Пишем в нём стандартный редирект:

Редирект идёт, но метки не передаются. Т.е. при переходе на http://site.ru/script.php?utm_source=marketgid мы теряем параметр utm_source.

В этом случае многие советуют использовать данные из массива $_GET: то есть брать отдельно $_GET[‘utm_source’] и дописывать в адрес редиректа туда, где utm_source=. Если у нас имена параметров не отличаются, нам надо передать все параметры, и мы вообще ничего не меняем, то это тупо.

Итак, чтобы получить весь хвост ссылки после знака вопроса, используем $_SERVER[‘QUERY_STRING’]:

Теперь при переходе на http://site.ru/script.php?utm_source=marketgid&utm_term=11111 нас перекинет на http://site2.php?utm_source=marketgid&utm_term=11111. А при переходе на http://site.ru/script.php?kjsdwer65rvbubdybv – перекинет на на http://site2.php?kjsdwer65rvbubdybv.

К слову, если в адресе, куда редиректим ($url), уже есть знак вопроса, то нам нужно вместо него поставить амперсанд. Т.е. код будет вида:

10 thoughts on “Передаём метки через редирект в первозданном виде”

  1. Спасибо за способ, он действительно неплох. Но как передавать метки со страницы на которой например размещено 10-15 ссылок на разные сайты? Для каждой ссылки создавать отдельный файл с таким вот редиректом? Или же можно на этой странице с 15 ссылками прописать универсальный код который бы передавал метки к каждой ссылке по которой переходит пользователь?
    (Схема такая: пользователь приходит на страницу с источника трафика, на странице порядка 15 ссылок на разные офферы. Задача передавать метки каждой ссылке исходящей с этой страницы.) Буду благодарен за ответ.

    1. Привет! Надеюсь, я правильно понял: нужно передавать одни и те же метки по всем ссылкам. И сама страница открыта с этими метками?
      Можно делать в коде ссылки вида:
      <a href="http://site1.ru/qwerty.php?<?=$_SERVER['QUERY_STRING']; ?>">Ссылко 1</a>
      <a href="http://site2.ru/index.php?offer=shnyaga&<?=$_SERVER['QUERY_STRING']; ?>">Ссылко 2</a>

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

      Если всё же не так понял, поясни плиз

      1. Да, задача правильно воспринята. На основную страницу(на которой размещены 10-15 офферов) приходит трафик с разных источников и нужно передавать метки на конечную страницу каждого оффера. То есть универсальности тут особой и нету, к каждой ссылке на странице с 10-15 ссылками на разные офферы нужно просто вручную дописывать этот код чтобы передавались метки:
        /?
        Правильно понимаю?

        1. Бро, специально для тебя)
          <script type="text/javascript">
          document.addEventListener("DOMContentLoaded", function() {
          var hvost = window.location.search.substring(1);

          var elements = document.getElementsByTagName('a');

          for (var i = 0; i < elements.length; i++) { var newHref = elements[i].href; if (newHref.indexOf("?")==-1) newHref += "?"; else newHref += "&"; elements[i].href = newHref + hvost; } }); </script>

          Пихать перед </body>. Ну и кавычки исправить на нормальные

          1. Вау)) Спасибо Большое Бро! Теперь с метками стало гораздо проще. Протестировал, работает как Надо!
            С наступающим! 😉

  2. Помогите пожалуйста. Ваш вариант очень понравился, но никак не могу его реализовать. Смотрите, я наливаю с пабликов. Мне нужно знать с какого паблика пришли лиды, для этого я для каждого паблика делаю ссылку с уникальными utm. Ссылка ведет на приленд (Который находится у меня на хосте) Для того что бы вк не банил мои ссылки, приходится делать редирект. Т.е у меня есть домен. Offfersss.ru на котором есть папка с прелендом про суставы http://offfersss.ru/sustav/ Есть папочка http://offfersss.ru/group5 в которой лежит файл в котором прописан редирект на http://offfersss.ru/sustav/ . Вот так вот выглядит код редиректа hhttp://prntscr.com/cr91w8 . Он почему то не работает. Вы не могли бы подсказать почему?

  3. Я тут столкнулся с проблемой передачи параметров трекеру.
    Подскажи мне пожалуйста, если такое возможно, как передать хвост с параметрами в виде подставляемых макросов через отдельное доменное имя, с которого идет Frame редирект на мой index.php, находящийся на моем хостинге.
    В index.php следующее содержимое:
    <?php
    $url = "http://site2.ru&quot;;
    $hvost = $_SERVER['QUERY_STRING'];
    header("location: $url?$hvost");

    Задача заключается в том, чтобы передать параметры клика из источника трафика сначала на подставной домен, а с этого домена передать на CPAtrecker, в котором должны быть приняты все параметры клика, и далее трекер перебрасывает юзера на сайт партнерской программы, согласно правилу, указанному в трекере.
    Если я правильно все делаю, то тогда не понятно, почему не подставляются параметры в макросы и не передаются в треккер?
    Какая должна быть ссылка в рекламируемом источнике и какая должна быть ссылка в index.php на моем хостинге?

    Или возможно это делается совсем по другому?

Добавить комментарий для Семен Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *