2. Strings de Personalização
A maioria das plataformas de marketing digital oferece strings de personalização, que podem ser chamadas de campos de mesclagem , etiquetas de mesclagem ou strings de substituição , dependendo da plataforma. Esse suporte permite que um identificador baseado em string, incluído em um delimitador, seja incluído em uma página ou em uma mensagem e, quando o conteúdo é publicado ou enviado, a string é substituída por dados do Assinante ou um valor definido derivado do sistema.
O Marketing Cloud oferece suporte a dois tipos de strings de personalização: com base em atributo e com base em sistema. As strings de personalização não fazem parte da linguagem AMPscript. No entanto, eles podem ser usados com AMPscript em declarações condicionais, definições de variáveis ou argumentos de funções.
2.1. Sintaxe
As strings de personalização são colocadas dentro de delimitadores de porcentagem dupla; por exemplo, %%string%%. No entanto, esses delimitadores não devem ser incluídos quando usados em uma função AMPscript (consulte ). A string que o contém não diferencia maiúsculas de minúsculas. NOTA: Se o nome do atributo contiver um caractere não alfanumérico, ele deverá ser colocado entre colchetes.
%%[
var @firstName, @age
set @firstName = [First Name]
set @age = Age
]%%
2.2. Cadeias de Atributos
As sequências de dados de atributo são usadas para personalizar o conteúdo com base no contexto do contato ou assinante para o qual são enviadas. Esses valores são derivados de um campo ou atributo relacionado ao contato ou assinante. Isso pode incluir as seguintes fontes de dados:
Atributos do perfil do assinante de e-mail Campos de extensão de dados enviáveis Atributos da fonte de entrada do Journey Builder Cadeias de Dados do MobileConnect Strings de dados de contato do MobileConnect Fonte de entrada do Journey Builder Por exemplo, se você tiver um atributo de perfil chamado Member ID, poderá referenciá-lo como uma string de personalização de atributo em um bloco AMPscript como [Member ID]ou embutido como %%Member ID%%.
O mesmo se aplica se você estiver enviando para uma extensão de dados com um campo denominado Member ID.
2.3. Cadeias de sistemas
O Marketing Cloud inclui uma biblioteca de strings de personalização com base no sistema que podem ser incluídas em uma mensagem ou em uma página para gerar um valor, com base no contexto do Assinante, Contato ou mensagem.
2.3.1. Strings de data de e-mail
OBSERVAÇÃO: as strings de personalização com base em data usam a hora do sistema (o local do centro de dados de sua conta do Marketing Cloud) e aparecem no formato dos EUA. No entanto, esses valores podem ser transformados usando do AMPscript . Exemplo
Este exemplo atualizará um campo de data em uma extensão de dados com a hora do sistema quando um e-mail for enviado, que pode ser usado como uma extensão de dados de supressão para envios futuros:
%%[
InsertDE("Sent Subscribers", "Member ID", _subscriberkey, "sent date", xtshortdate)
]%%
1.4. Sintaxe baseada em tags
Como alternativa à sintaxe do bloco AMPscript, a tag do script HTML também é suportada. Essa sintaxe pode ser benéfica ao desenvolver em SSJS (Server-Side JavaScript) e AMPscript, pois fornece uma sintaxe padronizada para interpretar os dois idiomas de script do lado do servidor.
Os atributos de runat e language adicionais devem ser incluídos na tag de script de abertura para que o código que contém seja interpretado como AMPscript, conforme indicado no exemplo abaixo:
<script runat="server" language="ampscript">/* Código AMPscript */</script>
1.5. Funções
Na programação, a função é uma seção nomeada de um programa que usa alguns valores de entrada (ou argumentos) para executar uma tarefa específica e produzir um valor de saída. Enquanto outras linguagens de script oferecem funções definidas pelo usuário (por exemplo, JavaScript), o AMPscript usa uma abordagem declarativa por meio de funções predefinidas, orientadas principalmente para exibir, transformar e armazenar dados e conteúdo de marketing do clientes.
As funções do AMPscript funcionam da mesma maneira que no Microsoft Excel; isto é, os parâmetros são definidos para uma função predefinida, que é interpretada e, por sua vez, retorna um valor. Várias funções do AMPscript são idênticas às funções do Excel - enquanto algumas funções são nomeadas de maneira diferente, elas compartilham os mesmos parâmetros e produzem o mesmo resultado que o Excel.
1.5.1. AMPScript e Excel
Há um total de 15 funções comparáveis entre Excel e AMPscript que aceitam os mesmos parâmetros e emitem o mesmo resultado, conforme indicado na tabela abaixo.
1.6. Variáveis
Semelhante a outras linguagens de programação e script, o AMPscript oferece suporte a variáveis . Na programação, as variáveis fornecem um método conveniente de definir uma função ou valor uma vez e, em seguida, reutilizar essa variável referenciando-a no código. Isso é da mesma forma que as classes Cascading Style Sheets (CSS) são definidas uma vez e, em seguida, as propriedades de estilo definidas são aplicadas a um ou mais elementos, incluindo o nome da classe em um atributo de classe. No entanto, as variáveis não apenas permitem que valores fixos (ou ) sejam definidos uma vez, mas também funções AMPscript e, por sua vez, o valor de saída da variável pode mudar dependendo do contexto para o qual é interpretado. 1.6.1. Convenção de nomes
As variáveis são essencialmente 'contêineres nomeados', onde um nome definido pelo usuário é aplicado a uma entidade definida, seja uma constante ou função. Os nomes de variáveis não diferenciam maiúsculas de minúsculas e podem incluir caracteres ou números, mas não espaços ou vírgulas. Os nomes das variáveis devem começar @ e incluir pelo menos uma outra letra, número ou sublinhado. Você deve considerar a nomeação de variáveis com uma taxonomia legível por humanos que tenha significado ou contexto para outras pessoas, para que seu código seja fácil de interpretar e não exija engenharia reversa para compreender sua finalidade.
Por exemplo, se você estiver definindo uma variável que deriva um valor de pontuação de propensão dos dados do cliente, considere usar um nome como @propensityScore , não @ps. Além disso, pode ser útil aplicar a notação camel case para nomes de variáveis que são compostos por mais de uma palavra colocando as palavras subsequentes em maiúsculas. Por exemplo, uma variável nomeada @preferredContactNumber é mais fácil de ler do que @preferredcontactnumber.
1.6.2. Declarando variáveis
Antes que uma variável possa ser definida , ela deve ser declarada. As variáveis são declaradas com a var palavra-chave, seguida por um ou mais nomes de variáveis delimitados por vírgulas. Por exemplo, se você precisar definir o nome, o sobrenome e a data de expiração da associação de um membro, as variáveis podem ser declaradas como:
var @firstName, @lastName, @membershipExpiryDate
declaração de uma variável adiciona uma entrada a um Dicionário de variáveis interno, usando o nome da variável como chave e null como valor. Se já existir uma entrada para esse nome, o valor da variável será redefinido para null.
NOTA: AMPscript é uma linguagem de tipagem flexível e, como resultado, o interpretador não obriga a declaração de variáveis. No entanto, é uma prática recomendada fazer isso para garantir que o nome da variável seja adicionado ao Dicionário de variáveis.
1.6.3. Variáveis de configurações
Depois que uma variável é declarada, ela pode ser definida. As variáveis são definidas usando uma sintaxe que compreende quatro elementos:
um único símbolo de igual (=) uma string de personalização , constante ou função AMPscript (que pode conter funções aninhadas). Consulte o exemplo abaixo, onde as variáveis são definidas como uma string de personalização ( @firstName), função AMPscript ( @localDate) e constante ( @promotionEndDate):
%%[
var @firstName, @localDate, @promotionEndDate
set @firstName = FirstName
set @localDate = SystemDateToLocalDate(Now())
set @promotionEndDate = '10/15/2018'
]%%
var @firstName, @localDate, @promotionEndDate: Aqui, três variáveis são declaradas: @firstName, @localDate e @promotionEndDate. set @firstName = FirstName: Essa linha atribui o valor da variável personalizada FirstName à variável @firstName. set @localDate = SystemDateToLocalDate(Now()): Aqui, a função Now() é usada para obter a data e a hora atuais do sistema no formato GMT (hora padrão). Em seguida, a função SystemDateToLocalDate() é usada para converter essa data e hora para o fuso horário local. O resultado é armazenado na variável @localDate set @promotionEndDate = '10/15/2018': Aqui, uma data específica, neste caso, '10/15/2018', é atribuída à variável @promotionEndDate. Isso pode indicar a data de término de uma promoção ou evento. Resumindo, esse código em AMPscript é usado para:
Armazenar o nome do destinatário na variável @firstName. Obter a data e hora atuais no fuso horário local e armazená-las na variável @localDate. Definir uma data específica ('10/15/2018') na variável @promotionEndDate. 1.6.4. Escopo
Depois que uma variável é definida, seu escopo é definido globalmente; ou seja, pode ser referenciado posteriormente no código para exibir a saída ou usado em expressões condicionais. No entanto, as variáveis também podem ser alteradas depois de terem sido definidas. Por exemplo, a data de término de uma promoção é definida em um campo em uma extensão de dados enviáveis usando uma string de personalização, mas para clientes específicos, há um requisito para ajustar esse valor posteriormente no código:
%%[
var @promotionEndDate, @memberStatus
set @promotionEndDate = '10/15/2018'
set @memberStatus = status
if @memberStatus == 'gold' then
set @promotionEndDate = '11/15/2018'
endif
]%%
As variáveis também podem ser definidas em si mesmas em uma função; ou seja, se a variável foi declarada anteriormente, ela pode ser usada como argumento para uma função, com base em seu valor anterior. Portanto, o código acima também pode ser expresso como:
%%[
var @promotionEndDate, @memberStatus
set @promotionEndDate = '10/15/2018'
set @memberStatus = status
if @memberStatus == 'gold' then
set @promotionEndDate = DateAdd(@promotionEndDate, 1, 'M')
endif
]%%
Além disso, uma vez que uma variável tenha sido definida, ela pode ser redefinida declarando o valor novamente. No exemplo abaixo, se a data atual for menor que (após) a data de término da associação, um null valor será definido para o status da associação.
%%[
var @membershipEndDate, @memberStatus
set @membershipEndDate = '10/15/2018'
set @memberStatus = status
if @membershipEndDate > Now() then
var @memberStatus
endif
]%%
A única exceção a esta regra de escopo é quando uma variável é usada dentro de um for bloco. Nesse cenário, a variável está bloqueada para modificação dentro do loop do processo .
1.6.5. Ordem de operações
Como outras linguagens de script, o AMPscript é interpretado de cima para baixo, o que significa que as variáveis devem ser declaradas e definidas antes de serem usadas. No entanto, os componentes de e-mail são interpretados na seguinte ordem:
Por exemplo, uma variável pode ser declarada e definida em um corpo HTML (dentro de um bloco AMPscript) e usada em uma linha de assunto:
<!--Appears in Body-->
%%[
var @subjectLine
if AttributeValue('Member Status') == 'VIP' then
set @subjectLine = 'An exclusive offer for VIP members'
else
set @subjectLine = 'A special offer for our members'
endif
]%%
<!--Appears in Subject Line-->
%%=v(@subjectLine)=%%
OBSERVAÇÃO: funções AMPscript aninhadas e variáveis aninhadas não serão processadas em linhas de assunto a partir de 21 de fevereiro de 2023. Consulte este documento de ajuda para obter mais informações sobre essa alteração.
1.6.6. Usando variáveis
As variáveis não são necessárias no AMPscript. É possível obter o mesmo resultado usando apenas funções, declarações condicionais e operadores. No entanto, sem variáveis:
funções e constantes precisariam ser definidas várias vezes, geralmente resultando em mais código e dificultando a manutenção cada função AMPscript duplicada precisa ser interpretada novamente, resultando em possíveis problemas de desempenho ao enviar e-mails ou renderizar conteúdo. O exemplo abaixo indica a inclusão de duas variáveis no AMPscript para recuperar um saldo de pontos e exibir um nível de status correspondente.
%%[
var @pointsBalance, @status
set @pointsBalance = Lookup("Points Balance","Balance","MemberId", _subscriberKey)
if @pointsBalance < 100 then
set @status = "bronze"
elseif @pointsBalance > 100 and @pointsBalance < 500 then
set @status = "silver"
else
set @status = "gold"
endif
]%%
You are a valued %%=v(@status)=%% member.
Ao escrever AMPscript, é uma boa prática otimizar seu código por meio da configuração de variáveis para funções comumente usadas.
1.7. Comentário
Os comentários podem ser incluídos nos blocos AMPscript. Eles estão contidos em um par de sintaxe de abertura /*e fechamento */e fornecem a capacidade de incluir uma explicação ou anotação legível para os usuários. Quaisquer comentários são ignorados pelo Marketing Cloud e não serão interpretados. Eles podem ser usados em uma única linha ou percorrer várias linhas.