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 onder beschrijf het proces om de inhoud te halen die op de rand door op code-gebaseerde ervaringscampagnes in een steekproef wordt gepubliceerd Web SDK implementatie en weergave van de gepersonaliseerde inhoud.
-
De stappen om code-gebaseerd kanaal uit te voeren die Mobile SDK worden beschreven in deze zelfstudie.
note note NOTE Voorbeeldimplementaties voor mobiele toepassingen zijn beschikbaar voor iOS-app and Android app.
Hoe het werkt - Web SDK client-side-how
-
Web SDK is opgenomen op de pagina.
-
U moet de opdracht
sendEvent
en geef de oppervlakte-URI op om personalisatie-inhoud op te halen.code language-javascript alloy("sendEvent", { renderDecisions: true, personalization: { surfaces: ["#sample-json-content"], }, }).then(applyPersonalization("#sample-json-content"));
-
Code-gebaseerde ervaringsitems moeten handmatig worden toegepast door de implementatiecode (met behulp van de
applyPersonalization
methode) om het DOM bij te werken op basis van de beslissing. -
Voor op code-gebaseerde ervaringscampagnes, moeten de vertoningsgebeurtenissen manueel worden verzonden om erop te wijzen wanneer de inhoud is getoond. Dit gebeurt via de
sendEvent
gebruiken.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 ervaringscampagnes, moeten de interactiegebeurtenissen manueel worden verzonden om erop te wijzen wanneer een gebruiker met de inhoud heeft gecommuniceerd. Dit gebeurt via de
sendEvent
gebruiken.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.
Verzoek om plaatsing
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 SDK van het Web deze verzoeken wanneer sendEvent
wordt gebruikt.
Stroomdiagram
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 ophaalt die op de rand van de computer is gepubliceerd door de op code gebaseerde ervaringscampagnes in een voorbeeldimplementatie van de Edge Network-API voor een webpagina en hoe u de gepersonaliseerde inhoud weergeeft.
Werking
-
De webpagina wordt opgevraagd en eventuele cookies die eerder door de browser zijn opgeslagen, worden vooraf opgeslagen
kndctr_
worden opgenomen. -
Wanneer de pagina bij de toepassingsserver wordt aangevraagd, wordt een gebeurtenis verzonden naar interactief eindpunt van gegevensverzameling om personalisatie-inhoud op te halen. In deze voorbeeldtoepassing worden enkele hulpmethoden gebruikt om het samenstellen en verzenden van aanvragen naar de API te vereenvoudigen (zie aepEdgeClient.js). Maar het verzoek is gewoon een
POST
met een payload die een gebeurtenis en query bevat. De cookies (indien beschikbaar) uit de vorige stap worden in demeta>state>entries
array.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 ervaringscampagne wordt gelezen uit de reactie en gebruikt bij het produceren van de HTML-respons.
-
Voor op code-gebaseerde ervaringscampagnes, moeten de vertoningsgebeurtenissen in de implementatie manueel worden verzonden om erop te wijzen wanneer de 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.
Verzoek om plaatsing
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 SDK van het Web deze verzoeken wanneer sendEvent
wordt gebruikt.
Stroomdiagram
Hybride implementatie hybrid-implementation
Als u een hybride implementatie hebt, checkt u de onderstaande koppelingen uit.