Skapa dataelement

Lär dig hur du skapar dataelement i taggar för innehåll, handel och identitetsdata på demowebbplatsen för Luma. Fyll sedan i fälten i XDM-schemat.

Utbildningsmål

När lektionen är slut kan du:

  • Förstå olika metoder för att mappa ett datalager till XDM
  • Skapa dataelement för datainhämtning
  • Mappa dataelement till ett XDM-objekt

Förutsättningar

Du har en förståelse för vad ett datalager är och har slutfört föregående lektioner i självstudien:

IMPORTANT
Data för den här lektionen kommer från datalagret adobeDataLayerLuma-webbplatsen. Om du vill visa datalagret öppnar du utvecklarkonsolen och skriver in adobeDataLayer för att se hela datalagret som är tillgängligt. adobeDataLayer-datalager

Metoder för datalager

Det finns flera sätt att mappa data från datalagret till XDM med taggfunktionerna i Adobe Experience Platform. Nedan visas några fördelar och ikoner med tre olika strategier. Det är möjligt att kombinera metoder, om så önskas:

  1. Implementera XDM i datalagret
  2. Mappa till XDM i taggar
  3. Mappa till XDM i datastream
NOTE
Exemplen i den här självstudiekursen följer kartan till XDM när det gäller taggar.

Implementera XDM i datalagret

På det här sättet implementerar webbutvecklare ett helt definierat XDM-objekt som strukturen för datalagret. Sedan mappar du helt enkelt hela datalagret till ett XDM-objekt i taggar. Om implementeringen inte använder en tagghanterare kan det här tillvägagångssättet vara idealiskt eftersom du kan skicka data till XDM direkt från programmet med kommandot XDM sendEvent. Om du använder taggar kan du skapa ett anpassat kodelement som hämtar hela datalagret som ett genomströmningsJSON-objekt till XDM-filen. Därefter mappar du genomströmnings-JSON till XDM-objektfältet i åtgärden Skicka händelse.

Nedan visas ett exempel på hur datalagret skulle se ut när formatet Adobe Client Data Layer används:

XDM i datalagrets exempel
code language-json
window.adobeDataLayer.push({
"eventType": "web.webPageDetails.pageViews",
"web":{
         "webInteraction":{
            "linkClicks":{
               "id":"",
               "value":""
            },
            "URL":"",
            "name":"",
            "region":"",
            "type":""
         },
         "webPageDetails":{
            "pageViews":{
               "id":"",
               "value":"1"
            },
            "URL":"https://luma.enablementadobe.com/",
            "isErrorPage":"",
            "isHomePage":"",
            "name":"luma:home",
            "server":"enablementadobe.com",
            "siteSection":"home",
            "viewName":""
         },
         "webReferrer":{
            "URL":"",
            "type":""
         }
      }
});

Proffs

  • Eliminerar ytterligare steg som går vidare till datalagervariabler till XDM
  • Det kan gå snabbare att driftsätta om webbutvecklingsteamet också äger taggningen av det digitala beteendet

Kon

  • Fullständigt beroende av utvecklingsteamet och utvecklingscykeln för uppdatering av vilka data som skickas till XDM
  • Begränsad flexibilitet eftersom XDM får exakt nyttolast från datalagret
  • Det går inte att använda inbyggda taggfunktioner, till exempel skrapning, beständighet och funktioner för snabb distribution
  • Det är svårare att använda datalagret för pixlar från tredje part (men du kanske vill flytta dessa pixlar till händelsevidarebefordran!)
  • Ingen möjlighet att omvandla data mellan datalagret och XDM

Mappa till XDM i taggar

Det här sättet innebär att mappa enskilda datalagervariabler till dataelement i taggar och så småningom till XDM. Detta är det traditionella sättet att implementera med hjälp av ett tagghanteringssystem.

Proffs

  • Den mest flexibla metoden eftersom du kan styra enskilda variabler och omvandla data innan det når XDM
  • Kan använda Adobe-taggar som utlöser och scraping-funktioner för att skicka data till XDM
  • Kan mappa dataelement till pixlar från tredje part på klientsidan

Kon

  • Det tar tid att rekonstruera datalagret som taggar dataelement
IMPORTANT
Som tidigare nämnts följer exemplen i den här självstudiekursen mappningen till XDM när det gäller taggar.

Mappa till XDM i datastream

Den här metoden använder inbyggda funktioner i datastream-konfigurationen Data Prep för datainsamling och hoppar över mappning av datalagervariabler till XDM i taggar.

Proffs

  • Flexibel mappning av enskilda variabler till XDM i ett användargränssnitt där man kan peka och klicka
  • Möjlighet att beräkna nya värden eller omvandla datatyper från ett datalager innan det går till XDM

Kon

  • Det går inte att använda datalagervariabler som dataelement för pixlar från tredje part på klientsidan, men de kan användas med händelsevidarebefordran
  • Det går inte att använda funktionen för att klippa i taggar
  • Underhållskomplexiteten ökar om datalagret mappas både i taggar och i datastream
TIP
Google datalager
Om din organisation redan använder Google Analytics och har det traditionella Google dataLayer-objektet på din webbplats kan du använda Google datalagertillägg i taggar. På så sätt kan ni driftsätta Adobe-teknik snabbare utan att behöva be IT-avdelningen om support. Om datalagret för Google mappas till XDM följer du samma steg som ovan.

Skapa dataelement för att hämta datalagret

