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:

IMPORTANT
Volgen deze koppeling om steekproefimplementaties voor verschillende verpersoonlijking en experimentatiegebruiksgevallen te vinden. Controleer hen uit en stel hen in werking om beter te begrijpen wat de implementatiestappen nodig zijn en hoe de verpersoonlijkingsstroom van begin tot eind werkt.

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

  1. Web SDK is opgenomen op de pagina.

  2. 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"));
    
  3. 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.

  4. 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,
                },
              ],
            },
          },
        },
      });
    }
    
  5. 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.

Cookie
Doel
Opgeslagen door
Verzonden door
kCtr_AdobeOrg_identity
Bevat identiteitsgegevens van gebruiker
Web SDK
Web SDK
kndctr_AdobeOrg_cluster
Geeft aan met welke Edge-cluster aanvragen kunnen worden afgehandeld
Web SDK
Web SDK

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.

Verzoek
Door
interactief verzoek om voorstellen te krijgen
Web SDK met de opdracht sendEvent
interactief verzoek om weergavemeldingen te verzenden
Web SDK met de opdracht sendEvent

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

  1. De webpagina wordt opgevraagd en eventuele cookies die eerder door de browser zijn opgeslagen, worden vooraf opgeslagen kndctr_ worden opgenomen.

  2. 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 de meta>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());
    
  3. De JSON-ervaring van de op code gebaseerde ervaringscampagne wordt gelezen uit de reactie en gebruikt bij het produceren van de HTML-respons.

  4. 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,
        }
      );
    }
    
  5. 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.

Cookie
Doel
Opgeslagen door
Verzonden door
kCtr_AdobeOrg_identity
Bevat identiteitsgegevens van gebruiker
toepassingsserver
toepassingsserver
kndctr_AdobeOrg_cluster
Geeft aan met welke Edge-cluster aanvragen kunnen worden afgehandeld
toepassingsserver
toepassingsserver

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.

Verzoek
Door
interactief verzoek om voorstellen te krijgen
toepassingsserver die de Adobe Experience Platform API aanroept
interactief verzoek om weergavemeldingen te verzenden
toepassingsserver die de Adobe Experience Platform API aanroept

Stroomdiagram

Hybride implementatie hybrid-implementation

Als u een hybride implementatie hebt, checkt u de onderstaande koppelingen uit.

recommendation-more-help
b22c9c5d-9208-48f4-b874-1cefb8df4d76