3

所以随着谷歌最近收购了spider.io,每个人都在谈论广告可见度。

除了 spider.io 的专利技术和 comScore 的专利几何技术......还有其他方法可以在 3rd 方 iframe 中使用 javascript 检测广告可见度吗?

谢谢!

4

1 回答 1

1

有办法检测跨域可视性

1)请求动画帧(IOS)。2) IntersectionObserver (API chrome, firefox 等)。

两个例子都在这里。

var options = {
threshold: [0.0, 0.3, 0.7, 1.0]

};

var element = document.getElementById("element");

function intersectionObserver(callback)
{

    function callbackObserver(entries, observer)
    {
        entries.forEach(function(entry)
        {
            callback.call(this, entry.intersectionRatio == 0)
        });
    }
    var observer = new IntersectionObserver(callbackObserver, options);
    observer.observe(element);
}


function reqAnimFrame(callback)
{
    var lastCalled;
    var fps;
    var timediff;

    function requestAnimFrame()
    {
        if (!lastCalled)
        {
            lastCalled = Date.now();
            fps = 0;
        }
        timediff = (Date.now() - lastCalled);

        if (timediff <= 1000)
        {
            fps++;
        }
        else
        {
            lastCalled = Date.now();
            fps = 0;
        }
        callback.call(this, fps <= 10);
        window.requestAnimationFrame(requestAnimFrame);
    }
    window.requestAnimationFrame(requestAnimFrame);
}
var callback = function(isNotView)
{
    console.log(isNotView);
}

//IOS
reqAnimFrame(callback);

//Other then IOS
intersectionObserver(callback);
于 2017-07-30T09:28:44.767 回答