Innan du fyller i XDM-fält måste du först hämta de datapunkter du behöver som taggar och dataelement:

  1. Gå till Data Elements och markera Add Data Element (eller Create New Data Element om det inte finns några befintliga dataelement i taggegenskapen)

    Skapa dataelement

  2. Namnge dataelementet Page Name

  3. Använd JavaScript Variable Data Element type för att peka på värdet i Lumas datalager: adobeDataLayer.0.page.name

  4. Markera kryssrutorna för Force lowercase value och Clean text för att standardisera skiftläget och ta bort överflödiga mellanslag

  5. Använd None som Storage Duration-inställning eftersom det här värdet är olika på alla sidor

  6. Välj Save

    Dataelement för sidnamn

Skapa dessa ytterligare dataelement genom att följa samma steg:

  • User Id har mappats till
    adobeDataLayer.0.user.id

  • User Logged In har mappats till
    adobeDataLayer.0.user.loggedIn

  • Ecommerce Product Id har mappats till adobeDataLayer.0.ecommerce.detail.products.0.id

  • Ecommerce Product Name har mappats till adobeDataLayer.0.ecommerce.detail.products.0.name

  • Ecommerce Purchase Id har mappats till adobeDataLayer.0.ecommerce.purchase.actionField.id

  • Ecommerce Product Category med Custom Code Data Element type och följande anpassade kod:

    code language-javascript
    return adobeDataLayer[0].ecommerce.detail.products[0].category+":"+adobeDataLayer[0].ecommerce.detail.products[0].subcategory;
    
  • Ecommerce Cart Products med följande anpassade kod:

    code language-javascript
    const cartProducts = adobeDataLayer
    .flatMap(evt => Array.isArray(evt?.ecommerce?.cart?.items) ? evt.ecommerce.cart.items : [])
    .filter(item => item && item.id && item.name && item.brand)
    .map(({ id, name, brand }) => ({ id, name, brand }));
    
    return cartProducts;
    
  • Ecommerce Purchase Products med följande anpassade kod:

    code language-javascript
    const purchaseEvent = adobeDataLayer.find(e => e.event === "purchase");
    
    const currencyCode = purchaseEvent?.ecommerce?.currencyCode ?? "USD";
    
    const purchasedProducts = (purchaseEvent?.ecommerce?.purchase?.products || []).map(p => {
       const unitPrice = parseFloat(String(p.price).replace(/[^0-9.-]/g, "")) || 0;
       const qty = Number(p.quantity) || 0;
    
       return {
       SKU: p.id,                       // id -> SKU
       name: p.name,                    // name -> name
       quantity: qty,                   // quantity -> quantity
       priceTotal: unitPrice * qty,     // price -> priceTotal (unit price × quantity)
       currencyCode                     // "USD" -> currencyCode (from ecommerce.currencyCode)
       };
    });
    
    return(purchasedProducts);
    
CAUTION
Dataelementtypen JavaScript variable behandlar matrisreferenser som punkter i stället för hakparenteser, så att det inte fungerar att referera användarnamnselementet som adobeDataLayer[0].page.name .

Skapa variabla dataelement för XDM- och dataobjekt

De dataelement du just skapade används för att skapa ett XDM-objekt (för plattformsprogram) och ett dataobjekt (för Analytics, Target och Audience Manager). Dessa objekt har egna specialdataelement som kallas Variable dataelement som är mycket enkla att skapa.

Om du vill skapa ett variabelt dataelement för XDM kopplar du det till schemat som du skapade i Konfigurera ett schema -lektionen:

  1. Välj Add Data element

  2. Namnge dataelementet XDM Variable. Vi rekommenderar att du prefix med "XDM" i Data Elements som är specifikt för XDM för att bättre organisera taggegenskaperna

  3. Välj Adobe Experience Platform Web SDK som Extension

  4. Välj Variable som Data Element Type

  5. Välj XDM som property

  6. Välj den Sandbox som du skapade schemat i

  7. Välj lämplig Schema, i det här fallet Luma Web Event Data

  8. Välj Save

    Variabeldataelement för XDM

Skapa sedan dataelementet Variable för dataobjektet:

  1. Välj Add Data element

  2. Namnge dataelementet Data Variable.

  3. Välj Adobe Experience Platform Web SDK som Extension

  4. Välj Variable som Data Element Type

  5. Välj data som property

  6. Välj de Experience Cloud-lösningar du vill implementera som en del av kursen

  7. Välj Save

    Variabeldataelement för dataobjekt

I slutet av dessa steg bör du skapa följande dataelement:

Dataelement för kärntillägg
SDK Extension Data Elements för webben
Ecommerce Cart Products
Data Variable
Ecommerce Product Category
XDM Variable
Ecommerce Product Id
Ecommerce Product Name
Ecommerce Purchase Id
Ecommerce Purchase Products
Page Name
User Id
User Logged In

Med dessa dataelement på plats är du redo att börja skicka data till Platform Edge Network med en taggregel. Men först och främst: lär dig att samla in identiteter med Web SDK.

NOTE
Tack för att du har lagt ned din tid på att lära dig om Adobe Experience Platform Web SDK. Om du har frågor, vill dela allmän feedback eller har förslag på framtida innehåll kan du dela dem i det här Experience League diskussionsgruppsinlägget
recommendation-more-help
8cbc0fd8-ca1d-433b-9c3d-bc3f113347d4