[Ook van toepassing op v8]{class="badge positive" title="Ook van toepassing op campagne v8"}

Voorverwerkingsinstructies pre-processing-instructions

U kunt een specifieke syntaxis in de bezorginhoud gebruiken om instructies toe te voegen en de URL van het bijgehouden e-mailbericht te scripten. De <%@-instructies zijn niet JavaScript: deze syntaxis is specifiek voor Adobe Campaign.

Zij zijn alleen van toepassing in de context van leveringsinhoud. Dit is de enige manier om een script te maken voor de URL van een e-mail en deze nog steeds te laten bijhouden (behalve URL-parameters). Deze kunnen worden beschouwd als een automatische kopie/plakbewerking die tijdens de afleveringsanalyse is toegepast voordat de koppelingen naar de track worden gedetecteerd.

Er zijn drie typen instructies:

  • include: vooral om code in opties, verpersoonlijkingsblokken, externe dossiers, of pagina's te factoriseren. Meer informatie
  • value: om toegang te geven tot velden voor levering, leveringsvariabelen en aangepaste objecten die in de levering zijn geladen. Meer informatie
  • foreach: om een array uit te herhalen die als een aangepast object is geladen. Meer informatie

Zij kunnen direct van de leveringstovenaar worden getest. Ze worden toegepast in de voorvertoning van de inhoud en wanneer u op de knop Tekstspatiëring klikt, wordt de lijst met URL's weergegeven.

include include

De volgende voorbeelden worden het meest gebruikt:

  • De koppeling voor de spiegelpagina opnemen:

    code language-none
    <%@ include view="MirrorPage" %>
    
  • URL spiegel:

    code language-none
    View as a <a href="<%@ include view='MirrorPageUrl' %>" _label="Mirror Page" _type="mirrorPage">web page.
    
  • URL zonder abonnement uit de doos:

    code language-none
    <%@ include option='NmsServer_URL' %>/webApp/unsub?id=<%= escapeUrl(recipient.cryptedId)%>
    
  • Andere voorbeelden:

    code language-none
    <%@ include file='http://www.google.com' %>
    <%@ include file='file:///X:/france/service/test.html' %>
    <%@ include option='NmsServer_URL' %>
    

    Gebruik de verpersoonlijkingsknoop in de leveringstovenaar om de correcte syntaxis te krijgen.

value value

Deze instructie geeft toegang tot parameters van de levering die voor alle ontvangers constant zijn.

Syntaxis:

<%@ value object="myObject" xpath="@myField" index="1" %>

Waarbij:

  • object: naam van het object (bijvoorbeeld: levering, provider, enzovoort).
    Object kan:

    • delivery: voor de huidige levering (zie details en beperkingen in de onderafdeling hieronder).
    • provider: voor de huidige leverancier/het verpletteren (nms:externalAccount).
    • Een extra scriptobject: wanneer een object in de context wordt geladen via: Eigenschappen > Personalisatie > Objecten toevoegen in de uitvoeringscontext.
    • Item van de foreach-lus: zie Foreach hieronder.
  • xpath: xpath van het veld.

  • index (optioneel): if object is een array (voor extra scriptobjecten), itemindex in de array (Begint bij 0).

delivery object  delivery-object

Voor personalisatie van e-mail, is het leveringsvoorwerp op twee manieren toegankelijk:

  • JavaScript gebruiken:

    code language-none
    <%= delivery.myField %>`.
    

    In de levering van het JavaScript-object worden aangepaste velden niet ondersteund. Zij werken in de voorproef, maar niet in MTA omdat MTA tot het out-of-the-box leveringsschema kan slechts toegang hebben.

  • Voorbewerking gebruiken:

    code language-none
    <%@ value object="delivery"
    

Waarschuwing

Als u de volgende instructies gebruikt voor leveringen die via mid-sourcing worden verzonden, wordt het aangepaste veld @myCustomField moet aan de nms worden toegevoegd:leveringsschema op zowel marketing- als midsourcingplatforms:

<%@ value object="delivery" xpath="@myCustomField" %>

Gebruik de volgende syntaxis voor leverparameters/variabelen (met behulp van het leveringsobject):

<%@ value object="delivery" xpath="variables/var[@name='myVar']/@stringValue" %>

value in een JavaScript-sectie value-in-javascript

Als u het gebruik van <%@-waarde in JavaScript-secties wilt toestaan, worden twee speciale objecten vervangen door <% en %>:

<%@ value object='startScript' %>
<%@ value object='endScript' %>

Bijvoorbeeld:

<%@ 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

Met deze instructie kunt u een herhaling uitvoeren op een array van objecten die in de levering zijn geladen om afzonderlijke koppelingen bij te houden die betrekking hebben op de objecten.

Syntaxis:

<%@ foreach object="myObject" xpath="myLink" index="3" item="myItem" %> <%@ end %>

Waarbij:

  • object: de naam van het object waarvan moet worden begonnen, is doorgaans een extra scriptobject, maar het kan een levering zijn.
  • xpath (optioneel): xpath of the collection to loop on. De standaardwaarde is ".", wat betekent dat het object de array is die moet worden doorlopen.
  • index (optioneel): als xpath niet "." en object is een array zelf, itemindex van object (begint bij 0).
  • item (optioneel): naam van een nieuw object dat toegankelijk is met <%@-waarde in de foreach-lus. Standaard met de naam van de koppeling in het schema.

Voorbeeld:

Laad in de leveringseigenschappen/personalisatie een array met artikelen en een tabel met de relatie tussen ontvanger en artikelen.

Het weergeven van koppelingen naar deze artikelen kan eenvoudig met een JavaScript worden uitgevoerd:

<%
  for(var i=0; i<recipient.rcpArticle.length; i++ )
  {
    %><a href="http://nl.net?a.jsp?article=<%=recipient.rcpArticle[i].article.@id%>">article</a><%
  }
%>

Met deze oplossing worden de koppelingen naar alle artikelen zonder onderscheid bijgehouden. U kunt weten dat een ontvanger op een artikelkoppeling heeft geklikt, maar u kunt niet weten welk artikel.

De oplossing is:

  1. Laad alle mogelijke artikelen vooraf in een extra scriptarray van de levering - articleList[] - wat betekent dat er een eindig aantal mogelijke artikelen moet zijn.

  2. Schrijf een JavaScript-functie aan het begin van de inhoud.

    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' %>
    
  3. Geef het artikel weer door de functie aan te roepen.

    code language-none
    <%
    for(var i=0; i<recipient.rcpArticle.length; i++ )
    {
     displayArticle(recipient.rcpArticle[i].article.@id)
    }
    %>
    
recommendation-more-help
601d79c3-e613-4db3-889a-ae959cd9e3e1