搭配 A4T 以及伺服器端的 Target 實作使用 ID 服務

這些指示適用於擁有混合式伺服器端及用戶端 Target、Analytics 和 ID實作的 A4T 客戶。需要在 NodeJS 或 Rhino 環境中執行 ID 服務的客戶也應該檢閱此資訊。ID 服務的這個執行個體會使用簡短版本的 VisitorAPI.js 程式碼程式庫,您可以從 Node Package Manager (NPM) 下載及安裝此程式庫。請檢閱此章節,以了解安裝指示和其他設定要求。

簡介

A4T (和其他客戶) 在需要進行以下作業時,可以使用這個版本的 ID 服務:

  • 在其伺服器上轉譯網頁內容,並將其傳遞給瀏覽器以供最後顯示。
  • 進行伺服器端 Target 呼叫。
  • 對 Analytics 進行用戶端 (在瀏覽器內) 呼叫。
  • 同步不同的 Target 和 Analytics ID,以判斷某個解決方案看到的訪客,與另一個解決方案看到的訪客是否為同一人。

程式碼下載與提供的介面

請參閱 ID 服務 NPM 存放庫以下載伺服器端程式碼套件並檢閱目前組建隨附的介面。

工作流程

以下圖表和章節說明每個伺服器端實作程序步驟中將進行的作業,以及您需要設定的項目。

步驟 1:要求頁面

當訪客發出載入網頁的 HTTP 要求時,伺服器端活動就會開始。在此步驟期間,您的伺服器會接收這個要求,並檢查是否有 AMCV Cookie。AMCV Cookie 包含訪客的 Experience Cloud ID (MID)。

步驟 2:產生 ID 服務裝載

接下來,您需要對 ID 服務發出伺服器端 payload request。裝載要求:

  • 將 AMCV Cookie 傳遞給 ID 服務。
  • 在底下所述的後續步驟中要求 Target 和 Analytics 所需的資料。
注意

此方法只會向 Target 要求單一 Mbox。如果您需要在單一呼叫中要求多個 Mbox,請參閱 generateBatchPayload

您的裝載要求應看起來像下列的程式碼範例。在程式碼範例中,visitor.setCustomerIDs 是選用函數。如需詳細資訊,請參閱客戶 ID 和驗證狀態

//Import the ID service server package 
var Visitor = require("@adobe-mcid/visitor-js-server"); 
 
//Pass in your Organization ID to instantiate Visitor 
var visitor = new Visitor("Insert Experience Cloud ID here"); 
 
// 
<i>(Optional)</i> Set a custom customer ID 
visitor.setCustomerIDs({ 
     userid:{ 
          id:"1234", 
          authState: Visitor.AuthState.UNKNOWN //AuthState is a static property of the Visitor class 
     } 
}); 
 
//Parse the visitor's HTTP request for the AMCV cookie 
var cookies = cookie.parse(req.headers.cookie || ""); 
var cookieName = visitor.getCookieName(); // Visitor API that returns the cookie name. 
var amcvCookie = cookies[cookieName]; 
 
//Generate the payload request pass your mbox name and the AMCV cookie if present 
var visitorPayload = visitor.generatePayload({ 
     mboxName: "bottom-banner-mbox", 
     amcvCookie: amcvCookie 
});

ID 服務會在類似下列範例的 JSON 物件中傳回裝載。Target 需要用到裝載資料。

{ 
    "marketingCloudVisitorId": "02111696918527575543455026275721941645", 
    "mboxParameters": { 
        "mboxAAMB": "abcd1234", 
        "mboxMCGLH": "9", 
        "mboxMCSDID": "56BE026543F7E211-1CC51BCAAE88F0D2", 
        "vst.userid.id": "1234567890", 
        "vst.userid.authState": 0 
    } 
}

如果您的訪客沒有 AMCV Cookie,則裝載會省略這些機碼值組:

  • marketingCloudvisitorId
  • mboxAAMB
  • mboxMCGLH

步驟 3:將裝載新增至 Target 呼叫

在您的伺服器收到來自 ID 服務的裝載資料後,您需將其他程式碼實例化,以便與要傳遞給 Target 的資料合併。傳遞給 Target 的最終 JSON 物件看起來會類似這樣:

{ 
"mbox" : "target-global-mbox", 
"marketingCloudVisitorId":"02111696918527575543455026275721941645", 
"requestLocation" : { 
     "pageURL" : "http://www.domain.com/test/demo.html", 
     "host" : "localhost:3000" 
     }, 
"mboxParameters" : { 
     "mboxAAMB" : "abcd1234", 
     "mboxMCGLH" : "9", 
     "mboxMCSDID": "56BE026543F7E211-1CC51BCAAE88F0D2", 
     "vst.userid.id": "1234567890", 
     "vst.userid.authState": 0, 
     } 
} 

步驟 4:取得 ID 服務的伺服器狀態

伺服器狀態資料包含伺服器上所完成之工作的相關資訊。用戶端 ID 服務程式碼需要此資訊。透過Dynamic Tag Manager (DTM) 實作 ID 服務的客戶,可以將 DTM 設定為透過該工具傳遞伺服器狀態資料。如果您是透過非標準程序設定 ID 服務,則需要使用您自己的程式碼來傳回伺服器狀態。用戶端 ID 服務和 Analytics 程式碼會在頁面載入時傳遞狀態資料給 Adobe。

透過 DTM 取得伺服器狀態

如果您透過 DTM 實作 ID 服務,則需新增程式碼至您的頁面並在 DTM 設定中指定名稱值組。

頁面代碼

將以下程式碼新增至 HTML 頁面的 <head> 標籤中:

//Get server state 
var serverState = visitor.getState(); 
 
Response.send(" 
... 
<head> 
     <script> 
          //Add 'serverState' as a stringified JSON global variable. 
          "var serverState = "+ JSON.stringify(serverState) +";  
     </script> 
     <script src = "DTM script (satellite JS)"> 
     </script> 
</head> 
...

DTM 設定

在 ID 服務執行個體的 一般 > 設定 區段中將下列項目新增為名稱-值組:

  • 名稱: serverState

  • 值:%serverState%

    重要

    值名稱必須符合您在頁面程式碼中為 serverState 設定的變數名稱。

您已進行的設定應該如下所示:

也請參閱 DTM 適用的 Experience Cloud Identity Service 設定

不透過 DTM 取得伺服器狀態

如果您的 ID 服務是非標準實作,則您必須設定此程式碼為當其組合所要求的頁面時是在您的伺服器上執行:

//Get server state 
var serverState = visitor.getState(); 
 
Response.send(" 
... 
<head> 
     <script src="VisitorAPI.js"></script> 
     <script> 
          var visitor = Visitor.getInstance(orgID, { 
          serverState: serverState  
          ... 
     </script> 
</head> 
...

步驟 5:提供頁面並傳回 Experience Cloud 資料

這時,Web 伺服器會傳送頁面內容給訪客的頁面。從這時開始,由瀏覽器 (而非伺服器) 進行所有剩餘的 ID 服務與 Analytics 呼叫。例如在瀏覽器中:

  • ID 服務會接收來自伺服器的狀態資料,並將 SDID 傳遞給 AppMeasurement。
  • AppMeasurement 傳送關於頁面點擊的資料給 Analytics,包括 SDID。
  • Analytics 和 Target 比較這名訪客的 SDID。當 SDID 相同時,Target 和 Analytics便將伺服器端呼叫和用戶端呼叫結合在一起。此時,兩個解決方案將這名訪客視為同一人。

本頁內容

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now