如何在10秒后加载跟踪像素?

时间:2016-11-14 12:09:05

标签: javascript pixel

我的公司希望从广告投放代理商处获得一些流量,他们向我们提供了Pixel跟踪代码,并强制我们在10秒后将其加载到网站上。 我试图通过JS做到这一点,但仍然失败。

以下是像素的外观:

`<img src="https://ext.example.com/conversion/?c=122959&a=30225" width="1" height="1" onerror="this.onerror=null;this.src='https://a248.e.example.net/9e0d7c940412d5badab847b855f8ac46.com/conv/'+this.src.substring(this.src.indexOf('?'));" />`

这是我试图做的事情:

var lines = "<img src=";
var lines2="https://ext.example.com/conversion/?c=122959&a=30225";
var lines3=";this.src='https://a248.e.example.net/9e0d7c940412d5badab847b855f8ac46.com/conv/'+this.src.substring(this.src.indexOf('?'));";                   
      setTimeout(function(){
           document.write(lines+'"'+lines2+'" width="1" height="1" onerror="this.onerror=null'+lines3+'" />');
      }, 10000);  

我使用变量因为 - &gt; '&lt; - symbols

10秒后,我的所有内容都消失了,源代码只显示了Pixel代码。

您是否有任何资源消耗较少的解决方案?我怎样才能在10秒后在网页上点击Pixel

1 个答案:

答案 0 :(得分:3)

纯JavaScript实现,会在10秒后将跟踪像素附加到<body>

window.onload = function() {
  function addTrackingPixel() {
    var pixel = document.createElement("IMG");
    pixel.setAttribute("src", "https://ext.example.com/conversion/?c=122959&a=30225");
    pixel.setAttribute("height", "1");
    pixel.setAttribute("width", "1");
    pixel.setAttribute("onerror", "this.onerror=null;this.src='https://a248.e.example.net/9e0d7c940412d5badab847b855f8ac46.com/conv/'+this.src.substring(this.src.indexOf('?'));");
    document.body.appendChild(pixel);
  }
  var timeout = setTimeout(addTrackingPixel, 10000);
};