Het vergelijken van de bibliotheek at.js met het Web SDK
Overzicht
Dit artikel biedt een overzicht van de verschillen tussen de at.js
bibliotheek en de Experience Platform Web SDK.
Bibliotheken installeren
Installeer at.js
Wij staan onze klanten toe om de bibliotheek van Adobe Experience Cloud, het lusje van de Implementatie direct te downloaden. De bibliotheek at.js wordt aangepast met instellingen die de klant als volgt heeft: clientCode, imsOrgId, enz.
De SDK van het Web installeren
De vooraf gebouwde versie is beschikbaar op een CDN. U kunt de bibliotheek op CDN rechtstreeks op uw pagina van verwijzingen voorzien, of het downloaden en ontvangen op uw eigen infrastructuur. Het is beschikbaar in geminiatuurde en ongeminificeerde formaten. De ongeminificeerde versie is handig voor foutopsporingsdoeleinden.
Zie De SDK van het Web installeren met de JavaScript-bibliotheek voor meer informatie .
De bibliotheken configureren
Bij.js configureren
Aan het einde van elk bestand at.js vindt u een sectie waarin we een instellingsobject instantiëren en doorgeven. Het is aanpasbaar, bij het downloaden vullen wij die sectie met huidige klantenmontages.
window.adobe.target.init(window, document, {
"clientCode": "demo",
"imsOrgId": "",
"serverDomain": "localhost:5000",
"timeout": 2000,
"globalMboxName": "target-global-mbox",
"version": "2.0.0",
"defaultContentHiddenStyle": "visibility: hidden;",
"defaultContentVisibleStyle": "visibility: visible;",
"bodyHiddenStyle": "body {opacity: 0 !important}",
"bodyHidingEnabled": true,
"deviceIdLifetime": 63244800000,
"sessionIdLifetime": 1860000,
"selectorsPollingTimeout": 5000,
"visitorApiTimeout": 2000,
"overrideMboxEdgeServer": false,
"overrideMboxEdgeServerTimeout": 1860000,
"optoutEnabled": false,
"optinEnabled": false,
"secureOnly": false,
"supplementalDataIdParamTimeout": 30,
"authoringScriptUrl": "//cdn.tt.omtrdc.net/cdn/target-vec.js",
"urlSizeLimit": 2048,
"endpoint": "/rest/v1/delivery",
"pageLoadEnabled": true,
"viewsEnabled": true,
"analyticsLogging": "server_side",
"serverState": {},
"decisioningMethod": "server-side",
"legacyBrowserSupport": false
});
De SDK van het Web configureren
De configuratie voor de SDK wordt uitgevoerd met de configure
gebruiken. De configure
command is altijd eerst opgeroepen.
Aanbiedingen voor het laden van pagina's aanvragen en automatisch renderen
At.js gebruiken
Bij .js 2.x gebruiken als u de instelling pageLoadEnabled
, zal de bibliotheek een vraag aan de Rand van het Doel met activeren execute -> pageLoad
. Als alle instellingen op de standaardwaarden zijn ingesteld, is geen aangepaste codering nodig. Als at.js eenmaal aan de pagina is toegevoegd en door de browser wordt geladen, wordt een doelEdge-aanroep uitgevoerd.
Web SDK gebruiken
Inhoud die is gemaakt in Adobe Target Visual Experience Composer kan automatisch door SDK worden opgehaald en teruggegeven.
Om de aanbiedingen van het Doel te verzoeken en automatisch terug te geven, gebruik sendEvent
en stelt de renderDecisions
optie voor true
. Hierdoor wordt de SDK gedwongen om automatisch gepersonaliseerde inhoud te renderen die in aanmerking komt voor automatische rendering.
Voorbeeld:
alloy("sendEvent", {
"renderDecisions": true,
"xdm": {
"commerce": {
"order": {
"purchaseID": "a8g784hjq1mnp3",
"purchaseOrderNumber": "VAU3123",
"currencyCode": "USD",
"priceTotal": 999.98
}
}
}
});
SDK van het Web van het Experience Platform verzendt automatisch een bericht met de aanbiedingen die door WEB SDK werden uitgevoerd, is dit een voorbeeld van hoe een lading van het berichtverzoek als kijkt:
{
"events": [{
"xdm": {
"_experience": {
"decisioning": {
"propositions": [
{
"id": "AT:eyJhY3Rpdml0eUlkIjoiMTI3MDE5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9",
"scope": "cart",
"scopeDetails": {
"decisionProvider": "TGT",
"activity": {
"id": "127019"
},
"experience": {
"id": "0"
},
"strategies": [
{
"step": "entry",
"algorithmID": "0",
"trafficType": "0"
},
{
"step": "display",
"algorithmID": "0",
"trafficType": "0"
}
],
"characteristics": {
"eventToken": "bKMxJ8dCR1XlPfDCx+2vSGqipfsIHvVzTQxHolz2IpSCnQ9Y9OaLL2gsdrWQTvE54PwSz67rmXWmSnkXpSSS2Q=="
}
}
}
]
}
},
"eventType": "display",
"web": {
"webPageDetails": {
"viewName": "cart",
"URL": "https://alloyio.com/personalizationSpa/cart"
},
"webReferrer": {
"URL": ""
}
},
"device": {
"screenHeight": 800,
"screenWidth": 1280,
"screenOrientation": "landscape"
},
"environment": {
"type": "browser",
"browserDetails": {
"viewportWidth": 1280,
"viewportHeight": 284
}
},
"placeContext": {
"localTime": "2021-12-10T15:50:34.467+02:00",
"localTimezoneOffset": -120
},
"timestamp": "2021-12-10T13:50:34.467Z",
"implementationDetails": {
"name": "https://ns.adobe.com/experience/alloy",
"version": "2.6.2",
"environment": "browser"
}
}
}
]
}
Aanbiedingen voor het laden van pagina's aanvragen en NIET automatisch renderen
At.js gebruiken
Er zijn twee manieren wij een vraag aan de Rand van het Doel konden in brand steken die aanbiedingen voor pagina-lading zal halen.
Voorbeeld 1:
adobe.target.getOffer({
mbox: "target-global-mbox",
success: console.log,
error: console.error
});
Voorbeeld 2:
adobe.target.getOffers({
request: {
execute: {
pageLoad: {}
}
}
})
.then(console.log)
.catch(console.error);
Web SDK gebruiken
Een sendEvent
bevel met een bijzonder toepassingsgebied onder decisionScopes
: __view__
. Wij gebruiken dit werkingsgebied als signaal om alle pagina-lading activiteiten van Doel te halen en alle meningen vooraf in te stellen. De SDK van het Web zal ook proberen om alle VEC mening gebaseerde activiteiten te evalueren. Het uitschakelen van weergave-prefetching wordt momenteel niet ondersteund in de Web SDK.
Om tot om het even welke verpersoonlijkingsinhoud toegang te hebben, kunt u een callback functie verstrekken, die zal worden geroepen nadat SDK een succesvolle reactie van de server ontvangt. Uw callback wordt verstrekt een resultaatvoorwerp, dat voorzetbezit kan bevatten die om het even welke teruggekeerde verpersoonlijkingsinhoud bevatten.
Voorbeeld:
alloy("sendEvent", {
xdm: {...},
decisionScopes: ["__view__"]
}).then(function(result) {
if (result.propositions) {
result.propositions.forEach(proposition => {
proposition.items.forEach(item => {
if (item.schema === HTML_SCHEMA) {
// manually apply offer
document.getElementById("form-based-offer-container").innerHTML =
item.data.content;
const executedPropositions = [
{
id: proposition.id,
scope: proposition.scope,
scopeDetails: proposition.scopeDetails
}
];
// manually send the display notification event, so that Target/Analytics impressions aare increased
alloy("sendEvent",{
"xdm": {
"eventType": "decisioning.propositionDisplay",
"_experience": {
"decisioning": {
"propositions": executedPropositions
}
}
}
});
}
});
});
}
});
Specifieke doelvakken voor formulieren aanvragen
At.js gebruiken
U kunt op formulier gebaseerde Composer-activiteiten ophalen met de opdracht getOffer
functie:
Voorbeeld 1:
adobe.target.getOffer({
mbox: "hero-banner",
success: console.log,
error: console.error
});
Voorbeeld 2:
adobe.target.getOffers({
request: {
execute: {
mboxes: [
{
index: 0,
name: "hero-banner"
}]
}
}
})
.then(console.log)
.catch(console.error);
Web SDK gebruiken
U kunt op formulier gebaseerde Composer-activiteiten ophalen met de opdracht sendEvent
en geeft u de mbox-namen door onder het dialoogvenster decisionScopes
-optie. De sendEvent
command retourneert een belofte die wordt opgelost met een object dat de gevraagde activiteiten/voorstellen bevat: Dit is de propositions
array ziet er als volgt uit:
[
{
"id": "AT:eyJhY3Rpdml0eUlkIjoiNDM0Njg5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9",
"scope": "hero-banner",
"scopeDetails": {
"decisionProvider": "TGT",
"activity": {
"id": "434689"
},
"experience": {
"id": "0"
},
"strategies": [
{
"algorithmID": "0",
"trafficType": "0"
}
],
"characteristics": {
"eventToken": "2lTS5KA6gj4JuSjOdhqUhGqipfsIHvVzTQxHolz2IpTMromRrB5ztP5VMxjHbs7c6qPG9UF4rvQTJZniWgqbOw=="
}
},
"items": [
{
"id": "1184844",
"schema": "https://ns.adobe.com/personalization/html-content-item",
"meta": {
"geo.state": "bucuresti",
"activity.id": "434689",
"experience.id": "0",
"activity.name": "a4t test form based activity",
"offer.id": "1184844",
"profile.tntId": "04608610399599289452943468926942466370-pybgfJ"
},
"data": {
"id": "1184844",
"format": "text/html",
"content": "<div> analytics impressions </div>"
}
}
]
},
{
"id": "AT:eyJhY3Rpdml0eUlkIjoiNDM0Njg5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9",
"scope": "hero-banner",
"scopeDetails": {
"decisionProvider": "TGT",
"activity": {
"id": "434689"
},
"characteristics": {
"eventToken": "E0gb6q1+WyFW3FMbbQJmrg=="
}
},
"items": [
{
"id": "434689",
"schema": "https://ns.adobe.com/personalization/measurement",
"data": {
"type": "click",
"format": "application/vnd.adobe.target.metric"
}
}
]
}
]
Voorbeeld:
alloy("sendEvent", {
xdm: { ...},
decisionScopes: ["hero-banner"]
}).then(function (result) {
var propositions = result.propositions;
if (propositions) {
// Find the discount proposition, if it exists.
for (var i = 0; i < propositions.length; i++) {
var proposition = propositions[i];
for (var j = 0; j < proposition.items; j++) {
var item = proposition.items[j];
if (item.schema === HTML_SCHEMA) {
// apply offer
document.getElementById("form-based-offer-container").innerHTML =
item.data.content;
const executedPropositions = [
{
id: proposition.id,
scope: proposition.scope,
scopeDetails: proposition.scopeDetails
}
];
alloy("sendEvent", {
"xdm": {
"eventType": "decisioning.propositionDisplay",
"_experience": {
"decisioning": {
"propositions": executedPropositions
}
}
}
});
}
}
}
}
});
Hoe de doelactiviteiten worden toegepast
At.js gebruiken
U kunt de doelactiviteiten toepassen met behulp van de applyOffers
functie: adobe.target.applyOffer(options)
Voorbeeld:
adobe.target.getOffers({...})
.then(response => adobe.target.applyOffers({ response: response }))
.then(() => console.log("Success"))
.catch(error => console.log("Error", error));
Meer informatie over de applyOffers
van de speciale documentatie.
Web SDK gebruiken
U kunt de doelactiviteiten toepassen met behulp van de applyPropositions
gebruiken.
Voorbeeld:
alloy("applyPropositions", {
propositions: [...]
});
Meer informatie over de applyPropositions
van de speciale documentatie.
Hoe kan ik gebeurtenissen volgen?
At.js gebruiken
U kunt gebeurtenissen volgen door trackEvent
functie of gebruik sendNotifications
.
Deze functie voert een verzoek in om gebruikersacties, zoals kliks en omzettingen te melden. Het levert geen activiteiten in de reactie.
Voorbeeld 1
adobe.target.trackEvent({
"type": "click",
"mbox": "some-mbox"
});
Voorbeeld 2
adobe.target.sendNotifications({
request: {
notifications: [{
...,
mbox: {
name: "some-mbox"
},
type: "click",
...
}]
}
});
Web SDK gebruiken
U kunt gebeurtenissen en gebruikersacties volgen door sendEvent
opdracht, vullen _experience.decisioning.propositions
XDM-veldgroep en instellen eventType
tot een van de twee waarden:
decisioning.propositionDisplay
: Geeft aan dat de doelactiviteit wordt gerenderd.decisioning.propositionInteract
: Signaleert een gebruikersinteractie met de activiteit, zoals een muisklik.
De _experience.decisioning.propositions
XDM fieldGroup is een array met objecten. De eigenschappen van elk object worden afgeleid van de result.propositions
die wordt geretourneerd in het dialoogvenster sendEvent
opdracht: { id, scope, scopeDetails }
Voorbeeld 1 - Een track decisioning.propositionDisplay
gebeurtenis na het renderen van een activiteit
alloy("sendEvent", {
xdm: {},
decisionScopes: ['discount']
}).then(function(result) {
var propositions = result.propositions;
var discountProposition;
if (propositions) {
// Find the discount proposition, if it exists.
for (var i = 0; i < propositions.length; i++) {
var proposition = propositions[i];
if (proposition.scope === "discount") {
discountProposition = proposition;
break;
}
}
}
if (discountProposition) {
// Find the item from proposition that should be rendered.
// Rather than assuming there a single item that has HTML
// content, find the first item whose schema indicates
// it contains HTML content.
for (var j = 0; j < discountProposition.items.length; j++) {
var discountPropositionItem = discountProposition.items[i];
if (discountPropositionItem.schema === "https://ns.adobe.com/personalization/html-content-item") {
var discountHtml = discountPropositionItem.data.content;
// Render the content
var dailySpecialElement = document.getElementById("daily-special");
dailySpecialElement.innerHTML = discountHtml;
// For this example, we assume there is only a single place to update in the HTML.
break;
}
}
// Send a "decisioning.propositionDisplay" event signaling that the proposition has been rendered.
alloy("sendEvent", {
xdm: {
eventType: "decisioning.propositionDisplay",
_experience: {
decisioning: {
propositions: [
{
id: discountProposition.id,
scope: discountProposition.scope,
scopeDetails: discountProposition.scopeDetails
}
]
}
}
}
});
}
});
Voorbeeld 2 - Een track decisioning.propositionInteract
gebeurtenis na klikken vindt metrisch plaats
alloy("sendEvent", {
xdm: { ...},
decisionScopes: ["hero-banner"]
}).then(function (result) {
var propositions = result.propositions;
if (propositions) {
// Find the discount proposition, if it exists.
for (var i = 0; i < propositions.length; i++) {
var proposition = propositions[i];
for (var j = 0; j < proposition.items.length; j++) {
var item = proposition.items[j];
if (item.schema === "https://ns.adobe.com/personalization/measurement") {
// add metric to the DOM element
const button = document.getElementById("form-based-click-metric");
button.addEventListener("click", event => {
const executedPropositions = [
{
id: proposition.id,
scope: proposition.scope,
scopeDetails: proposition.scopeDetails
}
];
// send the click track event
alloy("sendEvent", {
"xdm": {
"eventType": "decisioning.propositionInteract",
"_experience": {
"decisioning": {
"propositions": executedPropositions
}
}
}
});
});
}
}
}
}
});
Voorbeeld 3 - Een gebeurtenis bijhouden die is geactiveerd na het uitvoeren van een handeling
In dit voorbeeld wordt een gebeurtenis bijgehouden die is geactiveerd nadat een bepaalde handeling is uitgevoerd, zoals het klikken op een knop.
U kunt aanvullende aangepaste parameters toevoegen via de __adobe.target
gegevensobject.
//replicates an at.js trackEvent call
alloy("sendEvent", {
"type": "decisioning.propositionDisplay",
"xdm": {
"_experience": {
"decisioning": {
"propositions": [{
"scope": "sumbitButtonClick" // Or any mbox/location name you want to use in Adobe Target
}]
}
}
}
});
Een weergavewijziging activeren in een toepassing voor één pagina
At.js gebruiken
Gebruik de adobe.target.triggerView
functie. Deze functie kan worden aangeroepen wanneer een nieuwe pagina wordt geladen of wanneer een component op een pagina opnieuw wordt weergegeven. adobe.target.triggerView () zou voor enige paginatoepassingen (SPA) moeten worden uitgevoerd om Visual Experience Composer (VEC) te gebruiken om A/B Tests en Ervaring te creëren richtend (XT) activiteiten. Als adobe.target.triggerView() niet is geïmplementeerd op de site, kan de VEC niet worden gebruikt voor SPA.
Voorbeeld
adobe.target.triggerView("homeView")
Web SDK gebruiken
Als u een weergavewijziging van één pagina wilt activeren of signaleren, stelt u de optie web.webPageDetails.viewName
eigendom onder xdm
van de sendEvent
gebruiken. De SDK van het Web zal het meningsgeheime voorgeheugen controleren, als er aanbiedingen voor zijn viewName
gespecificeerd in sendEvent
deze wordt uitgevoerd en er wordt een weergavemeldingsgebeurtenis verzonden.
Voorbeeld
alloy("sendEvent", {
renderDecisions: true,
xdm:{
web:{
webPageDetails:{
viewName: "homeView"
}
}
}
});
Respontokens gebruiken
Persoonlijke inhoud die door Adobe Target wordt geretourneerd, omvat reactietokens, die details over de activiteit, de aanbieding, de ervaring, het gebruikersprofiel, geo informatie, en meer zijn. Deze details kunnen met derdehulpmiddelen worden gedeeld of voor het zuiveren worden gebruikt. De tokens van de reactie kunnen in het gebruikersinterface van Adobe Target worden gevormd.
At.js gebruiken
Gebruik at.js aangepaste gebeurtenissen om te luisteren naar de reactie van het Doel en de reactietokens te lezen.
Voorbeeld
document.addEventListener(adobe.target.event.REQUEST_SUCCEEDED, function(e) {
console.log("Request succeeded", e.detail);
});
Web SDK gebruiken
De reactietokens worden geretourneerd als onderdeel van de propositions
die in het resultaat van de sendEvent
gebruiken. Elk voorstel bevat een array van items
en elk item bevat een meta
-object gevuld met antwoordtokens als deze zijn ingeschakeld in de interface van Target-beheerder. Meer informatie
Voorbeeld
alloy("sendEvent", {
renderDecisions: true,
xdm: {}
}).then(function(result) {
if (result.propositions) {
// Format of result.propositions:
/*
[
{
"id": "",
"scope": "",
"items": [
{
"id": "",
"schema": "",
"data": {},
"meta": { // RESPONSE TOKENS
"activity.name": ...,
"offer.id": ...,
"profile.activeActivities": ...
}
}
],
"scopeDetails": {}
"renderAttempted": false
}
]
*/
}
});
Flikkering beheren
At.js gebruiken
Met at.js kunt u flikkering beheren door de instelling bodyHidingEnabled: true
zodat at.js de container die de gepersonaliseerde containers zou voorbehouden alvorens het ophaalt en de DOM veranderingen toepast.
De paginagedeelten die gepersonaliseerde inhoud bevatten, kunnen vooraf worden verborgen door at.js te overschrijven bodyHiddenStyle
.
Standaard bodyHiddenStyle
verbergt de gehele HTML body
.
U kunt beide instellingen overschrijven met window.targetGlobalSettings
. window.targetGlobalSettings
moet worden geplaatst voordat het bestand te.js wordt geladen.
Web SDK gebruiken
Gebruikend Web SDK kan de klant opstelling hun pre-verbergende stijl in vormen bevel, zoals in het voorbeeld hieronder:
alloy("configure", {
edgeConfigId: "configurationId",
orgId: "orgId@AdobeOrg",
debugEnabled: true,
prehidingStyle: "body { opacity: 0 !important }"
});
Wanneer het laden van de asynchrone SDK van het Web adviseren wij dat het volgende fragment in de pagina wordt ingespoten alvorens het Web SDK wordt ingespoten:
<script>
!function(e,a,n,t){
if (a) return;
var i=e.head;if(i){
var o=e.createElement("style");
o.id="alloy-prehiding",o.innerText=n,i.appendChild(o),
setTimeout(function(){o.parentNode&&o.parentNode.removeChild(o)},t)}}
(document, document.location.href.indexOf("adobe_authoring_enabled") !== -1, "body { opacity: 0 !important }", 3000);
</script>
Hoe wordt A4T verwerkt?
At.js gebruiken
Er zijn 2 types van registreren A4T die het gebruiken at.js worden gesteund:
- Logboekregistratie aan clientzijde
- Logboekregistratie op de server voor Analytics
Logboekregistratie aan clientzijde
Voorbeeld 1: Globale instelling van doel gebruiken
Logboekregistratie aan de clientzijde van Analytics kan worden ingeschakeld door de instelling analyticsLogging: client_side
in de instellingen at.js of door de window.targetglobalSettings
object.
Als deze optie is ingesteld, ziet de indeling van de geretourneerde lading er als volgt uit:
{
"analytics": {
"payload": {
"pe": "tnt",
"tnta": "167169:0:0|0|100,167169:0:0|2|100,167169:0:0|1|100"
}
}
}
De payload kan vervolgens naar Analytics worden doorgestuurd via de API voor het invoegen van gegevens.
Voorbeeld 2: Het vormen het in elk getOffers
functie:
adobe.target.getOffers({
request: {
experienceCloud: {
analytics: {
logging: "client_side"
}
},
prefetch: {
mboxes: [{
index: 0,
name: "a1-serverside-xt"
}]
}
}
})
.then(console.log)
Zo ziet de antwoordlading eruit:
{
"prefetch": {
"mboxes": [{
"index": 0,
"name": "a1-serverside-xt",
"options": [{
"content": "<img src=\"http://s7d2.scene7.com/is/image/TargetAdobeTargetMobile/L4242-xt-usa?tm=1490025518668&fit=constrain&hei=491&wid=980&fmt=png-alpha\"/>",
"type": "html",
"eventToken": "n/K05qdH0MxsiyH4gX05/2qipfsIHvVzTQxHolz2IpSCnQ9Y9OaLL2gsdrWQTvE54PwSz67rmXWmSnkXpSSS2Q==",
"responseTokens": {
"profile.memberlevel": "0",
"geo.city": "bucharest",
"activity.id": "167169",
"experience.name": "USA Experience",
"geo.country": "romania"
}
}],
"analytics": {
"payload": {
"pe": "tnt",
"tnta": "167169:0:0|0|100,167169:0:0|2|100,167169:0:0|1|100"
}
}
}]
}
}
De payload van Analytics (tnta
token) moet worden opgenomen in de hit Analytics API voor gegevensinvoer.
Logboekregistratie op de server voor Analytics
Logboekregistratie aan de serverkant van Analytics kan worden ingeschakeld door het instellen van analyticsLogging: server_side
in de instellingen at.js of door de window.targetglobalSettings
object.
Vervolgens worden de gegevens als volgt gestroomd:
Web SDK gebruiken
Web SDK ondersteunt ook:
- Logboekregistratie aan clientzijde
- Logboekregistratie aan de zijde van Analytics Server
Logboekregistratie aan clientzijde
Logboekregistratie aan de clientzijde van Analytics wordt ingeschakeld wanneer Adobe Analytics is uitgeschakeld voor die DataStream-configuratie.
De klant heeft toegang tot het token Analytics (tnta
) die met Analytics moet worden gedeeld met behulp van API voor gegevensinvoer
door de sendEvent
en doorloopt de resulterende array met voorstellingen.
Voorbeeld
alloy("sendEvent", {
"renderDecisions": true,
"xdm": {
"web": {
"webPageDetails": {
"name": "Home Page"
}
}
}
}
).then(function (results) {
var analyticsPayloads = new Set();
for (var i = 0; i < results.propositions.length; i++) {
var proposition = results.propositions[i];
var renderAttempted = proposition.renderAttempted;
if (renderAttempted === true) {
var analyticsPayload = getAnalyticsPayload(proposition);
if (analyticsPayload !== undefined) {
analyticsPayloads.add(analyticsPayload);
}
}
}
var analyticsPayloadsToken = concatenateAnalyticsPayloads(analyticsPayloads);
// send the page view Analytics hit with collected Analytics payload using Data Insertion API
});
Hier is een diagram om te tonen hoe de gegevensstromen wanneer de Kant van de Cliënt van Analytics wordt toegelaten:
Logboekregistratie op de server voor Analytics
Logboekregistratie aan de serverkant van Analytics wordt ingeschakeld wanneer Analytics is ingeschakeld voor die DataStream-configuratie.
Wanneer het Registreren van de Logboekregistraties van de Analyse van de Server de nuttige lading A4T wordt toegelaten die met Analytics moet worden gedeeld zodat Analytics rapporteert correcte beelden en omzettingen tonen op het niveau van de Edge Network wordt gedeeld, zodat de klant geen extra verwerking hoeft te doen.
Hieronder wordt beschreven hoe gegevens in onze systemen stromen wanneer de Logboekregistratie van de Analytics van de Server wordt toegelaten:
Globale instellingen doel instellen
At.js gebruiken
U kunt instellingen in de bibliotheek at.js overschrijven met window.targetGlobalSettings
, in plaats van de instellingen te configureren in de standaardinterface/Premium van het doel of met REST API's.
De overschrijving moet worden gedefinieerd voordat om.js wordt geladen of in Beheer > Implementatie > Bewerken op.js-instellingen > Codeinstellingen > Bibliotheekheader.
Voorbeeld:
window.targetGlobalSettings = {
timeout: 200, // using custom timeout
visitorApiTimeout: 500, // using custom API timeout
enabled: document.location.href.indexOf('https://www.adobe.com') >= 0 // enabled ONLY on adobe.com
};
Web SDK gebruiken
Deze functie wordt niet ondersteund in Web SDK.
De kenmerken van het doelprofiel bijwerken
At.js gebruiken
Voorbeeld 1
adobe.target.getOffer({
mbox: "target-global-mbox",
params: {
"profile.name": "test",
"profile.gender": "female"
},
success: console.log,
error: console.error
});
Voorbeeld 2
adobe.target.getOffers({
request: {
execute: {
pageLoad: {
profileParameters: {
name: "test",
gender: "female"
}
}
}
}
})
.then(console.log)
.catch(console.error);
Web SDK gebruiken
Als u een doelprofiel wilt bijwerken, gebruikt u de opdracht sendEvent
en stelt de data.__adobe.target
eigenschap, sleutelnamen voorschrijven met profile
.
Voorbeeld
alloy("sendEvent", {
renderDecisions: true,
data: {
__adobe: {
target: {
"profile.gender": "female",
"profile.age": 30
}
}
}
});
Hoe gebruik ik Target Recommendations
At.js gebruiken
Voorbeeld 1
adobe.target.getOffer({
mbox: "target-global-mbox",
params: {
"entity.name": "T-shirt",
"entity.id": "1234"
},
success: console.log,
error: console.error
});
Voorbeeld 2
adobe.target.getOffers({
request: {
execute: {
pageLoad: {
parameters: {
"entity.name": "T-shirt",
"entity.id": "1234"
}
}
}
}
})
.then(console.log)
.catch(console.error);
Web SDK gebruiken
Om de gegevens van de Aanbeveling te verzenden, gebruik sendEvent
en stelt de data.__adobe.target
eigenschap, sleutelnamen voorschrijven met entity
.
Voorbeeld
alloy("sendEvent", {
renderDecisions: true,
data: {
__adobe: {
target: {
"entity.name": "T-shirt",
"entity.id": "1234"
}
}
}
});
Hoe gebruik ik id's van derden
At.js gebruiken
Het gebruiken van at.js is er veelvoudige manieren om te verzenden mbox3rdPartyId
, gebruiken getOffer
of getOffers
:
Voorbeeld 1
adobe.target.getOffer({
mbox:"test",
params:{
"mbox3rdPartyId": "1234"
},
success: console.log,
error: console.error
});
Voorbeeld 2
adobe.target.getOffers({
request: {
id:{
thirdPartyId: "1234"
},
execute: {
pageLoad: {}
}
}
})
.then(console.log)
.catch(console.error);
Of er is een manier om de mbox3rdPartyId
ofwel in targetPageParams
of targetPageParamsAll
.
Wanneer u deze instelt targetPageParams
, wordt het in de verzoeken om target-global-mbox
ook bekend als pag-lLoad
.
De aanbeveling moet worden vastgesteld met behulp van targetPageParamsAll
aangezien het in elk doelverzoek zal worden verzonden.
Het voordeel van targetPageParamsAll
is dat u de mbox3rdPartyId
eenmaal op de pagina staan, zodat alle doelaanvragen het juiste kunnen worden ingediend mbox3rdPartyId
.
window.targetPageParamsAll = function() {
return {
"mbox3rdPartyId": "1234"
};
};
window.targetPageParams = function() {
return {
"mbox3rdPartyId": "1234"
};
};
Web SDK gebruiken
Web SDK ondersteunt doel-id van derden. Er zijn echter nog een paar stappen voor nodig. Voordat we in de oplossing duiken, moeten we eerst wat praten over identityMap
.
Met Identiteitskaart kunnen klanten meerdere identiteiten verzenden. Alle identiteiten worden naamruimte gegeven. Elke naamruimte kan een of meer identiteiten hebben. Een bepaalde identiteit kan als primair worden gemarkeerd.
Met deze kennis in mening kunnen wij zien wat de noodzakelijke stappen aan opstellings Web sdk zijn om identiteitskaart van de Derde van het Doel te gebruiken.
- Opstelling namespace die identiteitskaart van de Derde van het Doel in de de configuratiepagina van de gegevensstroom zal bevatten:
- Verzend die identiteitsnaamruimte in elke sendEvent-opdracht als volgt:
alloy("sendEvent", {
"renderDecisions": true,
"xdm": {
"identityMap": {
"TGT3PID": [
{
"id": "1234",
"primary": true
}
]
}
}
});
Hoe kan ik eigenschapstokens instellen?
At.js gebruiken
Gebruikend at.js zijn er twee manieren om opstelling de bezitstokens, of het gebruiken van targetPageParams
of targetPageParamsAll
. Gebruiken targetPageParams
voegt de eigenschap token toe aan de target-global-mbox
vraag, maar het gebruiken targetPageParamsAll
voegt het teken aan alle doelvraag toe:
Voorbeeld 1
window.targetPageParamsAll = function() {
return {
"at_property": "1234"
};
};
Voorbeeld 2
window.targetPageParams = function() {
return {
"at_property": "1234"
};
};
Web SDK gebruiken
Gebruikend Web SDK kunnen de klanten opstelling het bezit op een hoger niveau, wanneer vestiging de gegevensstroomconfiguratie, onder Adobe Target namespace:
Dit betekent elke vraag van het Doel voor die specifieke configuratie van de Stream van Gegevens die bezitstoken zal bevatten.
Hoe kan ik een voorvoegsel toevoegen aan een box
At.js gebruiken
Deze functionaliteit is alleen beschikbaar in at.js 2.x. at.js 2.x. getOffers
. getOffers
klanten toestaan inhoud vooraf in te stellen voor een of meer vakken. Hier volgt een voorbeeld:
adobe.target.getOffers({
request: {
prefetch: {
mboxes: [{
index: 0,
name: "test-mbox",
parameters: {
...
},
profileParameters: {
...
}
}]
}
}
})
.then(console.log)
.catch(console.error);
NOTA: Het wordt hoogst geadviseerd om ervoor te zorgen dat elk mbox
in de mboxes
array heeft een eigen index. Meestal heeft de eerste box index=0
, de volgende index=1
, enz.
Web SDK gebruiken
Deze functionaliteit wordt momenteel niet ondersteund in Web SDK.
Hoe kan ik fouten opsporen in mijn doelimplementatie
At.js gebruiken
At.js stelt deze het zuiveren eigenschappen bloot:
- Mbox Uitschakelen - schakel Doel uit van ophalen en renderen om te controleren of de pagina wordt verbroken zonder interactie van Doel
- Mbox Debug - at.js registreert elke actie
- Doelovertrek - met een mbox trace-token dat in Bullseye is gegenereerd, is een trace-object met details die aan het besluitvormingsproces hebben deelgenomen, beschikbaar onder
window.___target_trace
object
Opmerking: al deze foutopsporingsfuncties zijn beschikbaar met verbeterde mogelijkheden in Adobe Experience Platform Debugger
Web SDK gebruiken
U hebt veelvoudige het zuiveren mogelijkheden wanneer het gebruiken van Web SDK:
- Gebruiken Betrouwbaarheid
- Web SDK debugenabled
- Gebruiken Controle van webSDK-haken
- Gebruiken Adobe Experience Platform Debugger
- Doelovertrek