Respostas de Conteúdo conectado em cache
As respostas de Conteúdo conectado podem ser armazenadas em cache em diferentes campanhas ou mensagens (no mesmo espaço de trabalho) para otimizar a velocidade de envio.
A Braze não registra nem armazena permanentemente os corpos de resposta do Conteúdo conectado. Durante a renderização da mensagem, as respostas podem ser mantidas temporariamente (por exemplo, em memória e em cache) para que a Braze possa renderizar o Liquid e enviar a mensagem.
Para evitar o armazenamento em cache, você pode especificar :no_cache, o que pode causar aumento no tráfego de rede. Para ajudar na solução de problemas e no monitoramento da integridade do sistema, a Braze registra metadados de solicitações de Conteúdo conectado (como a URL da solicitação totalmente renderizada e o código de status da resposta) para chamadas bem-sucedidas e com falha. Esses registros são mantidos por até 30 dias.
Renderização de Conteúdo conectado e tratamento de dados (avançado)
Esta seção oferece uma visão mais detalhada e de ponta a ponta de como a Braze renderiza Liquid e Conteúdo conectado e onde os dados podem existir temporariamente antes de uma mensagem ser enviada. Isso pode ajudar em revisões de privacidade e tratamento de dados.
O que é e o que não é armazenado
- Corpo da resposta do Conteúdo conectado: Não é armazenado permanentemente pela Braze. Pode ser mantido temporariamente em memória e, quando o cache está ativado, armazenado em cache com um tempo de vida (TTL).
- Metadados da solicitação de Conteúdo conectado: Metadados da solicitação, como a URL totalmente renderizada, o código de status HTTP e a duração da resposta, são registrados para solução de problemas e monitoramento. Esses registros são mantidos por até 30 dias.
- Mensagem final renderizada: Existe em memória durante a renderização. Também pode ser armazenada em outro lugar dependendo da sua configuração e canal (por exemplo, Arquivamento de mensagem ou Cartões de conteúdo).
Fluxo de renderização (visão geral)
O fluxo a seguir descreve como a Braze renderiza e envia mensagens para canais baseados em provedor, como e-mail, SMS e push. Canais entregues via SDK, como Cartões de conteúdo, usam a mesma renderização subjacente de Liquid e Conteúdo conectado, mas diferem em quando o conteúdo é gerado e como é entregue.
- Um worker em segundo plano renderiza o modelo Liquid de uma mensagem quando ela está sendo preparada para entrega.
- As tags de Conteúdo conectado são avaliadas durante a renderização do Liquid.
- Para cada tag de Conteúdo conectado, a Braze verifica um cache de múltiplas camadas. Se não existir valor em cache (ou se o cache estiver desativado), a Braze chama seu endpoint e recebe a resposta.
- A resposta é injetada no modelo Liquid e a mensagem é totalmente renderizada.
- Para canais baseados em provedor, a mensagem renderizada é enviada ao provedor do canal e depois ao usuário. Para canais entregues via SDK, como Cartões de conteúdo, o conteúdo renderizado é sincronizado com o SDK da Braze e pode ser gerado na primeira impressão ou no momento da exibição, quando é mostrado ao usuário.
Onde as respostas de Conteúdo conectado podem existir temporariamente
A Braze usa um cache de múltiplas camadas para respostas de Conteúdo conectado com TTLs entre cinco minutos e quatro horas, dependendo do uso de :cache_max_age e outras regras de cache:
- Cache em memória do processo: Cache transitório dentro do processo do worker. Os dados existem apenas durante a execução do job (até ~11 minutos com base no timeout do worker).
- Cache local da máquina: Um cache por worker, como uma instância local do Memcached.
- Cache do cluster: Um cache distribuído compartilhado entre workers, como um cluster Memcached.
Essas camadas de cache são voláteis e podem remover dados antes do TTL configurado.
O que muda quando você usa :no_cache
Para endpoints que não estão hospedados dentro da infraestrutura da Braze, usar :no_cache impede que o corpo da resposta do Conteúdo conectado seja armazenado no Memcached. Nesses casos, a resposta existe apenas na memória do processo do worker durante a execução do job de renderização (até ~11 minutos). Para endpoints que resolvem para hosts internos da Braze, as respostas ainda podem ser armazenadas em cache conforme descrito em Invalidação de cache.
Onde a saída final renderizada pode existir
- Arquivamento de mensagem: Se o Arquivamento de mensagem estiver ativado, a Braze pode gravar a mensagem final renderizada no bucket de armazenamento em nuvem configurado. Se a resposta do Conteúdo conectado estiver incluída na mensagem renderizada, ela será incluída na cópia arquivada.
- Dispositivos dos usuários: Após a entrega, o conteúdo da mensagem totalmente renderizada pode persistir nos dispositivos dos usuários por um período indeterminado.
- Cartões de conteúdo: O conteúdo renderizado para Cartões de conteúdo é armazenado em um banco de dados da Braze até que o cartão expire.
Configurações padrão de cache
O tempo de cache é de até cinco minutos (300 segundos). Você pode atualizar isso adicionando o parâmetro :cache_max_age à chamada de Conteúdo conectado. Exemplo:
1
{{ {% connected_content [https://example.com/webservice.json] :cache_max_age 900 %}}}
Solicitações GET são armazenadas em cache. Você pode configurar isso adicionando o parâmetro :no_cache à chamada de Conteúdo conectado.
Solicitações POST não são armazenadas em cache por padrão, mas podem ser armazenadas adicionando o parâmetro :cache_max_age à chamada de Conteúdo conectado. O tempo mínimo de cache é 5 minutos e o tempo máximo é 4 horas.
As configurações de cache não são garantidas. O cache pode reduzir as chamadas aos seus endpoints, então recomendamos usar múltiplas chamadas por endpoint dentro da duração do cache em vez de depender excessivamente do armazenamento em cache.
Limite de tamanho do cache
O corpo da resposta do Conteúdo conectado pode ter até 1 MB. Se o corpo da resposta for maior que 1 MB, ele não será armazenado em cache.
Tempo de cache
O Conteúdo conectado armazenará em cache o valor retornado de endpoints GET por no mínimo cinco minutos. Se um tempo de cache não for especificado, o tempo padrão é de cinco minutos.
O tempo de cache do Conteúdo conectado pode ser configurado para ser mais longo com :cache_max_age, conforme mostrado no exemplo a seguir. O tempo mínimo de cache é cinco minutos e o tempo máximo é quatro horas. Os dados de Conteúdo conectado são armazenados em cache na memória usando um sistema de cache volátil, como o Memcached.
Como resultado, independentemente do tempo de cache especificado, os dados de Conteúdo conectado podem ser removidos do cache em memória da Braze antes do previsto. Isso significa que as durações de cache são sugestões e podem não representar de fato o período em que os dados estão garantidamente armazenados em cache pela Braze. Você pode ver mais solicitações de Conteúdo conectado do que esperaria com uma determinada duração de cache.
Cache por segundos especificados
Este exemplo armazenará em cache por 900 segundos (ou 15 minutos).
1
{% connected_content https://example.com/webservice.json :cache_max_age 900 %}
Invalidação de cache
Para evitar que o Conteúdo conectado armazene em cache o valor retornado de uma solicitação GET, você pode usar a configuração :no_cache. No entanto, respostas de hosts internos da Braze ainda serão armazenadas em cache.
1
{% connected_content https://example.com/webservice.json :no_cache %}
Certifique-se de que o endpoint de Conteúdo conectado fornecido pode lidar com grandes picos de tráfego antes de usar esta opção, caso contrário você provavelmente verá aumento na latência de envio (maiores atrasos ou intervalos de tempo mais amplos entre solicitação e resposta) devido à Braze fazer solicitações de Conteúdo conectado para cada mensagem individual.
Com um POST, não é necessário invalidar o cache, pois solicitações POST não são armazenadas em cache por padrão. Para armazenar em cache uma resposta POST, adicione :cache_max_age; para evitar o cache de um POST, omita :cache_max_age.
Informações importantes
- O cache pode ajudar a reduzir chamadas duplicadas de Conteúdo conectado. No entanto, não é garantido que sempre resulte em uma única chamada de Conteúdo conectado por usuário.
- O cache de Conteúdo conectado é baseado na URL e no espaço de trabalho. Se a chamada de Conteúdo conectado for para a mesma URL, ela pode ser armazenada em cache entre campanhas e Canvas.
- O cache é baseado em uma URL única, não em um ID de usuário ou campanha. Isso significa que a versão em cache de uma chamada de Conteúdo conectado pode ser usada por múltiplos usuários e campanhas em um espaço de trabalho se a URL for a mesma.