我正在开展一个项目,我需要在广告请求时开始时间,在广告完全加载时需要结束时间。这样我就可以计算广告的延迟时间。我正在使用 google dfp 和双击。
更新 我不想从像Phantomjs这样的外部图书馆打电话给我的网站。我想要一些javascript解决方案,以便我可以编辑我的js文件并获得广告加载的延迟时间。感谢名单
答案 0 :(得分:3)
尝试使用PhantomJS。
它是一个无头浏览器。您可以像浏览器一样使用它,但是以编程方式从中获取信息。
答案 1 :(得分:2)
PhantomJS,CasperJS或编写节点脚本。如果您在浏览器中更专注地执行此操作,则在加载页面时打开网络选项卡应该告诉您请求需要多长时间。
答案 2 :(得分:2)
描述基本方法,因为你没有提供任何代码。
在加载广告的函数中,设置一个当前毫秒的变量(例如startTime = Date.now())
然后,根据您正在加载的媒体,您可以使用onload事件(用于图像)或loadstart和loadeddata事件用于视频,adio等。如果通过XHR调用,那么您应该已经有一个加载事件将广告插入dom。再次抓住Date.now(),并从中减去startime。
你有加载时间。
答案 3 :(得分:1)
我建议使用chrome dev工具。在浏览器中使用cntr
+ shift
+ i
并导航至时间轴或网络
您无法使用这些工具调用JS代码中的函数,但它可以很好地了解您的速度。
答案 4 :(得分:1)
您可以在发送请求之前获得当前时间,并在完成加载后立即获取当前时间并减去这些时间吗?
var timeAfter;
var timeBefore = new Date().getTime() / 1000;
//make requests //
function callBack(){
// Completely load ad//
timeAfter = new Date().getTime() / 1000;
}
var latency = timeAfter - timeBefore;
这是几秒钟,但你可以玩数学并获得毫秒。
答案 5 :(得分:0)
此问题的答案已经可用于堆栈本身。
请参阅这些链接。那些可能有希望回答问题。
Calculating Page Load Time In JavaScript
Page load time with JavaScript
What is the best way to measure Client Side page load times?
答案 6 :(得分:0)
您可能正在寻找类似chrome.webRequest API的内容。 AppNexus的Headerbid Expert Chrome扩展程序是如何用于检查网络流量的一个很好的例子。您可能需要根据需求方式为网络流量推出自己的模式匹配器,但也许您可以聪明地解析“doubleclick.net”流量以自动执行该流程。 Mozilla和IE各自都有自己的方式。
如果插件不是您想要的,那么您只需overwrite request prototypes即可。您可能会在javascript测试工具中找到此类代码的示例,例如Sonin。在那里,您通常还会找到计时的例子。