resetState resetstate
此功能主要是為 A4T 客戶所設計,可協助解決在單一網站/螢幕或應用程式處理 ID 時遇到的問題。
使用案例 section-840b88a5cdb042488b340cad5d7b22a5
使用訪客ID服務的A4T客戶可以視需要使用visitor.resetState()函式來執行下列作業:
- 透過重新導向在不同頁面或畫面之間傳遞 Supplemental Data ID (SDID) 或其他任何 ID。 通常沒有此函式,訪客ID服務就不會傳遞此ID。
- 使用只會透過 Ajax 呼叫更新頁面或應用程式的特定區段的程式碼,而且您想要追蹤這些操作。 舉例來說,假設您有一個頁面,在按下此頁面上的某個物件時,只會載入或變更特殊區段。 在此情況下,除非重新載入頁面,否則訪客ID服務無法要求不同的ID。 但如果是使用
visitor.resetState(),則可以在下列條件下要求新的 ID。
請參閱以下的程式碼範例。
語法 section-9e63503e178f4be28ac850abf44d6d91
語法: visitor.resetState( *state*);
程式碼範例 section-d75b211bb4ea473887eb284de2ad838b
您的訪客ID服務實作會影響您使用此函式的方式。 請參考下表的範例。
伺服器端實作
伺服器端實作適用於擁有混合式伺服器端及使用者端Target、Analytics和訪客ID服務實作的A4T客戶。 如果您已使用此方法設定訪客ID服務,您只需要將visitor.resetState()新增至頁面即可。 呼叫訪客ID服務會自動傳回新的ID和伺服器狀態。
非標準實作 (透過 ID)
如果您已使用非標準實作設定訪客ID服務,您需要設定一個變數物件以保留您想要使用visitor.resetState()傳遞的SDID (或其他ID)。 如下所示,這將包含您的IMS組織ID以及您想要傳遞的ID。 您的程式碼看起來可能類似於下列範例。
//Instantiate server state variable
var serverState = {
"INSERT-IMS-ORG-ID-HERE": {
//Specify the SDID or other ID
supplementalDataIDCurrent: "1234",
supplementalDataIDCurrentConsumed: {
"payload:top-center": false
}
}
};
//Instantiate Visitor ID Service
var visitor = Visitor.getInstance ("INSERT-IMS-ORG-ID-HERE", {
...
});
//Reset server state to pass the SDID
visitor.resetState(serverState);
非標準實作 (不透過傳遞 ID)
在此情況下,visitor.resetState() 可用於產生新的 ID。 當用戶導覽至新畫面而不重新整理頁面,而且您需要新的 ID 時,這在單頁應用程式中會很實用。
//Instantiate Visitor ID Service
var visitor = Visitor.getInstance ("INSERT-IMS-ORG-ID-HERE", {
...
});
//Request a supplemental Data ID for consumer1 and consumer2:
var sdid1 = visitor.getSupplementalDataID("consumer1"); // sdid1: 1234
var sdid2 = visitor.getSupplementalDataID("consumer2"); // sdid2: 1234
//User navigates to a new screen in a single-page app, without refreshing the page.
//To reset the Supplemental Data ID internal, call resetState without passing any parameters.
//This way we will not be recycling the `1234` ID anymore. Instead Visitor will generate a new supplemental Data ID going forward.
visitor.resetState();
//Request a supplemental Data ID for consumer3 and consumer4:
var sdid1 = visitor.getSupplementalDataID("consumer3"); // sdid1: 5678
var sdid2 = visitor.getSupplementalDataID("consumer4"); // sdid2: 5678
recommendation-more-help
id-service-help