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 服務實作會影響您使用此函數的方式。請參考下表的範例。

伺服器端實作

伺服器端實作適用於擁有混合式伺服器端及用戶端 Analytics、Target 和 ID 服務實作的 A4T 客戶。如果已透過此方法設定 ID 服務,您只需要將 visitor.resetState() 新增到頁面即可。呼叫 ID 服務會自動傳回新的 ID 和伺服器狀態。

非標準實作 (透過 ID)

如果您透過非標準實作設定 ID 服務,您需要設定一個變數物件以保留您想要透過 visitor.resetState() 傳遞的 SDID (或其他 ID)。這會包含您的組織 ID 以及您想要傳遞的 ID,如下所示。您的程式碼看起來可能類似於下列範例。

//Instantiate server state variable
var serverState = {
     "Insert Experience Cloud organization ID here": {
          //Specify the SDID or other ID
          supplementalDataIDCurrent: "1234",
          supplementalDataIDCurrentConsumed: {
               "payload:top-center": false
          }
     }
};

//Instantiate ID service
var visitor = Visitor.getInstance ("Insert Experience Cloud organization ID here", {
     ...
});

//Reset server state to pass the SDID
visitor.resetState(serverState);

非標準實作 (不透過傳遞 ID)

在此情況下,visitor.resetState() 可用於產生新的 ID。當用戶導覽至新畫面而不重新整理頁面,而且您需要新的 ID 時,這在單頁應用程式中會很實用。


//Instantiate ID service
var visitor = Visitor.getInstance ("Insert Experience Cloud organization 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

動態標籤管理員 (DTM)

目前並未提供 visitor.resetState() () 的 DTM 設定路徑。

recommendation-more-help
9c9e8ca9-9f7e-42c9-a5d5-a0d82776362a