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