Voorbeelden van op code gebaseerde implementatiemethoden implementation-samples
De op code-gebaseerde ervaring steunt om het even welk type van klantenimplementatie. Op deze pagina kunt u steekproeven voor elke implementatiemethode vinden:
Implementatie op de client client-side-implementation
Als u een client-side implementatie hebt, kunt u een van de AEP client-SDK's gebruiken: AEP Web SDK of AEP Mobile SDK.
-
De stappen beschrijven hieronderhet proces om de inhoud te halen die op de rand door de op code-gebaseerde ervaringstransporten en campagnes in een 3} implementatie wordt gepubliceerd van het steekproef Web SDK {en het tonen van de gepersonaliseerde inhoud.
-
De stappen om code-gebaseerd kanaal uit te voeren gebruikend Mobiele SDK worden beschreven in dit leerprogramma.
note note NOTE De implementaties van de steekproef voor mobiele gebruiksgevallen zijn beschikbaar voor app van iOSen app van Android.
Hoe het werkt - Web SDK client-side-how
-
SDK van het Webis inbegrepen op de pagina.
-
U moet het
sendEvent
bevel gebruiken en de oppervlakte URIspecificeren om verpersoonlijkingsinhoud te halen.code language-javascript alloy("sendEvent", { renderDecisions: true, personalization: { surfaces: ["#sample-json-content"], }, }).then(applyPersonalization("#sample-json-content"));
-
Op code-gebaseerde ervaringspunten zouden manueel door de implementatiecode (gebruikend de
applyPersonalization
methode) moeten worden toegepast om DOM bij te werken die op het besluit wordt gebaseerd. -
Voor op code-gebaseerde ervaringsreizen en campagnes, moeten de vertoningsgebeurtenissen manueel worden verzonden om erop te wijzen wanneer de inhoud is getoond. Dit gebeurt via de opdracht
sendEvent
.code language-javascript function sendDisplayEvent(decision) { const { id, scope, scopeDetails = {} } = decision; alloy("sendEvent", { xdm: { eventType: "decisioning.propositionDisplay", _experience: { decisioning: { propositions: [ { id: id, scope: scope, scopeDetails: scopeDetails, }, ], }, }, }, }); }
-
Voor op code-gebaseerde ervaringsreizen en campagnes, moeten de interactiegebeurtenissen manueel worden verzonden om erop te wijzen wanneer een gebruiker met de inhoud heeft gecommuniceerd. Dit gebeurt via de opdracht
sendEvent
.code language-javascript function sendInteractEvent(label, proposition) { const { id, scope, scopeDetails = {} } = proposition; alloy("sendEvent", { xdm: { eventType: "decisioning.propositionInteract", _experience: { decisioning: { propositions: [ { id: id, scope: scope, scopeDetails: scopeDetails, }, ], propositionEventType: { interact: 1 }, propositionAction: { label: label }, }, }, }, }); }
Belangrijke opmerkingen
Cookies
Cookies worden gebruikt om de gebruikersidentiteit en clusterinformatie voort te zetten. Wanneer het gebruiken van een cliënt-zijimplementatie, behandelt het Web SDK het opslaan en het verzenden van deze koekjes automatisch tijdens de verzoeklevenscyclus.
plaatsing van het Verzoek
Aanvragen aan de Adobe Experience Platform API zijn vereist om voorstellen te ontvangen en een weergavemelding te verzenden. Wanneer het gebruiken van een cliënt-zijimplementatie, doet het Web SDK deze verzoeken wanneer het sendEvent
bevel wordt gebruikt.
Diagram van de Stroom
Implementatie op de server server-side-implementation
Als u een server-zijimplementatie hebt, kunt u één AEP Edge Network API gebruiken.
In de onderstaande stappen wordt beschreven hoe u de inhoud die op de rand van de code is gepubliceerd, ophaalt via een op code gebaseerde ervaringsreis en -campagne in een voorbeeldimplementatie van de Edge Network-API voor een webpagina en hoe u de gepersonaliseerde inhoud weergeeft.
Werking
-
De webpagina wordt opgevraagd en cookies die eerder zijn opgeslagen door de browser die vooraf is ingesteld op
kndctr_
, worden opgenomen. -
Wanneer de pagina van de toepassingsserver wordt gevraagd, wordt een gebeurtenis verzonden naar het interactieve eindpunt van de gegevensinzamelingom verpersoonlijkingsinhoud te halen. Deze steekproef app maakt gebruik van sommige helpermethodes om het bouwen en het verzenden van verzoeken naar API (zie aepEdgeClient.jste vereenvoudigen ). Maar de aanvraag is gewoon een
POST
met een payload die een gebeurtenis en query bevat. De cookies (indien beschikbaar) uit de voorgaande stap worden opgenomen in de aanvraag in de arraymeta>state>entries
.code language-javascript fetch( "https://edge.adobedc.net/ee/v2/interact?dataStreamId=abc&requestId=123", { headers: { accept: "*/*", "accept-language": "en-US,en;q=0.9", "cache-control": "no-cache", "content-type": "text/plain; charset=UTF-8", pragma: "no-cache", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "cross-site", "sec-gpc": "1", "Referrer-Policy": "strict-origin-when-cross-origin", Referer: "https://localhost/", }, body: JSON.stringify({ event: { xdm: { eventType: "decisioning.propositionFetch", web: { webPageDetails: { URL: "https://localhost/", }, webReferrer: { URL: "", }, }, identityMap: { FPID: [ { id: "xyz", authenticatedState: "ambiguous", primary: true, }, ], }, timestamp: "2022-06-23T22:21:00.878Z", }, data: {}, }, query: { identity: { fetch: ["ECID"], }, personalization: { schemas: [ "https://ns.adobe.com/personalization/default-content-item", "https://ns.adobe.com/personalization/html-content-item", "https://ns.adobe.com/personalization/json-content-item", "https://ns.adobe.com/personalization/redirect-item", "https://ns.adobe.com/personalization/dom-action", ], surfaces: ["web://localhost/","web://localhost/#sample-json-content"], }, }, meta: { state: { domain: "localhost", cookiesEnabled: true, entries: [ { key: "kndctr_XXX_AdobeOrg_identity", value: "abc123", }, { key: "kndctr_XXX_AdobeOrg_cluster", value: "or2", }, ], }, }, }), method: "POST", } ).then((res) => res.json());
-
De JSON-ervaring van de op code gebaseerde ervaringstransporten en -campagne wordt gelezen uit de reactie en gebruikt bij het produceren van de HTML-respons.
-
Voor op code-gebaseerde ervaringsreizen en campagnes, moeten de vertoningsgebeurtenissen in de implementatie manueel worden verzonden om erop te wijzen wanneer de reis of campagneinhoud is getoond. In dit voorbeeld wordt het bericht tijdens de levenscyclus van de aanvraag naar de server verzonden.
code language-javascript function sendDisplayEvent(aepEdgeClient, req, propositions, cookieEntries) { const address = getAddress(req); aepEdgeClient.interact( { event: { xdm: { web: { webPageDetails: { URL: address }, webReferrer: { URL: "" }, }, timestamp: new Date().toISOString(), eventType: "decisioning.propositionDisplay", _experience: { decisioning: { propositions: propositions.map((proposition) => { const { id, scope, scopeDetails } = proposition; return { id, scope, scopeDetails, }; }), }, }, }, }, query: { identity: { fetch: ["ECID"] } }, meta: { state: { domain: "", cookiesEnabled: true, entries: [...cookieEntries], }, }, }, { Referer: address, } ); }
-
Wanneer de HTML-reactie wordt geretourneerd, worden de identiteits- en clustercookies ingesteld op de reactie van de toepassingsserver.
Belangrijke opmerkingen
Cookies
Cookies worden gebruikt om de gebruikersidentiteit en clusterinformatie voort te zetten. Wanneer u een serverimplementatie gebruikt, moet de toepassingsserver de opslag en verzending van deze cookies tijdens de levenscyclus van de aanvraag afhandelen.
plaatsing van het Verzoek
Aanvragen aan de Adobe Experience Platform API zijn vereist om voorstellen te ontvangen en een weergavemelding te verzenden. Wanneer het gebruiken van een cliënt-zijimplementatie, doet het Web SDK deze verzoeken wanneer het sendEvent
bevel wordt gebruikt.
Diagram van de Stroom
Hybride implementatie hybrid-implementation
Als u een hybride implementatie hebt, checkt u de onderstaande koppelingen uit.
- Tech Blog van de Adobe: Hybride Personalization in het Web SDK van Adobe Experience Platform
- De Documentatie van SDK: Hybride verpersoonlijking die Web SDK en de Server API van de Edge Network gebruiken