如何找出哪个父 URL 调用了我的脚本?
How to find out which parent URL called my script?
我在 http://example.com/banner 下创建了一个网页横幅页面,我将这个 link 发送到出版商网站并支付给 运行 它。
但是,有些发布商 运行,有些则不是,我想知道哪个父 URL 调用了此页面或点击来自哪里。通常,他们会将此 URL 放入 iframe 中以提供服务。
(很多页面没有传递引用参数。)
我尝试过使用 JS 和 PHP 的不同方法,但正如您可能猜想的那样,我将 http://example.com/banner 作为父 URL。
有没有办法通过 PHP、JS 或任何其他代码从不同的域了解父 URL?我有一个发布者列表,但我还需要知道哪些网站 运行 在横幅上除了这些网站之外。
为了更清楚这里有一个架构:
MY PAGE WITH BANNER > MY PUBLISHER WEBSITE > USER VISITING THE
PUBLISHER
I don't want to get IP of the user visiting my publisher's website or my page's
URL. I want to see URL of my publisher's website which is in between.
因为这是我的网络服务器,所以我可以毫无问题地读取访问日志、错误日志等。
我愿意接受任何建议。
谢谢!
您可以试试这个,在您的服务器上托管一个 javascript 文件。
然后他们会把脚本放在他们想要放置横幅的任何地方:
<script src="//yoursite.com/banner.js"></script>
您可以在 URL 中使用参数来提供自定义 js。
然后 从根本上说 代码看起来像下面这样,它将横幅注入 DOM 脚本所在的位置。您从 window.location.href
获取站点 URL,然后在请求图像时将其作为参数发送。 (您也可以使用 cookie 等)
<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']
参数。
这不是万无一失的,没有什么是。
我在 http://example.com/banner 下创建了一个网页横幅页面,我将这个 link 发送到出版商网站并支付给 运行 它。
但是,有些发布商 运行,有些则不是,我想知道哪个父 URL 调用了此页面或点击来自哪里。通常,他们会将此 URL 放入 iframe 中以提供服务。
(很多页面没有传递引用参数。)
我尝试过使用 JS 和 PHP 的不同方法,但正如您可能猜想的那样,我将 http://example.com/banner 作为父 URL。
有没有办法通过 PHP、JS 或任何其他代码从不同的域了解父 URL?我有一个发布者列表,但我还需要知道哪些网站 运行 在横幅上除了这些网站之外。
为了更清楚这里有一个架构:
MY PAGE WITH BANNER > MY PUBLISHER WEBSITE > USER VISITING THE PUBLISHER
I don't want to get IP of the user visiting my publisher's website or my page's URL. I want to see URL of my publisher's website which is in between.
因为这是我的网络服务器,所以我可以毫无问题地读取访问日志、错误日志等。
我愿意接受任何建议。
谢谢!
您可以试试这个,在您的服务器上托管一个 javascript 文件。
然后他们会把脚本放在他们想要放置横幅的任何地方:
<script src="//yoursite.com/banner.js"></script>
您可以在 URL 中使用参数来提供自定义 js。
然后 从根本上说 代码看起来像下面这样,它将横幅注入 DOM 脚本所在的位置。您从 window.location.href
获取站点 URL,然后在请求图像时将其作为参数发送。 (您也可以使用 cookie 等)
<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']
参数。
这不是万无一失的,没有什么是。