De bibliotheek at.js vergelijken met de Adobe Experience Platform 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
Met Adobe kunnen klanten de bibliotheek rechtstreeks downloaden vanaf het tabblad Adobe Experience Cloud , Implementation . De bibliotheek at.js wordt aangepast met instellingen die de klant als volgt heeft: clientCode, imsOrgId, enz.
De Web SDK 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 SDK van het Web installeren gebruikend de bibliotheek van JavaScriptvoor meer informatie.
De bibliotheken configureren
Bij.js configureren
Aan het einde van elk bestand at.js ziet u een sectie waarin Adobe een instellingsobject instantieert en doorgeeft. Deze kan worden aangepast wanneer Adobe het desbetreffende gedeelte downloadt en de huidige instellingen van de klant erin opneemt.
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 Platform Web SDK configureren
De configuratie voor SDK wordt gedaan met het configure
bevel. Het configure
bevel is altijd ** geroepen eerst.
Aanbiedingen voor het aanvragen en automatisch renderen van het laden van pagina's Target
At.js gebruiken
Als u de instelling pageLoadEnabled,
inschakelt, activeert de bibliotheek met behulp van at.js 2.x een aanroep van Target Edge met execute -> pageLoad
. Als alle instellingen op de standaardwaarden zijn ingesteld, is aangepaste codering niet nodig. Zodra om.js aan de pagina wordt toegevoegd en door browser wordt geladen, wordt een Target vraag van Edge uitgevoerd.
PLatform Web SDK gebruiken
De inhoud die binnen Target wordt gecreeerd Visuele Composer van de Ervaringkan automatisch door SDK worden teruggewonnen en worden teruggegeven.
Als u Target -aanbiedingen wilt aanvragen en automatisch wilt renderen, gebruikt u de opdracht sendEvent
en stelt u de optie renderDecisions
in op true.
Zo dwingt u de SDK 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
}
}
}
});
Experience Platform Web SDK verzendt automatisch een melding met de aanbiedingen die door Platform WEB SDK werden uitgevoerd. Dit is 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"
}
}
}
]
}
Hoe te om te verzoeken en NIET automatisch de aanbiedingen van het Doel van de Lading van de Pagina terug te geven
At.js gebruiken
Er zijn twee manieren om een aanroep van Target Edge te activeren die aanbiedingen voor het laden van pagina's ophaalt.
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);
Platform Web SDK gebruiken
Voer een opdracht sendEvent
uit met een speciaal bereik onder decisionScopes
: __view__
. Adobe gebruikt dit bereik als een signaal om alle activiteiten voor het laden van pagina's op te halen uit Target en alle weergaven vooraf in te stellen. Platform Web SDK probeert ook om alle VEC mening gebaseerde activiteiten te evalueren. Het uitschakelen van weergave-prefetching wordt momenteel niet ondersteund in de Platform Web SDK .
Om tot om het even welke verpersoonlijkingsinhoud toegang te hebben, kon 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 zou kunnen 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 activiteiten ophalen met de functie getOffer
:
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);
Platform Web SDK gebruiken
U kunt op Form-Based Composer gebaseerde activiteiten ophalen door de opdracht sendEvent
te gebruiken en de namen van de box onder de optie decisionScopes
door te geven. De opdracht sendEvent
retourneert een belofte die wordt opgelost met een object dat de gevraagde activiteiten/voorstellen bevat:
Met dit codefragment ziet de array propositions
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
}
}
}
});
}
}
}
}
});
De Target -activiteiten toepassen
At.js gebruiken
U kunt de Target -activiteiten toepassen met de functie applyOffers
: 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));
Leer meer over het applyOffers
bevel van de specifieke documentatie.
Platform Web SDK gebruiken
U kunt de Target -activiteiten toepassen met de opdracht applyPropositions
.
Voorbeeld:
alloy("applyPropositions", {
propositions: [...]
});
Leer meer over het applyPropositions
bevel van de specifieke documentatie.
Hoe kan ik gebeurtenissen volgen?
At.js gebruiken
U kunt gebeurtenissen volgen met de functie trackEvent
of met sendNotifications.
Deze functie voert een verzoek in om gebruikersacties, zoals kliks en omzettingen te melden. Deze functie 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",
...
}]
}
});
Platform Web SDK gebruiken
U kunt gebeurtenissen en gebruikersacties volgen door de opdracht sendEvent
aan te roepen, de _experience.decisioning.propositions
XDM fieldgroup
te vullen en de eventType
op een van twee waarden in te stellen:
decisioning.propositionDisplay
: hiermee wordt het renderen van de Target -activiteit aangegeven.decisioning.propositionInteract
: hiermee wordt een gebruikersinteractie met de activiteit aangegeven, zoals een muisklik.
_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 de sendEvent
command: { id, scope, scopeDetails }.
Voorbeeld 1 - spoor a decisioning.propositionDisplay
gebeurtenis na het teruggeven 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": id,
"scope": scope,
"scopeDetails": scopeDetails
}],
"propositionEventType": {
"display": 1
}
}
}
}
});
}
});
Voorbeeld 2 - Spoor a decisioning.propositionInteract
gebeurtenis na klikken metrisch voorkomt
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 - spoor een gebeurtenis die na het uitvoeren van een actie wordt ontbrand
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 het gegevensobject __adobe.target
.
U kunt ook het commerce
XDM-object toevoegen.
alloy("sendEvent", {
"xdm": {
"_experience": {
"decisioning": {
"propositions": [
{
"scope": "orderConfirm" //example scope name
}
],
"propositionEventType": {
"display": 1
}
}
},
"eventType": "decisioning.propositionDisplay"
},
"commerce": {
"order": {
"purchaseID": "a8g784hjq1mnp3",
"purchaseOrderNumber": "VAU3123",
"currencyCode": "USD",
"priceTotal": 999.98
}
},
"data": {
"__adobe": {
"target": {
"pageType": "Order Confirmation",
"user.categoryId": "Insurance"
}
}
}
})
Een weergavewijziging activeren in een toepassing voor één pagina
At.js gebruiken
Gebruik de functie adobe.target.triggerView
. Deze functie kan worden aangeroepen wanneer een nieuwe pagina wordt geladen of wanneer een component op een pagina opnieuw wordt weergegeven. De functie adobe.target.triggerView()
moet worden geïmplementeerd voor toepassingen van één pagina (SPA's), zodat Visual Experience Composer (VEC) kan worden gebruikt om A/B Test - en Experience Targeting (XT)-activiteiten te maken. Als adobe.target.triggerView()
niet op de plaats wordt uitgevoerd, kan VEC niet voor SPAs worden gebruikt.
Voorbeeld
adobe.target.triggerView("homeView")
Platform Web SDK gebruiken
Als u een toepassing op één pagina wilt activeren of signaleren View Change , stelt u de eigenschap web.webPageDetails.viewName
in onder de optie xdm
van de opdracht sendEvent
. De Platform Web SDK controleert de weergavecache als er aanbiedingen zijn voor de viewName
opgegeven in sendEvent
, worden deze uitgevoerd en wordt een weergavemeldingsgebeurtenis verzonden.
Voorbeeld
alloy("sendEvent", {
renderDecisions: true,
xdm:{
web:{
webPageDetails:{
viewName: "homeView"
}
}
}
});
Betere benutting Response Tokens
De inhoud van Personalization die van Target is teruggekeerd omvat reactietokens. De tekenen van de reactie zijn details over de activiteit, de aanbieding, de ervaring, het gebruikersprofiel, geo informatie, en meer. Deze details kunnen met derdehulpmiddelen worden gedeeld of voor het zuiveren worden gebruikt. De tokens van de reactie kunnen in het Target gebruikersinterface worden gevormd.
At.js gebruiken
Gebruik aangepaste gebeurtenissen at.js om te luisteren naar de reactie van Target en de reactietokens te lezen.
Voorbeeld
document.addEventListener(adobe.target.event.REQUEST_SUCCEEDED, function(e) {
console.log("Request succeeded", e.detail);
});
Platform Web SDK gebruiken
De reactietokens worden geretourneerd als onderdeel van de propositions
die worden weergegeven in het resultaat van de opdracht sendEvent
. Elke propositie bevat een array van items,
en elk item heeft een meta
-object dat is gevuld met responstokens als deze zijn ingeschakeld in de Target -beheerinterface. Leer meer
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
Als u at.js gebruikt, kunt u flikkering beheren door bodyHidingEnabled: true
zo in te stellen dat at.js het bestand is dat zorgt voor
de gepersonaliseerde containers voorverbergen voordat deze de DOM-wijzigingen ophalen en toepassen.
De paginagedeelten die gepersonaliseerde inhoud bevatten, kunnen vooraf worden verborgen door het bestand at.js te overschrijven bodyHiddenStyle.
Standaard verbergt bodyHiddenStyle
de hele HTML body.
U kunt beide instellingen overschrijven door window.targetGlobalSettings.
window.targetGlobalSettings
te gebruiken voordat u het bestand at.js laadt.
Platform Web SDK gebruiken
Gebruikend Platform Web SDK kan de klant opstelling hun pre-verbergende stijl in vormen bevel, zoals in het volgende voorbeeld:
alloy("configure", {
datastreamId: "configurationId",
orgId: "orgId@AdobeOrg",
debugEnabled: true,
prehidingStyle: "body { opacity: 0 !important }"
});
Wanneer u Platform Web SDK async laadt, raadt Adobe aan het volgende fragment op de pagina in te spuiten voordat Platform Web SDK wordt geïnjecteerd:
<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 twee 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: Het gebruiken van Target Globale Plaatsing
Logboekregistratie aan de clientzijde van Analytics kan worden ingeschakeld door analyticsLogging: client_side
in te stellen bij de instellingen at.js of door het window.targetglobalSettings
-object te overschrijven.
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 lading kan dan aan Analytics via Data Insertion API door:sturen.
Voorbeeld 2: Het vormen het in elke getOffers
functie:
adobe.target.getOffers({
request: {
experienceCloud: {
analytics: {
logging: "client_side"
}
},
prefetch: {
mboxes: [{
index: 0,
name: "a1-serverside-xt"
}]
}
}
})
.then(console.log)
Dit codefragment is hoe de antwoordlading eruit ziet:
{
"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 Analytics nuttige lading (tnta
teken) zou in de Analytics klap moeten worden omvat gebruikend Invoeging API van Gegevens.
Analytics Logboekregistratie op de server
Analytics Logboekregistratie aan de serverzijde kan worden ingeschakeld door analyticsLogging: server_side
in te stellen bij de instellingen at.js of door het window.targetglobalSettings
-object te overschrijven.
Vervolgens worden de gegevens als volgt gestroomd:
Platform Web SDK gebruiken
Het web-SDK biedt ook ondersteuning voor:
- Logboekregistratie aan clientzijde
- Logboekregistratie aan de zijde van Analytics Server
Analytics Logboekregistratie aan clientzijde
Analytics Logboekregistratie aan de clientzijde wordt ingeschakeld wanneer Adobe Analytics is uitgeschakeld voor die DataStream-configuratie.
De klant heeft toegang tot het Analytics teken (tnta
) dat met Analytics moet worden gedeeld gebruikend de Invoeging API van Gegevensdoor het sendEvent
bevel in een keten te brengen en door de resulterende voorstellingenserie te herhalen.
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 volgt een diagram waarin wordt aangegeven hoe gegevens stromen wanneer Analytics Client Side is ingeschakeld:
Analytics Logboekregistratie op de server
Analytics Logboekregistratie aan de serverzijde wordt ingeschakeld wanneer Analytics is ingeschakeld voor die DataStream-configuratie.
Wanneer Logboekregistratie aan serverzijde Analytics is ingeschakeld, wordt de A4T-lading die met Analytics moet worden gedeeld, zodat in de Analytics -rapportage correcte indrukkingen en conversies worden weergegeven, op Edge Network-niveau gedeeld, zodat de klant geen verdere verwerking hoeft te uitvoeren.
Hier is hoe de gegevens in de systemen stromen wanneer de Logging van de Analyse van de Zijde van de Server wordt toegelaten:
Globale instellingen instellen Target
At.js gebruiken
U kunt instellingen in de bibliotheek at.js overschrijven met window.targetGlobalSettings,
in plaats van de instellingen in de gebruikersinterface van Target te configureren 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
};
Platform Web SDK gebruiken
Deze functie wordt niet ondersteund in de Web SDK.
Target Profielkenmerken 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);
Platform Web SDK gebruiken
Als u een Target -profiel wilt bijwerken, gebruikt u de opdracht sendEvent
en stelt u de eigenschap data.__adobe.target
in, waarbij de namen van toetsen vooraf worden ingesteld 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);
Platform Web SDK gebruiken
Als u Recommendations -gegevens wilt verzenden, gebruikt u de opdracht sendEvent
en stelt u de eigenschap data.__adobe.target
in, waarbij de sleutelnamen vooraf worden ingesteld 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
Wanneer u at.js gebruikt, zijn er meerdere manieren om mbox3rdPartyId
te verzenden met 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);
U kunt de mbox3rdPartyId
ook instellen in targetPageParams
of targetPageParamsAll.
Bij het instellen van targetPageParams
worden de aanvragen voor target-global-mbox
ook wel pag-lLoad
genoemd.
De aanbeveling moet worden ingesteld met targetPageParamsAll
zoals deze in elk Target -verzoek wordt verzonden. Het voordeel van targetPageParamsAll
is dat u de mbox3rdPartyId
op de pagina één keer kunt definiëren om ervoor te zorgen dat alle Target -aanvragen het juiste resultaat hebben mbox3rdPartyId.
window.targetPageParamsAll = function() {
return {
"mbox3rdPartyId": "1234"
};
};
window.targetPageParams = function() {
return {
"mbox3rdPartyId": "1234"
};
};
Platform Web SDK gebruiken
Platform Web SDK biedt ondersteuning voor Target id van derden. Er zijn echter nog een paar stappen voor nodig.
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 kunt u zien wat de noodzakelijke stappen aan opstelling voor Platform Web SDK zijn om Target identiteitskaart van de Derde te gebruiken.
- Stel de naamruimte in die de Target id van derden bevat in de configuratiepagina van de gegevensstroom:
- Verzend die naamruimte in elke opdracht
sendEvent
als volgt:
alloy("sendEvent", {
"renderDecisions": true,
"xdm": {
"identityMap": {
"TGT3PID": [
{
"id": "1234",
"primary": true
}
]
}
}
});
Hoe kan ik eigenschapstokens instellen?
At.js gebruiken
Wanneer u at.js gebruikt, zijn er twee manieren om de eigenschapstokens in te stellen: met targetPageParams
of targetPageParamsAll.
Using targetPageParams
wordt de eigenschapstoken aan de target-global-mbox
-aanroep toegevoegd, maar met targetPageParamsAll
wordt het token aan alle Target -aanroepen toegevoegd:
Voorbeeld 1
window.targetPageParamsAll = function() {
return {
"at_property": "1234"
};
};
Voorbeeld 2
window.targetPageParams = function() {
return {
"at_property": "1234"
};
};
Platform Web SDK gebruiken
Met Platform Web SDK kunnen klanten de eigenschap op een hoger niveau instellen wanneer ze de configuratie van de gegevensstroom instellen onder de naamruimte Adobe Target :
Dit betekent dat elke Target oproep voor die specifieke configuratie van de Stream van Gegevens die bezitstoken bevat.
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 heeft een nieuwe functie met de naam getOffers
. Met de functie getOffers
kunnen klanten inhoud vooraf instellen 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);
mbox
in de mboxes
-array een eigen index heeft. Meestal heeft de eerste mbox index=0
de volgende index=1,
enzovoort.Platform Web SDK gebruiken
Deze functionaliteit wordt momenteel niet ondersteund in Platform Web SDK .
Hoe kan ik fouten opsporen in mijn Target -implementatie
At.js gebruiken
De bibliotheek at.js stelt deze het zuiveren eigenschappen bloot:
- Mbox Disable - schakelt Target uit van ophalen en renderen om te controleren of de pagina wordt onderbroken zonder Target interacties
- Mbox Debug - at.js registreert elke actie
- Doelovertrek - met een mbox trace-token gegenereerd in een trace-object met details die aan het beslissingsproces hebben deelgenomen, is beschikbaar onder
window.___target_trace
-object.
Platform Web SDK gebruiken
U hebt meerdere mogelijkheden voor foutopsporing wanneer u Platform Web SDK gebruikt:
- Gebruikend Assurance
- Web SDK toegelaten zuivert
- Het gebruik van SDK controlemaakjes van het Web
- Gebruik Adobe Experience Platform Debugger
- Doelovertrek