[Gilt auch für v8]{class="badge positive" title="Gilt auch für Campaign v8"}
Anweisungen zur Vorab-Bearbeitung pre-processing-instructions
Sie können eine bestimmte Syntax im Versandinhalt verwenden, um Anweisungen hinzuzufügen und die URL der getrackten E-Mail zu skripten. Die Anweisungen "<%@" sind keine JavaScript-Anweisungen. Diese Syntax ist spezifisch für Adobe Campaign.
Sie gelten nur im Zusammenhang mit dem Versandinhalt. Dies ist die einzige Möglichkeit, die URL einer E-Mail zu skripten und dennoch zu tracken (neben URL-Parametern). Sie können als ein automatisches Kopieren/Einfügen betrachtet werden, das während der Versandanalyse angewendet wird, bevor die zu trackenden Links erkannt werden.
Es gibt drei Arten von Anweisungen:
- include: hauptsächlich zur Strukturierung von Code-Abschnitten nach Optionen, Gestaltungsbausteinen, externen Dateien oder Seiten. Mehr dazu
- value: um Zugriff auf die Felder des Versands, Versandvariablen und benutzerdefinierte Objekte zu gewähren, die im Versand geladen werden. Mehr dazu
- foreach: um eine Schleife über das Array auszuführen, das als benutzerdefiniertes Objekt geladen wird. Mehr dazu
Sie können direkt vom Versandassistenten aus getestet werden. Sie gelten in der Inhaltsvorschau und wenn Sie auf die Tracking-Schaltfläche klicken, um die Liste der URLs anzuzeigen.
include include
Die folgenden Beispiele gehören zu den am häufigsten verwendeten:
-
Link zur Mirrorseite einbinden:
code language-none <%@ include view="MirrorPage" %>
-
URL der Mirrorseite:
code language-none View as a <a href="<%@ include view='MirrorPageUrl' %>" _label="Mirror Page" _type="mirrorPage">web page.
-
Native Abmelde-URL:
code language-none <%@ include option='NmsServer_URL' %>/webApp/unsub?id=<%= escapeUrl(recipient.cryptedId)%>
-
Weitere Beispiele:
code language-none <%@ include file='http://www.google.com' %> <%@ include file='file:///X:/france/service/test.html' %> <%@ include option='NmsServer_URL' %>
Verwenden Sie die Schaltfläche „Personalisierung“ im Versandassistenten, um die richtige Syntax zu erhalten.
value value
Diese Anweisung ermöglicht den Zugriff auf die Parameter des Versands, die für alle Empfänger gleich sind.
Syntax:
<%@ value object="myObject" xpath="@myField" index="1" %>
Wobei:
-
object: Name des Objekts (Beispiel: "delivery", "provider" usw.).
Objekt kann sein:- delivery: für den aktuellen Versand (siehe Details und Einschränkungen im Unterabschnitt unten).
- provider: für den aktuellen Versand-Provider bzw. das aktuelle Versand-Routing (nms:externalAccount).
- Ein zusätzliches Scriptobjekt: wenn ein Objekt im Kontext geladen wird: Eigenschaften > Personalisierung > Objekte im Ausführungskontext hinzufügen.
- Element der foreach-Schleife: siehe Abschnitt Foreach weiter unten.
-
xpath: Pfad (XPath) des Felds.
-
index (optional): wenn object ein Array ist (für zusätzliche Scriptobjekte), Elementindex im Array (beginnt bei 0).
delivery Objekt delivery-object
Für die E-Mail-Personalisierung kann auf zwei Arten auf das "delivery"-Objekt zugegriffen werden:
-
Mittels JavaScript:
code language-none <%= delivery.myField %>`.
Im Objektversand in JavaScript werden benutzerdefinierte Felder nicht unterstützt. Sie funktionieren in der Vorschau, jedoch nicht im MTA, da der MTA nur auf das vorkonfigurierte Versandschema zugreifen kann.
-
Mittels Vorab-Bearbeitung:
code language-none <%@ value object="delivery"
Vorsicht
Wenn Sie die folgende Anweisung für den Versand per Mid-Sourcing verwenden, muss das benutzerdefinierte Feld @myCustomField auf Marketing- und Mid-Sourcing-Plattformen dem Schema "nms:delivery" hinzugefügt werden:
<%@ value object="delivery" xpath="@myCustomField" %>
Verwenden Sie für Versandparameter/-variablen die folgende Syntax (unter Verwendung des "delivery"-Objekts):
<%@ value object="delivery" xpath="variables/var[@name='myVar']/@stringValue" %>
value in einem JavaScript-Abschnitt value-in-javascript
Damit der Wert "<%@" in JavaScript-Abschnitten verwendet werden kann, werden zwei Sonderobjekte durch "<%" und "%>" ersetzt:
<%@ value object='startScript' %>
<%@ value object='endScript' %>
Beispiel:
<%@ 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
Diese Anweisung ermöglicht die Iteration eines Arrays von Objekten, die im Versand geladen werden, um einzelne Links zu den Objekten zu verfolgen.
Syntax:
<%@ foreach object="myObject" xpath="myLink" index="3" item="myItem" %> <%@ end %>
Wobei:
- object: Name des Objekts, von dem aus gestartet werden soll, normalerweise ein zusätzliches Scriptobjekt, es kann sich jedoch auch um einen Versand handeln.
- xpath (optional): Pfad (XPath) der Sammlung, über die eine Schleife ausgeführt werden soll. Der Standardwert ist ".", d. h., das Objekt ist das Array, über das eine Schleife ausgeführt werden soll.
- index (optional): wenn "xpath" nicht "." und "object" selbst ein Array ist, Elementindex des Objekts (beginnt bei 0).
- item (optional): Name eines neuen Objekts, auf das mit dem Wert "<%@" innerhalb der foreach-Schleife zugegriffen werden kann. Standardeinstellung mit dem Link-Namen im Schema.
Beispiel:
Laden Sie in den Versandeigenschaften/der Versandpersonalisierung ein Array von Artikeln und eine Beziehungstabelle zwischen Empfänger und Artikeln.
Die Anzeige von Links zu diesen Artikeln kann mit einem JavaScript wie folgt erfolgen:
<%
for(var i=0; i<recipient.rcpArticle.length; i++ )
{
%><a href="http://nl.net?a.jsp?article=<%=recipient.rcpArticle[i].article.@id%>">article</a><%
}
%>
Bei dieser Lösung werden die Links zu allen Artikeln ohne Differenzierung verfolgt. Sie können zwar wissen, dass ein Empfänger auf einen Artikel-Link geklickt hat, aber Sie können nicht wissen, auf welchen Artikel.
Die Lösung ist:
-
Laden Sie alle möglichen Artikel in einem zusätzlichen Script-Array des Versands – articleList[] – vorab, was bedeutet, dass eine endliche Anzahl möglicher Artikel vorhanden sein muss.
-
Schreiben Sie eine JavaScript-Funktion am Anfang des Inhalts.
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' %>
-
Zeigen Sie den Artikel durch Aufruf der Funktion an.
code language-none <% for(var i=0; i<recipient.rcpArticle.length; i++ ) { displayArticle(recipient.rcpArticle[i].article.@id) } %>