在 Target 的 A4T 和服务器端实施中使用 ID 服务

这些说明针对的是目标、分析和ID服务在服务器端和客户端实现混合的A4T客户。 需要在NodeJS或Rhino环境中运行ID服务的客户也应查看此信息。 此ID服务实例使用VisitorAPI.js代码库的缩短版本,您可以从节点包管理器(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 中请求一个 mbox。If you need to request multiple mboxes in a single call, see 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 设置的变量名称匹配。

您配置的设置应当如下:

See also, Experience Cloud Identity Service Settings for DTM.

在没有使用 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 将页面点击的相关数据(包括 SDID)发送到 Analytics。
  • Analytics 和 Target 会比较此访客的 SDID。如果 SDID 相同,则 Target 和 Analytics 将服务器端调用和客户端调用拼结在一起。此时,这两种解决方案会将此访客识别为同一个人。

在此页面上

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
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