Sfruttare i frammenti di espressione use-expression-fragments

Quando utilizzi l'editor di personalizzazione, puoi sfruttare tutti i frammenti di espressione creati o salvati nella sandbox corrente.

Un frammento è un componente riutilizzabile a cui è possibile fare riferimento in Journey Optimizer campagne e percorsi. Questa funzionalità consente di precreare più blocchi di contenuto personalizzati che possono essere utilizzati dagli utenti di marketing per assemblare rapidamente i contenuti in un processo di progettazione migliorato. Ulteriori informazioni sui frammenti

➡️ Scopri come gestire, creare e utilizzare i frammenti in questo video

Utilizzare un frammento di espressione use-expression-fragment

Per aggiungere frammenti di espressione al contenuto, segui i passaggi seguenti.

NOTE
Puoi aggiungere fino a 30 frammenti in una determinata consegna. I frammenti possono essere nidificati solo fino a un livello.
  1. Apri l'editor di personalizzazione e seleziona il pulsante Frammenti nel riquadro a sinistra.

    Nell’elenco vengono visualizzati tutti i frammenti di espressione creati o salvati come frammenti nella sandbox corrente. Scopri come creare frammenti
    Sono ordinati per data di creazione: i frammenti di espressione aggiunti di recente vengono visualizzati per primi nell’elenco.

    Puoi anche aggiornare questo elenco.

    note note
    NOTE
    Se alcuni frammenti sono stati modificati o aggiunti durante la modifica del contenuto, l’elenco verrà aggiornato con le modifiche più recenti.
  2. Fai clic sull’icona + accanto a un frammento di espressione per inserire nell’editor l’ID frammento corrispondente.

    note caution
    CAUTION
    Puoi aggiungere al contenuto qualsiasi frammento Bozza o Live. Tuttavia, non potrai attivare il percorso o la campagna se al suo interno viene utilizzato un frammento con lo stato Bozza. Durante la pubblicazione di un percorso o di una campagna, i frammenti bozza mostreranno un errore e dovrai approvarli per poterli pubblicare.
  3. Una volta aggiunto l'ID frammento, se apri il frammento di espressione corrispondente e lo modifichi dall'interfaccia, le modifiche vengono sincronizzate. Vengono propagati automaticamente a tutte le bozze o ai percorsi/campagne live che contengono tale ID frammento.

  4. Fai clic sul pulsante Altre azioni accanto a un frammento. Dal menu contestuale visualizzato, selezionare Visualizza frammento per ottenere ulteriori informazioni sul frammento. Viene visualizzato anche l'ID frammento che può essere copiato da qui.

  5. Puoi aprire il frammento di espressione in un'altra finestra per modificarne il contenuto e le proprietà utilizzando l'opzione Apri frammento nel menu contestuale o dal riquadro Informazioni frammento. Scopri come modificare un frammento

  6. Potrai quindi personalizzare e convalidare i contenuti come di consueto utilizzando tutte le funzionalità di personalizzazione e authoring dell'editor di personalizzazione.

  7. In alcuni casi, è necessario calcolare solo le variabili, quindi potrebbe essere utile nascondere il contenuto del frammento di espressione. A tale scopo, utilizzare l'attributo render e impostarlo su false. Ad esempio:

    code language-none
    Hi {{profile.person.name.firstName|fragment id='ajo:fragmentId/variantId' mode ='inline' render=false}}
    
NOTE
Se crei un frammento di espressione che contiene più interruzioni di riga e lo utilizzi nel contenuto SMS o push, le interruzioni di riga vengono mantenute. Assicurati quindi di verificare il messaggio SMS o push prima di inviarlo.

Usa variabili implicite implicit-variables

Le variabili implicite migliorano la funzionalità dei frammenti esistenti per migliorare l’efficienza in termini di riutilizzabilità dei contenuti e casi di utilizzo di script. I frammenti possono utilizzare variabili di input e creare variabili di output che possono essere utilizzate nel contenuto di campagne e percorsi.

Questa funzionalità può essere utilizzata, ad esempio, per inizializzare i parametri di tracciamento delle e-mail, in base alla campagna o al percorso corrente, e utilizzarli nei collegamenti personalizzati aggiunti al contenuto dell’e-mail.

Sono possibili i seguenti casi d’uso:

  1. Utilizzare variabili di input in un frammento.

    Quando un frammento viene utilizzato in un contenuto di azione campagna/percorso, può sfruttare le variabili dichiarate al di fuori del frammento. Di seguito è riportato un esempio:

    Vediamo che sopra la variabile utm_content è dichiarata nel contenuto della campagna. Quando si utilizza il frammento Blocco principale, verrà visualizzato un collegamento a cui verrà aggiunto il valore del parametro utm_content. Risultato finale: https://luma.enablementadobe.com?utm_campaign= Product_launch&utm_content= start_shopping.

  2. Utilizzare variabili di output da un frammento.

    Le variabili calcolate o definite all’interno di un frammento sono disponibili per l’utilizzo nel contenuto. Nell'esempio seguente, un frammento F1 dichiara un set di variabili:

    In un contenuto e-mail, puoi avere la seguente personalizzazione:

    Il frammento F1 inizializza le seguenti variabili: utm_campaign e utm_content. Al collegamento nel contenuto del messaggio verranno aggiunti questi parametri. Risultato finale: https://luma.enablementadobe.com?utm_campaign= Product_launch&utm_content= start_shopping.

