bufferRequests
bufferRequests()
方法允许您在当前页面上缓存图像请求,而不是将其发送到Adobe。 在浏览器不支持navigator.sendBeacon()
或卸载页面时取消图像请求的情况下,触发此方法很有用。 WebKit浏览器的许多版本(如Safari)通常都会在单击链接时显示停止图像请求的行为。 bufferRequests()
方法在AppMeasurementv2.25.0或更高版本上均可用。
当您在同一浏览器会话的后续页面上调用t()
或tl()
时,如果尚未在该页面上调用bufferRequests()
,则除了该页面的图像请求之外,还将发送所有缓冲请求。 缓冲的请求以正确的顺序发送,即当前页面的图像请求在最后发送。
TIP
限制
调用bufferRequests()
方法时,请记住以下限制。 由于此方法使用Window.sessionStorage
,因此适用许多相同的限制:
- 目标链接必须驻留在同一域和子域上。 即使两个域或子域具有相同的Adobe Analytics实施,缓冲的请求也不能跨这些域或子域工作。 此限制还意味着您无法使用缓冲请求跟踪退出链接。
- 目标链接必须使用与当前页面相同的协议。 您不能在HTTP和HTTPS之间发送缓冲请求。
- 缓冲的请求会一直存储到您调用
t()
或tl()
而未先调用bufferRequests()
为止,或者直到关闭浏览器或选项卡为止。 如果浏览器会话在将数据发送到Adobe之前结束,则未发送的缓冲请求将永久丢失。 - 如果浏览器不支持Web存储API或JSON API,则会向浏览器控制台输出警告,并且AppMeasurement会尝试使用
t()
方法立即发送图像请求。
Web SDK中的缓冲请求
Web SDK当前不提供缓冲请求的功能。
使用Adobe Analytics扩展程序的缓冲请求
Adobe Analytics 扩展程序中没有专门的字段来使用此变量。 按照 AppMeasurement 语法使用自定义代码编辑器。
AppMeasurement和Analytics扩展自定义代码编辑器中的s.bufferRequests()
在调用t()
或tl()
之前调用bufferRequests()
方法。 调用bufferRequests()
时,后续跟踪调用将写入会话存储中,而不是发送到Adobe数据收集服务器。
// Instantiate the tracking object
var s = s_gi("examplersid");
// Flag the request to be buffered
s.bufferRequests();
// The t() or tl() method then writes the data to session storage instead of sending it to Adobe
s.tl(true,"o","Example link click");
// On a subsequent page, the tracking call sends both the above link tracking call and the page view call
s.t();
recommendation-more-help
b4f6d761-4a8b-4322-b801-c85b9e3be690