# Smart Content: documentação

> Documentação completa do módulo DataFirefly Smart Content: instalação, definições de IA, criação de segmentos e campanhas, testes A/B, estatísticas, RGPD e resolução de problemas.

- Página: <https://www.datafirefly.com/pt/documentation/dfsmartcontent/>
- Idioma: pt
- Atualizado em: 2026-09-09
- Outros idiomas: [fr](https://www.datafirefly.com/documentation/dfsmartcontent/index.md), [en](https://www.datafirefly.com/en/documentation/dfsmartcontent/index.md), [es](https://www.datafirefly.com/es/documentation/dfsmartcontent/index.md), [de](https://www.datafirefly.com/de/documentation/dfsmartcontent/index.md), [it](https://www.datafirefly.com/it/documentation/dfsmartcontent/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfsmartcontent/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfsmartcontent/index.md)
- Índice: <https://www.datafirefly.com/pt/documentation/llms.txt>

## 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

1. Coloque a pasta `dfsmartcontent` no diretório `/modules/` da sua loja, ou instale o ZIP em _Módulos → Gestor de módulos → Carregar um módulo_.
2. Clique em **Instalar**. As tabelas e os separadores de administração são criados automaticamente.
3. 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-latest` ou `gpt-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`: `new` ou `returning`, 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`, `tablet` ou `mobile`. 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 cookies `hideBanner=1`, `axeptio_authorized` e `cookieconsent_status=allow`.
- Para ligar a sua própria plataforma de consentimento, defina `window.dfscConsentGranted` como `true` assim 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.
