Smart Content: documentação
Instalar, configurar e explorar o Smart Content: segmentos, campanhas, testes A/B, IA e estatísticas.
Apresentação
O DataFirefly Smart Content personaliza o conteúdo da sua loja PrestaShop consoante o perfil, o comportamento, o carrinho e o contexto de cada visitante. O princípio é simples: define segmentos (audiências) e depois campanhas que associam um segmento a um conteúdo HTML apresentado numa zona do tema. Em cada página, o módulo avalia o visitante e apresenta o conteúdo da campanha mais prioritária cujo segmento corresponda.
O módulo cobre todo o ciclo: segmentação comportamental, difusão em várias zonas, testes A/B, estatísticas de conversão e dois assistentes de IA (geração de conteúdo e sugestão de segmentos).
Compatível com PrestaShop 1.7.6 a 8.x e 9.x, multiloja e multi-idioma. Não é guardado qualquer dado pessoal.
Instalação
- Coloque a pasta
dfsmartcontentno diretório/modules/da sua loja, ou instale o ZIP em Módulos → Gestor de módulos → Carregar um módulo. - Clique em Instalar. As tabelas e os separadores de administração são criados automaticamente.
- Aparece um novo menu Smart Content, com quatro subsecções: Painel, Campanhas, Segmentos e Definições.
Configuração das definições
Vá a Smart Content → Definições. Estão aí disponíveis duas famílias de parâmetros.
Parâmetros de IA
- URL do ponto de acesso de IA: o endpoint de conclusão de conversa (compatível com OpenAI e Mistral). Valor predefinido:
https://api.mistral.ai/v1/chat/completions. - Modelo de IA: por exemplo,
mistral-large-latestougpt-4o-mini. - Chave API de IA: a sua chave, guardada do lado do servidor e nunca exposta ao front-office. Enquanto estiver vazia, as funções de IA ficam desativadas, mas o resto do módulo funciona normalmente.
Privacidade
- Respeitar o consentimento de cookies: ativo por predefinição. As marcas de seguimento (impressões e cliques) só são acionadas depois de detetado o consentimento.
Serve qualquer fornecedor que exponha um contrato chat completions padrão. Basta adaptar o URL e o nome do modelo.
Criar um segmento
Um segmento é uma audiência definida por uma ou mais regras. Vá a Smart Content → Segmentos → Adicionar um segmento.
- Nome: uma designação interna (por exemplo, «Clientes VIP»).
- Lógica de correspondência: Todas as regras (E) exige que cada regra seja verdadeira; Pelo menos uma regra (OU) basta que uma o seja.
- Prioridade: os segmentos com prioridade mais elevada são avaliados primeiro.
- Regras: acrescente as suas condições linha a linha, no construtor visual.
Um segmento sem qualquer regra corresponde a toda a gente: é prático como audiência «predefinida».
Referência das regras
Cada regra é composta por um atributo, um operador e um valor. Nas listas, separe os valores por vírgulas. Nos intervalos (operador between), indique dois valores separados por vírgula.
customer_group: grupo de clientes (IDs). Operadores: in / not_in.logged_in: visitante autenticado (1 ou 0). Operador: eq.new_returning:newoureturning, conforme o histórico de encomendas. Operador: eq.country: país (IDs). Operadores: in / not_in.language: idioma (IDs). Operadores: in / not_in.currency: moeda (IDs). Operadores: in / not_in.device:desktop,tabletoumobile. Operador: in.orders_count: número de encomendas válidas. Operadores: gte / lte / eq / between.total_spent: total gasto. Operadores: gte / lte / between.days_since_order: dias desde a última encomenda. Operadores: gte / lte / between.cart_total: total do carrinho atual. Operadores: gte / lte / between.cart_has_category: categoria presente no carrinho (IDs). Operador: in.cart_has_product: produto presente no carrinho (IDs). Operador: in.newsletter: subscritor da newsletter (1 ou 0). Operador: eq.source_utm: origem UTM da sessão. Operadores: eq / contains.referrer: site de referência. Operadores: contains / not_contains.hour_range: intervalo horário (por exemplo,9,18). Operador: between.weekday: dia da semana (1 = segunda-feira … 7 = domingo). Operador: in.visits: número de visitas do visitante. Operadores: gte / lte / eq.
O painel «IDs de referência», apresentado por baixo do construtor, lista os identificadores dos seus grupos, idiomas e moedas, para não ter de os ir procurar noutro lado.
Exemplo: segmento «Grandes clientes a recontactar», lógica E: total_spent gte 200 mais days_since_order gte 60.
As regras hour_range e weekday são avaliadas no fuso horário do servidor. Confirme que está em Europe/Lisbon antes de criar um segmento do tipo «visitantes ao fim da tarde», sobretudo se o seu alojamento estiver configurado em UTC: no horário de verão, o desvio de uma hora desloca todo o intervalo.
Combine country e language em vez de usar apenas um deles: um visitante em Portugal pode navegar na versão inglesa da loja, e um visitante no Brasil pode consultar a versão portuguesa. Um segmento «mercado português» ganha em cruzar os dois critérios.
Criar uma campanha
Uma campanha difunde um conteúdo a um ou mais segmentos, numa zona do tema. Vá a Smart Content → Campanhas → Adicionar uma campanha.
- Nome: designação interna.
- Zona de apresentação: o hook onde o conteúdo aparece (ver a lista mais abaixo).
- Segmentos visados: um ou vários segmentos. Deixe vazio para abranger todos os visitantes.
- Prioridade: se várias campanhas visarem a mesma zona, ganha a mais prioritária que corresponda.
- Teste A/B: ative para difundir várias variantes (ver a secção dedicada).
- Limite de frequência: número máximo de impressões por visitante (0 = ilimitado), numa janela expressa em dias.
- Datas de início e de fim: agendamento opcional da campanha.
- Variantes de conteúdo: o conteúdo HTML, editável por idioma.
Zonas de apresentação disponíveis
displayHome, displayTop, displayNav1, displayBanner, displayWrapperTop, displayWrapperBottom, displayLeftColumn, displayRightColumn, displayFooter, displayProductAdditionalInfo, displayShoppingCartFooter.
Se o conteúdo da campanha anunciar uma redução de preço, aplicam-se as mesmas regras do resto da loja: o Decreto-Lei n.º 66/2021 obriga a indicar o preço mais baixo praticado nos 30 dias anteriores, e o Decreto-Lei n.º 57/2008 proíbe as alegações enganosas. Um bloco personalizado do tipo «só para si, -20 % hoje» tem de corresponder a uma promoção real e verificável.
Teste A/B
Ative a opção Teste A/B na campanha e acrescente depois várias variantes. Cada variante tem uma designação (A, B, …) e um peso. O módulo sorteia uma variante a cada apresentação, proporcionalmente aos pesos. Sem teste A/B, é usada a primeira variante ativa.
O conteúdo de cada variante é introduzido por idioma. O painel compara depois o desempenho de cada variante (impressões, CTR, CVR, volume de negócios).
Para um teste 50/50, dê o mesmo peso (por exemplo, 1 e 1) às duas variantes. Para orientar 70/30, use 7 e 3.
Gerador de conteúdo com IA
No editor de campanha, o painel Gerador de conteúdo com IA redige um bloco HTML orientado para a conversão. Indique o nome do segmento, uma descrição da audiência, o objetivo da mensagem e o tom, escolha o idioma e clique em Gerar. O conteúdo produzido é inserido na área de texto da variante e do idioma ativos.
Esta função exige uma chave de API indicada nas Definições.
Ao gerar em português, releia o resultado: peça explicitamente português europeu na descrição da audiência ou no tom, e verifique formas como «utilizador» em vez de «usuário» ou «ecrã» em vez de «tela» antes de publicar o bloco.
Sugestão de segmentos com IA
Em Smart Content → Segmentos, o botão Sugestões de segmentos por IA abre uma página que resume as estatísticas reais da sua loja (clientes ativos, encomendas, compradores recorrentes, subscritores da newsletter). Clique em Gerar sugestões: a IA propõe 3 a 5 segmentos de alto valor, cada um com uma descrição, uma justificação e um conjunto de regras prontas a copiar para o formulário de criação.
Painel e estatísticas
O Smart Content → Painel agrega o desempenho no período escolhido: impressões, cliques e taxa de cliques (CTR), conversões e taxa de conversão (CVR), e volume de negócios atribuído. Uma tabela detalha os resultados por campanha e outra a comparação das variantes A/B.
Como são atribuídas as conversões
Ao clicar num bloco personalizado, a última interação (campanha, variante, segmento) é memorizada no cookie de sessão. Na validação de uma encomenda, o módulo credita a conversão e o respetivo volume de negócios a essa campanha e apaga depois a atribuição, para evitar dupla contagem.
Privacidade e RGPD
- Não é guardado qualquer dado pessoal: o seguimento assenta num identificador de visitante anónimo (um hash), usado para o limite de frequência e para a desduplicação.
- A opção Respeitar o consentimento de cookies condiciona o acionamento das medições. Os sinais reconhecidos são:
window.dfscConsentGranted = true, ou os cookieshideBanner=1,axeptio_authorizedecookieconsent_status=allow. - Para ligar a sua própria plataforma de consentimento, defina
window.dfscConsentGrantedcomotrueassim que o consentimento for obtido.
Em Portugal, a Lei n.º 41/2004 exige o consentimento prévio para o armazenamento de informação no equipamento do utilizador, sob supervisão da CNPD, e o cookie de sessão usado para as medições entra nesse âmbito. Mantenha a opção de respeito pelo consentimento ativa e declare esta finalidade na sua política de cookies. Se usar o módulo Cookie Manager da DataFirefly, verifique que o sinal de consentimento chega mesmo ao Smart Content.
Inserção através de widget
O módulo implementa a interface de widget do PrestaShop. Pode, por isso, inserir um bloco diretamente num template:
{widget name='dfsmartcontent' hook='displayHome'}
O parâmetro hook indica que zona avaliar.
Perguntas frequentes e resolução de problemas
O meu bloco não aparece
Confirme que a campanha está ativa, que a sua zona corresponde mesmo a um hook presente no seu tema, que pelo menos uma variante tem conteúdo para o idioma atual e que o visitante corresponde a um segmento visado. Se um limite de frequência tiver sido atingido, o bloco deixa de ser apresentado a esse visitante durante a janela definida.
As estatísticas ficam a zero
Se a opção de consentimento estiver ativa, as marcas só são acionadas depois da autorização. Confirme que o seu banner de cookies emite um dos sinais reconhecidos, ou defina window.dfscConsentGranted.
As funções de IA devolvem um erro
Certifique-se de que a chave de API, o URL e o modelo estão corretos nas Definições e de que o seu servidor consegue alcançar o endpoint em saída.