NOTE
In fase di runtime, il sistema espande il contenuto dei frammenti e quindi interpreta il codice di personalizzazione dall’alto verso il basso. Tenendo presente questo aspetto, è possibile ottenere casi d’uso più complessi. Ad esempio, puoi avere un frammento F1 che passa le variabili a un altro frammento F2 che si trova sotto. È inoltre possibile che un frammento visivo F1 passi delle variabili a un frammento di espressione nidificato F2.

Utilizzare frammenti di espressione all’interno di cicli fragments-in-loops

Quando si utilizzano frammenti di espressione nei cicli di {{#each}}, è importante comprendere come funziona l'ambito delle variabili. I frammenti di espressione possono accedere alle variabili globali definite nel contenuto del messaggio, ma non possono ricevere variabili specifiche per il ciclo come parametri.

Schema supportato: utilizza variabili globali global-variables-in-loops

I frammenti di espressione possono fare riferimento a variabili globali definite all’esterno del frammento, anche quando il frammento viene chiamato dall’interno di un loop. Questo è l’approccio consigliato quando devi utilizzare frammenti in contesti iterativi.

Esempio: utilizzo di un frammento con variabili globali all'interno di un loop

Nel contenuto del messaggio, definisci una variabile globale e utilizza un frammento che vi faccia riferimento:

{% 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}}

Nel frammento di espressione (fragment123), è possibile fare riferimento alla variabile globalDiscount:

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

Questo modello funziona perché la variabile globale è accessibile in tutto il messaggio, inclusi i frammenti, indipendentemente dal contesto del loop.

Non supportato: passaggio delle variabili di loop come parametri di frammento loop-variables-limitations

Impossibile passare l'elemento di iterazione corrente (ad esempio product nell'esempio precedente) come parametro a un frammento di espressione. Il frammento non può accedere direttamente alle variabili con ambito di loop dal blocco {{#each}} circostante.

Esempio: cosa NON funziona

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

Il frammento non può ricevere product come parametro e utilizzarlo internamente perché il passaggio del parametro per variabili specifiche del ciclo non è supportato nell'implementazione corrente.

Soluzioni consigliate fragments-in-loops-workarounds

Quando devi utilizzare frammenti di espressione con dati provenienti da un ciclo, considera questi approcci:

  1. Includi la logica direttamente nel messaggio: anziché utilizzare un frammento per la logica specifica del ciclo, aggiungi il codice di personalizzazione direttamente nel blocco {{#each}}.

    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. Usa frammenti all'esterno di cicli: se il contenuto del frammento non è dipendente dal ciclo, chiamare il frammento prima o dopo il blocco dell'iterazione.

    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. Imposta più variabili globali: se devi passare valori diversi a un frammento in più iterazioni, imposta le variabili globali prima di ogni chiamata al frammento (anche se questo limita la flessibilità).

NOTE
Per l'iterazione dei dati contestuali e l'utilizzo dei loop, vedere la guida completa sull'iterazione dei dati contestuali, che include best practice, suggerimenti per la risoluzione dei problemi e modelli avanzati.

Personalizza campi modificabili customize-fields

Se alcune parti di un frammento di espressione sono state rese modificabili utilizzando le variabili, è possibile sovrascrivere i relativi valori predefiniti utilizzando una sintassi specifica. Scopri come rendere personalizzabili i tuoi frammenti

Per personalizzare i campi, effettua le seguenti operazioni:

  1. Inserisci il frammento nel codice dal menu Frammenti.

  2. Utilizzare il codice <fieldId>="<value>" alla fine della sintassi per sostituire il valore predefinito della variabile.

    Nell’esempio seguente, sostituiamo il valore di una variabile il cui ID è "sports" con il valore "yoga". Questo visualizzerà lo "yoga" nel contenuto del frammento in tutti i casi in cui si fa riferimento alla variabile "sport".

Un esempio che mostra come aggiungere campi modificabili in un frammento di espressione e ignorarne i valori durante la creazione di un messaggio e-mail è disponibile in questa sezione.

Interrompi ereditarietà break-inheritance

Quando si aggiunge un ID frammento all’editor di personalizzazione, le modifiche apportate al frammento di espressione originale vengono sincronizzate.

Tuttavia, puoi anche incollare il contenuto di un frammento di espressione nell’editor. Dal menu contestuale, seleziona Incolla frammento per inserire tale contenuto.

In tal caso, l’ereditarietà dal frammento originale è interrotta. Il contenuto del frammento viene copiato nell’editor e le modifiche non vengono più sincronizzate.

Diventa un elemento autonomo non più collegato al frammento originale; puoi modificarlo come qualsiasi altro elemento nel codice.

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