Utnyttja uttrycksfragment use-expression-fragments

När du använder anpassningsredigeraren kan du utnyttja alla uttrycksfragment som har skapats eller sparats i den aktuella sandlådan.

Ett fragment är en återanvändbar komponent som kan refereras till mellan Journey Optimizer kampanjer och resor. Med den här funktionen kan man skapa flera anpassade innehållsblock som kan användas av marknadsföringsanvändare för att snabbt sammanställa innehåll i en förbättrad designprocess. Läs mer om fragment

➡️ Lär dig hur du hanterar, redigerar och använder fragment i den här videon

Använda ett uttrycksfragment use-expression-fragment

Följ stegen nedan om du vill lägga till uttrycksfragment i ditt innehåll.

NOTE
Du kan lägga till upp till 30 fragment i en viss leverans. Fragment kan bara kapslas upp till 1 nivå.
  1. Öppna anpassningsredigeraren och välj knappen Fragments i den vänstra rutan.

    I listan visas alla uttrycksfragment som har skapats eller sparats som fragment i den aktuella sandlådan. Lär dig skapa fragment
    De sorteras efter skapandedatum: nyligen tillagda uttrycksfragment visas först i listan.

    Du kan även uppdatera den här listan.

    note note
    NOTE
    Om vissa fragment har ändrats eller lagts till medan du redigerar innehållet, uppdateras listan med de senaste ändringarna.
  2. Klicka på ikonen + bredvid ett uttrycksfragment för att infoga motsvarande fragment-ID i redigeraren.

    note caution
    CAUTION
    Du kan lägga till valfritt utkast- eller Live-fragment till ditt innehåll. Du kan dock inte aktivera din resa eller kampanj om ett fragment med statusen Utkast används i det. Vid en resa eller kampanjpublicering kommer utkastsfragment att visa ett fel och du måste godkänna dem för att kunna publicera.
  3. När fragment-ID har lagts till synkroniseras ändringarna om du öppnar motsvarande uttrycksfragment och redigerar det från gränssnittet. De sprids automatiskt till alla utkast- eller direktresor/kampanjer som innehåller detta fragment-ID.

  4. Klicka på knappen More actions bredvid ett fragment. Välj View fragment på snabbmenyn som öppnas om du vill ha mer information om det fragmentet. Fragment ID visas också och kan kopieras härifrån.

  5. Du kan öppna uttrycksfragmentet i ett annat fönster om du vill redigera dess innehåll och egenskaper, antingen med alternativet Open fragment på snabbmenyn eller i rutan Fragment info. Lär dig hur du redigerar ett fragment

  6. Du kan sedan anpassa och validera ditt innehåll som vanligt med hjälp av alla anpassnings- och redigeringsfunktioner i personaliseringsredigeraren.

  7. I vissa fall behöver du bara beräkna variabler, så du kanske vill dölja innehållet i uttrycksfragmentet. Om du vill göra det använder du attributet render och ställer in det på false. Exempel:

    code language-none
    Hi {{profile.person.name.firstName|fragment id='ajo:fragmentId/variantId' mode ='inline' render=false}}
    
NOTE
Om du skapar ett uttrycksfragment som innehåller flera radbrytningar och använder det i SMS - eller push -innehåll, bevaras radbrytningarna. Testa därför ditt SMS- eller push-meddelande innan du skickar det.

Använd implicita variabler implicit-variables

De implicita variablerna förbättrar befintliga fragmentfunktioner för att förbättra effektiviteten vid återanvändning av innehåll och skriptanvändning. Fragment kan använda indatavariabler och skapa utdatavariabler som kan användas i kampanj- och reseinnehåll.

Den här funktionen kan till exempel användas för att initiera spårningsparametrar för dina e-postmeddelanden, baserat på den aktuella kampanjen eller resan, och använda dessa parametrar i de anpassade länkar som läggs till i e-postinnehållet.

Följande användningsområden är möjliga:

  1. Använd indatavariabler i ett fragment.

    När ett fragment används i ett kampanj-/reseåtgärdsinnehåll kan det utnyttja variabler som deklarerats utanför fragmentet. Nedan visas ett exempel:

    Ovanför utm_content-variabeln har deklarerats i kampanjinnehållet. När fragmentet Hero-blocket används visas en länk till vilken utm_content-parametervärdet ska läggas till. Slutresultatet är: https://luma.enablementadobe.com?utm_campaign= Product_launch&utm_content= start_shopping.

  2. Använd en utdatavariabel från ett fragment.

    Variabler som beräknas eller definieras inuti ett fragment är tillgängliga för användning i innehållet. I följande exempel deklarerar ett fragment F1 en uppsättning variabler:

    I ett e-postinnehåll kan du ha följande personalisering:

    Fragmentet F1 initierar följande variabler: utm_campaign och utm_content. Länken i meddelandeinnehållet får sedan dessa parametrar tillagda. Slutresultatet är: https://luma.enablementadobe.com?utm_campaign= Product_launch&utm_content= start_shopping.

NOTE
Under körning expanderar systemet det som är inuti fragment och tolkar sedan personaliseringskoden uppifrån och ned. Med detta i åtanke kan man uppnå mer komplexa användningsfall. Du kan till exempel ha ett fragment F1 som skickar variabler till ett annat fragment F2 som sitter nedanför. Du kan också ha ett visuellt fragment F1 som skickar variabler till ett kapslat uttrycksfragment F2.

