[Também se aplica ao v8]{class="badge positive" title="Também se aplica ao Campaign v8"}

Instruções de pré-processamento pre-processing-instructions

Você pode usar uma sintaxe específica no conteúdo da entrega para adicionar instruções e criar scripts para o URL do email rastreado. As instruções <%@ não estão em JavaScript: essa sintaxe é específica do Adobe Campaign.

Elas só são aplicáveis no contexto do conteúdo da entrega. É a única maneira de criar o script do URL de um email e ainda rastreá-lo (além de parâmetros de URL). Elas podem ser vistas como uma cópia/colagem automática aplicada durante a análise da entrega antes de detectar os links a serem rastreados.

Há três tipos de instruções:

  • include: principalmente para fatorizar alguns códigos em opções, blocos de personalização, arquivos externos ou páginas. Saiba mais
  • value: para dar acesso aos campos da entrega, às variáveis da entrega e aos objetos personalizados carregados na entrega. Saiba mais
  • foreach: para executar um loop em uma matriz carregada como um objeto personalizado. Saiba mais

Elas podem ser testadas diretamente no assistente da entrega. Elas são aplicáveis na pré-visualização de conteúdo e quando você clica no botão de rastreamento para ver a lista dos URLs.

include include

Os seguintes exemplos estão entre os mais usados:

  • Incluindo o link de mirror page:

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

    code language-none
    View as a <a href="<%@ include view='MirrorPageUrl' %>" _label="Mirror Page" _type="mirrorPage">web page.
    
  • URL de unsubscription pronto para uso:

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

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

    Use o botão de personalização no assistente da entrega para obter a sintaxe correta.

value value

Essa instrução dá acesso aos parâmetros da entrega que são constantes para todos os destinatários.

Sintaxe:

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

Em que:

  • object: nome do objeto (por exemplo: entrega, provedor e assim por diante).
    O objeto pode ser:

    • delivery: para a entrega atual (consulte os detalhes e as restrições na subseção abaixo).
    • provider: para o provedor/roteamento atual da entrega (nms:externalAccount).
    • Um objeto de script extra: se um objeto for carregado no contexto por meio de: Propriedades > Personalização > Adicionar objetos no contexto de execução.
    • Item do loop foreach: consulte a seção Foreach abaixo.
  • xpath: xpath do campo.

  • index (opcional): se object é uma matriz (para objetos de script extras), índice de item na matriz (começa em 0).

Objeto de delivery delivery-object

Para personalização por email, o objeto de entrega pode ser acessado de duas formas:

  • Utilização do JavaScript:

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

    Na entrega de objetos JavaScript, não há suporte para campos personalizados. Eles funcionam na pré-visualização, mas não no MTA, porque o MTA só pode acessar o esquema de entrega pronto para uso.

  • Utilização de um pré-processamento:

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

Cuidado

Se você estiver usando a seguinte instrução para entregas enviadas via mid-sourcing, o campo personalizado @myCustomField deverá ser adicionado ao esquema nms:delivery nas plataformas de marketing e mid-sourcing:

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

Para parâmetros/variáveis de entrega, use a seguinte sintaxe (usando o objeto de entrega):

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

value em uma seção JavaScript value-in-javascript

Para permitir o uso do valor <%@ em seções de JavaScript, dois objetos especiais são substituídos por <% e %>:

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

Por exemplo:

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

Essa instrução permite a iteração em uma matriz de objetos carregada na entrega para rastrear links individuais relacionados aos objetos.

Sintaxe:

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

Em que:

  • object: nome do objeto do qual iniciar; geralmente, é um objeto de script extra, mas pode ser uma entrega.
  • xpath (opcional): xpath da coleção na qual executar um loop. O padrão é ".", o que significa que o objeto é a matriz na qual executar um loop.
  • index (opcional): se xpath não for "." e o objeto é uma matriz em si, índice de item do objeto (começa em 0).
  • item (opcional): nome de um novo objeto acessível com o valor <%@ dentro do loop foreach. Padrão com o nome do link no esquema.

Exemplo:

Nas propriedades/personalização da entrega, carregue uma matriz de artigos e uma tabela de relação entre o destinatário e os artigos.

A exibição de links para esses artigos pode ser feita apenas com JavaScript, da seguinte forma:

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

Com essa solução, os links de todos os artigos são rastreados sem distinção. Você pode saber que um destinatário clicou em um link de artigo, mas não pode saber em qual artigo.

A solução é:

  1. Pré-carregar todos os artigos possíveis em uma matriz de script extra da entrega, articleList[], o que significa que deve haver um número finito de artigos possíveis.

  2. Grave uma função JavaScript no início do conteúdo.

    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. Exiba o artigo chamando a função.

    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