Dessa instruktioner är till för A4T-kunder med blandade server- och klientimplementeringar av Target, Analytics och ID-tjänsten. Kunder som behöver köra ID-tjänsten i en NodeJS- eller Rhino-miljö bör också granska den här informationen. Den här instansen av ID-tjänsten använder en förkortad version av kodbiblioteket VisitorAPI.js, som du hämtar och installerar från NPM (Node Package Manager). I det här avsnittet finns installationsanvisningar och andra konfigurationskrav.
A4T (och andra kunder) kan använda den här versionen av ID-tjänsten när de behöver:
Se NPM-databas för ID-tjänst för att hämta kodpaketet på serversidan och granska gränssnitten som ingår i den aktuella versionen.
Diagrammet och avsnitten nedan beskriver vad som händer och vad du behöver konfigurera i varje steg i implementeringsprocessen på serversidan.
Aktiviteten på serversidan börjar när en besökare gör en HTTP-begäran om att läsa in en webbsida. Under det här steget tar servern emot den här begäran och söker efter AMCV cookie. AMCV-cookien innehåller besökarens Experience Cloud ID (MID).
Sedan måste du skapa en server payload request
till ID-tjänsten. En nyttolastbegäran:
Den här metoden begär en enda mbox från Target. Om du behöver begära flera mbox i ett enda samtal, se generateBatchPayload.
Nyttolastbegäran ska se ut så här: I kodexemplet visitor.setCustomerIDs
-funktionen är valfri. Se Kund-ID och autentiseringstillstånd för mer information.
//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-tjänsten returnerar nyttolasten i ett JSON-objekt som liknar följande exempel. Nyttolastdata krävs av Target.
{
"marketingCloudVisitorId": "02111696918527575543455026275721941645",
"mboxParameters": {
"mboxAAMB": "abcd1234",
"mboxMCGLH": "9",
"mboxMCSDID": "56BE026543F7E211-1CC51BCAAE88F0D2",
"vst.userid.id": "1234567890",
"vst.userid.authState": 0
}
}
Om besökaren inte har en AMCV-cookie utelämnar nyttolasten följande nyckelvärdepar:
marketingCloudvisitorId
mboxAAMB
mboxMCGLH
När servern har tagit emot nyttolastdata från ID-tjänsten måste du initiera ytterligare kod för att sammanfoga den med data som skickas till Target. Det sista JSON-objektet som skickas till Target skulle se ut ungefär så här:
{
"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,
}
}
Serverstatusdata innehåller information om arbete som har utförts på servern. Tjänstkoden för klient-ID kräver den här informationen. Kunder som har implementerat ID-tjänsten via Dynamic Tag Manager (DTM) kan konfigurera DTM så att servertillståndsdata skickas via det verktyget. Om du har konfigurerat ID-tjänsten via en icke-standardprocess måste du returnera servertillståndet med din egen kod. Klientsidans ID-tjänst och Analytics koden skickar lägesdata till Adobe när sidan läses in.
Hämta servertillstånd via DTM
Om du har implementerat ID-tjänsten med DTM måste du lägga till kod på sidan och ange ett namn/värde-par i DTM-inställningarna.
Sidkod
Lägg till den här koden i <head>
-tagg på din HTML-sida:
//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-inställningar
Lägg till dessa som namnvärdespar i General > Settings i din ID-tjänstinstans:
Name: serverState
Value: %serverState%
Värdenamnet måste matcha variabelnamnet som du angav för serverState
i sidkoden.
Dina konfigurerade inställningar bör se ut så här:
Hämta servertillstånd utan DTM
Om du har en icke-standardimplementering av ID-tjänsten måste du konfigurera den här koden så att den körs på servern medan den sammanställer den begärda sidan:
//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>
...
Nu skickar webbservern sidinnehåll till besökarens webbläsare. Från och med nu gör webbläsaren (inte servern) alla återstående ID-tjänster och Analytics samtal. I webbläsaren: