[Applicabile anche a v8]{class="badge positive" title="Applicabile anche a Campaign v8"}
Istruzioni di pre-elaborazione pre-processing-instructions
Puoi utilizzare una sintassi specifica nel contenuto della consegna per aggiungere istruzioni e creare uno script per l’URL dell’e-mail tracciata. Le istruzioni <%@ non sono JavaScript: questa sintassi è specifica di Adobe Campaign.
Si applicano solo nel contesto del contenuto della consegna. È l’unico modo per generare uno script per l’URL di un’e-mail e continuarne la tracciabilità (oltre ai parametri URL). Possono essere viste come un copia/incolla automatico applicato durante l’analisi della consegna prima di rilevare i collegamenti da tracciare.
Esistono tre tipi di istruzioni:
- include: principalmente per fattorizzare parte del codice in opzioni, blocchi di personalizzazione, file esterni o pagine. Ulteriori informazioni
- value: per concedere l'accesso ai campi della consegna, alle variabili di consegna e agli oggetti personalizzati caricati nella consegna. Ulteriori informazioni
- foreach: per eseguire il ciclo di un array caricato come oggetto personalizzato. Ulteriori informazioni
Possono essere testati direttamente dall’assistente alla consegna. Vengono applicati nell’anteprima del contenuto e quando fai clic sul pulsante di tracciamento per visualizzare l’elenco degli URL.
include include
I seguenti esempi sono tra i più comunemente utilizzati:
-
Inclusione del collegamento alla pagina speculare:
code language-none <%@ include view="MirrorPage" %>
-
URL pagina mirror:
code language-none View as a <a href="<%@ include view='MirrorPageUrl' %>" _label="Mirror Page" _type="mirrorPage">web page.
-
URL predefinito per l’annullamento dell’abbonamento:
code language-none <%@ include option='NmsServer_URL' %>/webApp/unsub?id=<%= escapeUrl(recipient.cryptedId)%>
-
Altri esempi:
code language-none <%@ include file='http://www.google.com' %> <%@ include file='file:///X:/france/service/test.html' %> <%@ include option='NmsServer_URL' %>
Utilizza il pulsante di personalizzazione nell’assistente alla consegna per ottenere la sintassi corretta.
value value
Questa istruzione consente di accedere ai parametri della consegna che sono costanti per tutti i destinatari.
Sintassi:
<%@ value object="myObject" xpath="@myField" index="1" %>
Dove:
-
object: nome dell'oggetto (ad esempio: delivery, provider e così via).
L’oggetto può essere:- delivery: per la consegna corrente (vedi dettagli e restrizioni nella sottosezione seguente).
- provider: per il provider/routing di consegna corrente (nms:externalAccount).
- Un oggetto script aggiuntivo: se un oggetto viene caricato nel contesto tramite: Proprietà > Personalization > Aggiungi oggetti nel contesto di esecuzione.
- Elemento del ciclo foreach: vedi la sezione Foreach di seguito.
-
xpath: xpath del campo.
-
index (facoltativo): se object è un array (per oggetti script aggiuntivi), indice dell'elemento nell'array (inizia da 0).
delivery oggetto delivery-object
Per la personalizzazione delle e-mail, l’oggetto di consegna è accessibile in due modi:
-
Utilizzo di JavaScript:
code language-none <%= delivery.myField %>`.
I campi personalizzati per la consegna degli oggetti di JavaScript non sono supportati. Funzionano nell’anteprima, ma non nell’MTA perché l’MTA può accedere solo allo schema di consegna predefinito.
-
Utilizzo di una pre-elaborazione:
code language-none <%@ value object="delivery"
Attenzione
Se utilizzi quanto segue per le consegne inviate tramite mid-sourcing, il campo personalizzato @myCustomField deve essere aggiunto allo schema nms:delivery sia sulle piattaforme di marketing che su quelle di mid-sourcing:
<%@ value object="delivery" xpath="@myCustomField" %>
Per i parametri/variabili di consegna, utilizza la sintassi seguente (utilizzando l’oggetto di consegna):
<%@ value object="delivery" xpath="variables/var[@name='myVar']/@stringValue" %>
value in una sezione JavaScript value-in-javascript
Per consentire l’utilizzo del valore <%@ nelle sezioni JavaScript, due oggetti speciali vengono sostituiti con <% e %>:
<%@ value object='startScript' %>
<%@ value object='endScript' %>
Ad esempio:
<%@ value object='startScript' %> var iMode = <%@ value object="delivery" xpath="@deliveryMode" %> if(iMode == 1) { ... } else { ... }`
`<%@ value object='endScript' %> is expanded in something like <% var iMode = 1 if(iMode == 1) { ... } else { ... } %>.
foreach foreach
Questa istruzione consente di eseguire l’iterazione su un array di oggetti caricati nella consegna per monitorare i singoli collegamenti correlati agli oggetti.
Sintassi:
<%@ foreach object="myObject" xpath="myLink" index="3" item="myItem" %> <%@ end %>
Dove:
- object: nome dell'oggetto da cui iniziare, in genere un oggetto script aggiuntivo, ma può essere una consegna.
- xpath (facoltativo): xpath della raccolta su cui eseguire il ciclo. Il valore predefinito è ".", ovvero l'oggetto corrisponde all'array su cui eseguire il ciclo.
- index (facoltativo): se xpath non è "." e l’oggetto è un array stesso, indice dell’oggetto (inizia da 0).
- item (facoltativo): nome di un nuovo oggetto accessibile con il valore <%@ all'interno del ciclo foreach. Predefinito con il nome del collegamento nello schema.
Esempio:
Nelle proprietà/personalizzazione della consegna, carica un array di articoli e una tabella di relazione tra destinatario e articoli.
La visualizzazione di collegamenti a questi articoli può essere eseguita semplicemente con JavaScript, come segue:
<%
for(var i=0; i<recipient.rcpArticle.length; i++ )
{
%><a href="http://nl.net?a.jsp?article=<%=recipient.rcpArticle[i].article.@id%>">article</a><%
}
%>
Con questa soluzione, i collegamenti a tutti gli articoli sono tracciati senza distinzione. Puoi sapere che un destinatario ha fatto clic su un collegamento di articolo, ma non puoi sapere su quale articolo.
La soluzione consiste nel:
-
Precaricare tutti gli articoli possibili in un array di script aggiuntivo della consegna - articleList[] - il che significa che deve esserci un numero finito di articoli possibili.
-
Scrivere una funzione JavaScript all'inizio del contenuto.
code language-none <%@ value object='startScript' %> function displayArticle(articleId) { <%@ foreach object="articleList" item="article" %> if( articleId == <% value object="article" xpath="@id" %> ) { <%@ value object='endScript' %> <a href="http://nl.net?a.jsp?article=<%@ value object="article" xpath="@id" %>">article</a> <%@ value object='startScript' %> } <%@ end @%> } <%@ value object='endScript' %>
-
Visualizzare l'articolo chiamando la funzione.
code language-none <% for(var i=0; i<recipient.rcpArticle.length; i++ ) { displayArticle(recipient.rcpArticle[i].article.@id) } %>