bufferRequests

bufferRequests() 方法允许您在当前页面上缓存图像请求,而不是将其发送到Adobe。 在浏览器不支持的情况下,触发此方法很有用 navigator.sendBeacon() 或者取消页面卸载时的图像请求。 WebKit浏览器的许多版本(如Safari)通常都会在单击链接时显示停止图像请求的行为。 此 bufferRequests() 方法在AppMeasurementv2.25.0或更高版本上可用。

当您调用 t()tl() 在同一浏览器会话中的后续页面上,并 bufferRequests() 尚未在该页面上调用,则除了该页面的图像请求之外,还将发送所有缓冲请求。 缓冲的请求以正确的顺序发送,即当前页面的图像请求在最后发送。

TIP
与发送数据的页面共享缓冲请求的时间戳。 如果您希望精确记录缓冲请求的秒数,则可以设置 timestamp 页面变量。 如果使用此变量,请确保 可选时间戳 已启用 — 如果未启用,则所有带有时间戳的点击将永久丢失!

限制

调用时 bufferRequests() 方法,请牢记以下限制。 由于此方法使用 Window.sessionStorage,下面是许多相同的限制:

  • 目标链接必须驻留在同一域和子域上。 即使两个域或子域具有相同的Adobe Analytics实施,缓冲的请求也不能跨这些域或子域工作。 此限制还意味着您无法使用缓冲请求跟踪退出链接。
  • 目标链接必须使用与当前页面相同的协议。 您不能在HTTP和HTTPS之间发送缓冲请求。
  • 缓冲的请求会一直存储,直到您调用 t()tl() 无需调用 bufferRequests() 首先,或者直到关闭浏览器或选项卡为止。 如果浏览器会话在将数据发送到Adobe之前结束,则未发送的缓冲请求将永久丢失。
  • 如果浏览器不支持 Web存储APIJSON API,则会向浏览器控制台输出警告,并且AppMeasurement会尝试使用 t() 方法。

Web SDK中的缓冲请求

Web SDK当前不提供缓冲请求的功能。

使用Adobe Analytics扩展程序的缓冲请求

Adobe Analytics 扩展程序中没有专门的字段来使用此变量。 按照 AppMeasurement 语法使用自定义代码编辑器。

AppMeasurement和Analytics扩展自定义代码编辑器中的s.bufferRequests()

调用 bufferRequests() 调用前的方法 t()tl(). 时间 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