Как узнать, какой родительский URL называется моим скриптом? - PullRequest
0 голосов
/ 28 июня 2018

Я создал страницу для веб-баннера под http://example.com/banner, Я отправляю эту ссылку на веб-сайты издателей и плачу им за ее запуск.

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

(Многие страницы не передают реферальный параметр.)

Я пробовал разные подходы с JS и PHP, но, как вы можете догадаться, я получаю http://example.com/banner в качестве родительского URL.

Есть ли способ узнать родительский URL из другого домена с помощью PHP, JS или любого другого фрагмента кода? У меня есть список издателей, но мне также нужно знать, на каких сайтах установлен баннер, кроме этих сайтов.

Чтобы было понятнее, вот схема:

МОЯ СТРАНИЦА С BANNER> МОЙ САЙТ ИЗДАТЕЛЯ> ПОЛЬЗОВАТЕЛЬ, ПОСЕТИЩИЙ ИЗДАТЕЛЬ

Я не хочу получать IP-адрес пользователя, посещающего веб-сайт моего издателя или мою страницу URL. Я хочу увидеть URL веб-сайта моего издателя, который находится между ними.

Поскольку это мой веб-сервер, я могу читать журналы доступа, журналы ошибок и т. Д. Без проблем.

Я открыт для любых предложений.

Спасибо!

1 Ответ

0 голосов
/ 28 июня 2018

Вы можете попробовать это, разместив на своем сервере файл javascript.

Затем они размещают скрипт в любом месте, где хотят разместить баннер:

<script src="//yoursite.com/banner.js"></script>

Вы можете использовать params в этом URL для последующего обслуживания пользовательских js.

Тогда в основном код будет выглядеть примерно так, как показано ниже, который внедряет баннер в DOM, где бы ни размещался скрипт. Вы получаете URL сайтов от window.location.href и затем отправляете его в качестве параметра при запросе изображения. (Вы также можете использовать куки и т. Д.)

<script>
  // inject an anchoring element
  document.write('<div class="banner_ad"></div>');
  // find it
  var parentDiv = document.getElementsByClassName("banner_ad");
  // create the img/banner, notice the site param
  var banner = document.createElement("img");
  banner.src = 'http://via.placeholder.com/350x150?site=' + encodeURI(window.location.href);

  // loop over the parent elements of each anchoring element
  for (var i = 0, len = parentDiv.length; i < len; i++) {
    // create the link
    var link = document.createElement('a');
    link.appendChild(banner);
    link.setAttribute('title', 'Ads by Foobar');
    link.setAttribute('href', 'http://example.com');
    // inject the link and img
    parentDiv[i].parentNode.appendChild(link);
  }
</script>

Затем на стороне сервера найдите параметр $_GET['site'].

Это не надежно, ничего нет.

...