Incluir conteúdo gerado dinamicamente em campanhas

Prev Next

Buscar conteúdo dinâmico de um feed de conteúdo RSS/XML/JSON

Se você tem um feed de conteúdo com notícias ou outras formas de conteúdo, como recomendações individuais de produtos ou dados sensíveis ao tempo, pode disponibilizar isso em suas mensagens ao ativar a opção Buscar Conteúdo Dinâmico na aba Configurar do construtor de campanhas.

Não consegue ver essa opção?

A opção Buscar Conteúdo Dinâmico não está ativada por padrão nas contas. Se você deseja usar este recurso, por favor, entre em contato conosco.

Essa funcionalidade é frequentemente usada para gerar um e-mail diário de resumo de notícias, por exemplo, em setores como o de publicação, onde o conteúdo é atualizado com frequência; ou viagens, onde a volatilidade dos preços dos voos pode tornar os dados de uma vez por dia muito pouco confiáveis.

Outros casos de uso para esse recurso incluem adicionar blocos de conteúdo personalizado a outros tipos de campanhas, por exemplo, para mostrar recomendações de produtos personalizados em um boletim semanal.

Configure a fonte de conteúdo

Assim que você clica em Buscar Conteúdo Dinâmico, uma nova seção de página é apresentada para definir a fonte e o formato do conteúdo, e para adicionar mais fontes, se necessário (Adicionar Fonte).

Existem duas opções de formato: XML ou JSON. Se você está trabalhando com RSS/XML, escolha XML e, se estiver trabalhando com um feed JSON, escolha JSON.

Depois de selecionar o formato, o próximo passo é inserir uma URL que retornará o conteúdo desejado do seu feed. Você deve adicionar opções de filtragem à sua URL para devolver apenas os dados mínimos necessários.

Namespace

Para evitar a possibilidade de os dados importados entrarem em conflito com dados existentes no Xtremepush, recomendamos definir o valor do espaço de nomes para uma palavra simples, para que você possa identificar facilmente esses dados ao consultá-los no seu conteúdo. Evite pontos e espaços.

Usar um valor único de namespace também ajuda a evitar qualquer conflito potencial caso você esteja importando mais de uma fonte.

Exemplos de trabalho com fontes JSON e RSS são fornecidos nas seções a seguir.

Atributos do usuário podem ser usados na URL de origem conforme descrito neste guia, então, por exemplo, se você tem um feed de recomendação que pode retornar produtos recomendados com base em um ID de cliente, pode usar a seguinte sintaxe:

https://recommenderfeed.com/reccs?per_page=5&page=1&user_id={{user.id}}

Trabalhando com uma fonte de conteúdo JSON

Antes de adicionar a URL da sua fonte JSON, teste para ver se retorna apenas os dados necessários. Se, por exemplo, quiséssemos criar uma newsletter a partir dos cinco primeiros artigos do blog Xtremepush usando o título, link, trecho e mídia destacada de cada postagem, construiríamos a URL da seguinte forma:

https://xtremepush.com/wp-json/wp/v2/posts?per_page=5&page=1&_envelope&_fields=title,link,excerpt,_fields=title,link,featured_media

Na URL do feed de conteúdo acima, adicionamos parâmetros para retornar apenas os cinco primeiros artigos e os quatro campos de dados que precisamos. Em seguida, vamos analisar o formato dos dados retornados para poder usá-los em um e-mail.

