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之前結束,未傳送的緩衝要求會永久遺失。 - 如果瀏覽器不支援網頁儲存API或JSON 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