Använd uttrycksfragment i slingor fragments-in-loops

När du använder uttrycksfragment i {{#each}}-slingor är det viktigt att förstå hur variabelomfångsfunktionen fungerar. Uttrycksfragment kan komma åt globala variabler som definierats i meddelandeinnehållet, men de kan inte ta emot loopspecifika variabler som parametrar.

Mönster som stöds: Använd globala variabler global-variables-in-loops

Uttrycksfragment kan referera till globala variabler som är definierade utanför fragmentet, även när fragmentet anropas inifrån en slinga. Detta är det rekommenderade sättet när du behöver använda fragment i iterativa kontexter.

Exempel: Använda ett fragment med globala variabler i en slinga

I meddelandeinnehållet definierar du en global variabel och använder ett fragment som refererar till den:

{% let globalDiscount = 15 %}

{{#each context.journey.actions.GetProducts.items as |product|}}
  <div class="product">
    <h3>{{product.name}}</h3>
    <p>Price: ${{product.price}}</p>
    {{fragment id='ajo:fragment123/variant456' mode='inline'}}
  </div>
{{/each}}

I uttrycksfragmentet (fragment123) kan du referera till variabeln globalDiscount:

<p class="discount-info">Save {{globalDiscount}}% on all items!</p>

Det här mönstret fungerar eftersom den globala variabeln är tillgänglig i hela meddelandet, även i fragment, oavsett slingkontext.

Stöds inte: skicka slingvariabler som fragmentparametrar loop-variables-limitations

Du kan inte skicka det aktuella upprepningsobjektet (t.ex. product i exemplet ovan) som en parameter till ett uttrycksfragment. Fragmentet kan inte komma åt loopvariabler direkt från det omgivande {{#each}}-blocket.

Exempel: Vad fungerar INTE

{{#each context.journey.actions.GetProducts.items as |product|}}
  <!-- This will NOT work as expected -->
  {{fragment id='ajo:fragment123/variant456' mode='inline' currentProduct=product}}
{{/each}}

Fragmentet kan inte ta emot product som en parameter och använda det internt eftersom parametern som skickas för loopspecifika variabler inte stöds i den aktuella implementeringen.

Rekommenderade tillfälliga lösningar fragments-in-loops-workarounds

När du behöver använda uttrycksfragment med data från en slinga bör du tänka på följande:

  1. Inkludera logik direkt i meddelandet: I stället för att använda ett fragment för loopspecifik logik lägger du till personaliseringskoden direkt i {{#each}} -blocket.

    code language-handlebars
    {{#each context.journey.actions.GetProducts.items as |product|}}
      <div class="product">
        <h3>{{product.name}}</h3>
        <p>Price: ${{product.price}}</p>
        {{#if product.price > 100}}
          <span class="premium-badge">Premium Product</span>
        {{/if}}
      </div>
    {{/each}}
    
  2. Använd fragment utanför slingor: Om fragmentinnehållet inte är loopberoende anropar du fragmentet före eller efter upprepningsblocket.

    code language-handlebars
    {{fragment id='ajo:fragment123/variant456' mode='inline'}}
    
    {{#each context.journey.actions.GetProducts.items as |product|}}
      <div class="product">
        <h3>{{product.name}}</h3>
        <p>Price: ${{product.price}}</p>
      </div>
    {{/each}}
    
  3. Ange flera globala variabler: Om du behöver skicka olika värden till ett fragment över iterationer anger du globala variabler före varje fragmentanrop (men detta begränsar flexibiliteten).

NOTE
Mer information om hur du itererar över kontextdata och arbetar med slingor finns i den omfattande guiden iterera över kontextdata, som innehåller bästa praxis, felsökningstips och avancerade mönster.

Anpassa redigerbara fält customize-fields

Om vissa delar av ett uttrycksfragment har gjorts redigerbara med hjälp av variabler, kan du åsidosätta deras standardvärden med en viss syntax. Lär dig hur du anpassar fragment

Följ de här stegen för att anpassa fälten:

  1. Infoga fragmentet i koden från menyn Fragments.

  2. Använd <fieldId>="<value>"-koden i slutet av syntaxen för att åsidosätta variabelns standardvärde.

    I exemplet nedan åsidosätter vi värdet för en variabel vars ID är "sport" med "yoga"-värdet. Då visas"yoga" i fragmentinnehållet överallt där variabeln"sport" refereras.

Ett exempel som visar hur du lägger till redigerbara fält i ett uttrycksfragment och åsidosätter deras värden när du skapar ett e-postmeddelande finns i det här avsnittet.

Bryt arv break-inheritance

När du lägger till ett fragment-ID i personaliseringsredigeraren synkroniseras ändringarna som gjorts i det ursprungliga uttrycksfragmentet.

Du kan även klistra in innehållet i ett uttrycksfragment i redigeraren. Välj Paste fragment på snabbmenyn för att infoga innehållet.

I så fall bryts arvet från det ursprungliga fragmentet. Fragmentets innehåll kopieras till redigeraren och ändringarna synkroniseras inte längre.

Det blir ett fristående element som inte längre är länkat till det ursprungliga fragmentet. Du kan redigera det som vilket annat element som helst i koden.

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