{
  "body": [
    {
      "link": "https://xtremepush.com/customer-data-warfare-how-banks-can-create-better-experiences-and-fire-back-against-the-challengers/",
      "title": {
        "rendered": "Customer-Data Warfare: How banks can create better experiences and fire back against the challengers"
      },
      "excerpt": {
        "rendered": "<p>At a recent European Digital Banking Summit, our CTO Kevin Collins told an anecdote from his personal experience that underlines the threat to incumbent banks posed by the challengers. As he was travelling so often to overseas conferences and events, he had set up a Revolut account (free foreign exchange transactions were a compelling draw [&hellip;]<\/p>\n",
        "protected": false
      },
      "featured_media": 20735
    },
    {
      "link": "https://xtremepush.com/why-banks-are-in-danger-of-becoming-irrelevant-and-what-they-can-do-about-it/",
      "title": {
        "rendered": "Why banks are in danger of becoming irrelevant. (And what they can do about it.)"
      },
      "excerpt": {
        "rendered": "<p>Traditional banks are at a crossroads. The digital disruption that we\u2019ve seen sweep across other verticals, from ride-hailing in transport to streaming in media, has finally come for the banking industry.&nbsp; Trust in the established banks has been eroded over the past decade, though work has been done to repair their public image. Of greater [&hellip;]<\/p>\n",
        "protected": false
      },
      "featured_media": 20710
    },

...

Nossos dados são retornados como um array de objetos para que possamos usar isso em nosso e-mail. O array de objetos é chamado de corpo , então podemos fazer loop por esse array usando um loop for como abaixo:

//To loop through all items
{% for item in body %}
//use data from items in content
{% endfor %}

//To get the first item
{% for item in body[0:1] %}
//use data from items in content
{% endfor %}

//And then the next four
{% for item in body[1:4] %}
//use data from items in content
{% endfor %}

No editor de e-mail, os loops foram adicionados usando blocos HTML.

A maneira mais fácil de adicionar um loop ao redor de uma linha de conteúdo é selecionar a linha e adicionar o loop usando a opção Condição de Exibição no painel de configurações (clique em Adicionar condição). Nomeie a condição e adicione o loop for usando as entradas antes e depois . Clique em Confirmar quando terminar.

1022

2838

Podemos editar ou excluir a condição de exibição da linha depois que ela for criada.

Dentro da linha, você pode adicionar referências a dados variáveis que serão puxadas do feed de conteúdo. No nosso exemplo, estamos acessando dados dentro do loop referenciando as seguintes variáveis:

{{item.title.rendered}}

{{item.excerpt.rendered|striptags|slice(0,200)}}...

Como você pode ver acima, você pode usar outras opções programáticas como striptags, slice, capitalize etc., para realizar outras ações nos dados retornados.

Se você quiser usar uma URL de imagem retornada em seus dados, pode colocar uma referência à URL do feed de dados na opção Url Dinâmica de um bloco de conteúdo de imagem.

820

URL dinâmica extraída do conteúdo JSON.

Se todos os campos estiverem configurados corretamente, você verá algo assim:

Trabalhando com uma fonte de conteúdo RSS

Se estiver trabalhando com RRS, defina o tipo de formato de origem para XML. Antes de adicionar sua URL de origem RSS, teste primeiro para ver se ele está retornando apenas os dados necessários. Se, por exemplo, quiséssemos criar um boletim informativo incluindo os cinco primeiros artigos de um feed de notícias, você poderia ter uma URL com alguns parâmetros de filtragem, como abaixo:

https://www.news.com/feeds/rss/?index=/news/&limit=5/first=0/img-width=600

E se você visualizar esse conteúdo de origem, deve ver algo assim:

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet title="XSL_formatting" type="text/xsl" href="/shared/bsp/xsl/rss/nolsol.xsl"?>

<rss

 xmlns:dc="http://purl.org/dc/elements/1.1/"

 xmlns:content="http://purl.org/rss/1.0/modules/content/"

 xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"

 xmlns:media="http://search.yahoo.com/mrss/">

 <channel>

 <title>

 <![CDATA[BBC News - Home]]>

 </title>

 <description>

 <![CDATA[BBC News - Home]]>

 </description>

 <link>https://www.bbc.co.uk/news/</link>

 <image>

 <url>https://news.bbcimg.co.uk/nol/shared/img/bbc_news_120x60.gif</url>

 <title>BBC News - Home</title>

 <link>https://www.bbc.co.uk/news/</link>

 </image>

 <generator>RSS for Node</generator>

 <lastBuildDate>Mon, 09 Dec 2019 11:34:52 GMT</lastBuildDate>

 <copyright>

 <![CDATA[Copyright: (C) British Broadcasting Corporation, see http://news.bbc.co.uk/2/hi/help/rss/4498287.stm for terms and conditions of reuse.]]>

 </copyright>

 <language>

 <![CDATA[en-gb]]>

 </language>

 <ttl>15</ttl>

 <item>

 <title>

 <![CDATA[New Zealand volcano: At least five dead after White Island eruption]]>

 </title>

 <description>

 <![CDATA[About 50 visitors were near White Island volcano, with some walking inside the rim, when it erupted.]]>

 </description>

 <link>https://www.bbc.co.uk/news/world-asia-50708727</link>

 <guid isPermaLink="true">https://www.bbc.co.uk/news/world-asia-50708727</guid>

 <pubDate>Mon, 09 Dec 2019 11:33:27 GMT</pubDate>

 </item>

 <item>

 <title>

 <![CDATA[Russia banned for four years to include 2020 Olympics and 2022 World Cup]]>

 </title>

 <description>

 <![CDATA[Russia is handed a four-year ban from all major sporting events - including the Tokyo 2020 Olympics - by the World Anti-Doping Agency.]]>

 </description>

 <link>https://www.bbc.co.uk/sport/olympics/50710598</link>

 <guid isPermaLink="true">https://www.bbc.co.uk/sport/olympics/50710598</guid>

 <pubDate>Mon, 09 Dec 2019 11:26:04 GMT</pubDate>

 </item>

 <item>

 <title>

 <![CDATA[General election 2019: Boris Johnson's Brexit plan 'presents major challenge']]>

 </title>

 <description>

 <![CDATA[A leaked government document says customs plans for Northern Ireland may not be ready in time.]]>

 </description>

 <link>https://www.bbc.co.uk/news/uk-politics-50711868</link>

 <guid isPermaLink="true">https://www.bbc.co.uk/news/uk-politics-50711868</guid>

 <pubDate>Mon, 09 Dec 2019 11:14:04 GMT</pubDate>

 </item>

Semelhante ao exemplo do JSON, nossos dados são retornados como um array de objetos. O formato é um pouco diferente, mas podemos usar isso da seguinte forma em nosso e-mail. O array de objetos é encontrado em rss.channel.item então podemos percorrer esse array usando um loop for como neste exemplo:

//To loop through all items
{% for item in rss.channel.item %}
//use data from items in content
{% endfor %}

//To get the first item
{% for item in rss.channel.item[0:1] %}
//use data from items in content
{% endfor %}

//And then the next four
{% for item in rss.channel.item[1:4] %}
//use data from items in content
{% endfor %}

Depois de referenciar os dados corretamente, pode usar os dados mostrados no exemplo JSON acima.

Problemas de solução de problemas

Testando, testando...

Ao preparar um e-mail gerado dinamicamente, é importante tentar múltiplos envios de teste para garantir que os dados estejam sendo preenchidos corretamente.

Se houver algum problema, você pode acessar Campanhas > Registro de Notificações > menu Opções:fa-ellipsis-v: > Detalhes para aprofundar esta campanha e revisar quaisquer mensagens de erro.

No nosso exemplo abaixo, o array foi referenciado incorretamente como JSON em vez de corpo no loop for. A seção Mensagens Individuais do registro de Notificações apresenta um erro: a variável ''json' não existe. Você pode então rolar para baixo na seção de Mensagens , onde os dados puxados são armazenados em um campo chamado parámetros, perto do final da mensagem, e ver como os dados de conteúdo extraídos dinamicamente realmente estão e então corrigir o erro.