Sobre os Feature Flags
Os Feature Flags permitem ativar ou desativar remotamente a capacitação de uma seleção específica ou aleatória de usuários. É importante ressaltar que eles permitem ativar e desativar um recurso na produção sem implementação adicional de código ou atualizações na App Store. Isso permite que você implemente novos recursos com segurança e confiança.
Está procurando etapas sobre como criar um feature flag na Braze? Consulte Criação de feature flags.
Pré-requisitos
Para usar os feature flags, confira se os seus SDKs estão atualizados com pelo menos essas versões mínimas:
Uso de feature flags
Use os Feature Flags para:
- Introduzir implementações graduais
- Controle remotamente as variáveis do app
- Sincronize a implementação de recursos e o envio de mensagens
- Experimente os novos recursos
- Segmente os usuários por feature flags
Implementações graduais
Use os feature flags para ativar gradualmente os recursos em uma população de amostra. Por exemplo, você pode lançar um novo recurso para seus usuários VIP primeiro. Essa estratégia ajuda a reduzir os riscos associados ao envio de novos recursos para todos ao mesmo tempo e ajuda a detectar bugs com antecedência.
Por exemplo, digamos que decidimos adicionar um novo link “Live Chat Support” ao nosso app para agilizar o atendimento ao cliente. Poderíamos liberar esse recurso para todos os clientes de uma só vez. No entanto, um lançamento amplo traz riscos, como, por exemplo:
- Nossa equipe de suporte ainda está em treinamento, e os clientes podem iniciar tickets de suporte após o lançamento. Isso não nos dá nenhuma margem de manobra caso a equipe de suporte precise de mais tempo.
- Não temos certeza do volume real de novos casos de suporte que receberemos, portanto, talvez não tenhamos a equipe adequada.
- Se nossa equipe de suporte estiver sobrecarregada, não temos nenhuma estratégia para desativar rapidamente esse recurso novamente.
- Pode haver bugs introduzidos no widget de bate-papo, e não queremos que os clientes tenham uma experiência negativa.
Com os feature flags da Braze, podemos implementar gradualmente o recurso e mitigar todos esses riscos:
- Ativaremos o recurso “Live Chat Support” quando a equipe de suporte disser que está pronta.
- Ativaremos esse novo recurso para apenas 10% dos usuários para determinar se estamos com a equipe adequada.
- Se houver algum erro, podemos desativar rapidamente o recurso em vez de nos apressarmos em enviar uma nova versão.
Para implementar gradualmente esse recurso, podemos criar um feature flag chamado “Live Chat Widget”.
Em nosso código do app, mostraremos o botão Start Live Chat somente quando a bandeira do recurso Braze estiver ativada:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import {useState} from "react";
import * as braze from "@braze/web-sdk";
// Get the initial value from the Braze SDK
const featureFlag = braze.getFeatureFlag("enable_live_chat");
const [liveChatEnabled, setLiveChatEnabled] = useState(featureFlag.enabled);
// Listen for updates from the Braze SDK
braze.subscribeToFeatureFlagsUpdates(() => {
const newValue = braze.getFeatureFlag("enable_live_chat").enabled;
setLiveChatEnabled(newValue);
});
// Only show the Live Chat if the Braze SDK determines it is enabled
return (<>
Need help? <button>Email Our Team</button>
{liveChatEnabled && <button>Start Live Chat</button>}
</>)
Controle remotamente as variáveis do app
Use os sinalizadores de recursos para modificar a funcionalidade do seu app na produção. Isso pode ser particularmente importante para aplicativos móveis, em que as aprovações da loja de aplicativos impedem a implementação rápida de alterações para todos os usuários.
Por exemplo, digamos que nossa equipe de marketing queira listar nossas vendas e promoções atuais na navegação do app. Normalmente, nossos engenheiros exigem um prazo de uma semana para qualquer alteração e três dias para uma revisão da loja de aplicativos. Porém, com o Dia de Ação de Graças, a Black Friday, a Cyber Monday, o Hanukkah, o Natal e o Ano Novo em dois meses, não conseguiremos cumprir esses prazos apertados.
Com os sinalizadores de recursos, podemos permitir que o Braze controle o conteúdo do link de navegação do nosso app, permitindo que nosso profissional de marketing faça alterações em minutos, em vez de dias.
Para configurar remotamente esse recurso, criaremos um novo feature flag chamado navigation_promo_link
e definiremos as seguintes propriedades iniciais:
Em nosso app, usaremos os métodos getter do Braze para recuperar as propriedades desse sinalizador de recurso e criar os links de navegação com base nesses valores:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import * as braze from "@braze/web-sdk";
import {useState} from "react";
const featureFlag = braze.getFeatureFlag("navigation_promo_link");
// Check if the feature flag is enabled
const [promoEnabled, setPromoEnabled] = useState(featureFlag.enabled);
// Read the "link" property
const [promoLink, setPromoLink] = useState(featureFlag.getStringProperty("link"));
// Read the "text" property
const [promoText, setPromoText] = useState(featureFlag.getStringProperty("text"));
return (<>
<div>
<a href="/">Home</a>
{ promoEnabled && <a href={promoLink}>{promoText}</a> }
<a href="/products">Products</a>
<a href="/categories">Categories
</div>
</>)
Agora, na véspera do Dia de Ação de Graças, só precisamos alterar esses valores de propriedade no dashboard da Braze.
Como resultado, na próxima vez que alguém carregar o app, verá as novas ofertas de Ação de Graças.
Coordenação de mensagens
Use sinalizadores de recursos para sincronizar a implementação e o envio de mensagens de um recurso. Isso permitirá que você use a Braze como a fonte da verdade para a experiência do usuário e o envio de mensagens relevantes. Para conseguir isso, direcione o novo recurso a um segmento específico ou a uma parte filtrada de seu público. Em seguida, crie uma campanha ou um canva direcionado somente a esse segmento.
Digamos que estamos lançando um novo programa de fidelidade para nossos usuários. Pode ser difícil para as equipes de Marketing e Produto coordenar perfeitamente o momento do envio de mensagens promocionais com o lançamento de um recurso. Os sinalizadores de recursos no Canva permitem aplicar uma lógica sofisticada quando se trata de ativar um recurso para um público selecionado e controlar o envio de mensagens relacionadas a esses mesmos usuários.
Para coordenar efetivamente a implementação de recursos e o envio de mensagens, criaremos um novo feature flag chamado show_loyalty_program
. Em nosso lançamento inicial em fases, deixaremos que o Canva controle quando e para quem o sinalizador de recurso será ativado. Por enquanto, deixaremos a porcentagem de implementação em 0% e não selecionaremos nenhum segmento de direcionamento.
Em seguida, no Canvas Flow, criaremos uma etapa do Feature Flag que ativa o feature flag show_loyalty_program
para nosso segmento “Clientes de alto valor”:
Agora, os usuários desse segmento começarão a ver o novo programa de fidelidade e, depois que ele for ativado, um e-mail e uma pesquisa serão enviados automaticamente para ajudar nossa equipe a obter feedback.
Experimentação de recursos
Use os sinalizadores de recursos para fazer experimentos e confirmar suas hipóteses sobre o novo recurso. Ao dividir o tráfego em dois ou mais grupos, você pode comparar o impacto de um sinalizador de recurso entre os grupos e determinar o melhor curso de ação com base nos resultados.
Um teste A/B é uma ferramenta poderosa que compara as respostas dos usuários a várias versões de uma variável.
Neste exemplo, nossa equipe criou um novo fluxo de checkout para nosso app de comércio eletrônico. Embora estejamos confiantes de que ele está melhorando a experiência do usuário, queremos executar um teste A/B para medir seu impacto na receita do nosso app.
Para começar, criaremos um novo feature flag chamado enable_checkout_v2
. Não adicionaremos um público ou porcentagem de implementação. Em vez disso, usaremos um experimento de sinalização de recurso para dividir o tráfego, ativar o recurso e medir o resultado.
Em nosso app, verificaremos se o sinalizador de recurso está ativado ou não e trocaremos o fluxo de checkout com base na resposta:
1
2
3
4
5
6
7
8
9
import * as braze from "@braze/web-sdk";
const featureFlag = braze.getFeatureFlag("enable_checkout_v2");
braze.logFeatureFlagImpression("enable_checkout_v2");
if (featureFlag?.enabled) {
return <NewCheckoutFlow />
} else {
return <OldCheckoutFlow />
}
Configuraremos nosso teste A/B em um Feature Flag Experiment.
Agora, 50% dos usuários verão a experiência antiga, enquanto os outros 50% verão a nova experiência. Em seguida, podemos analisar as duas variantes para determinar qual fluxo de checkout resultou em uma taxa de conversão mais alta.
Conversion Rate is the percentage of times a defined event occurred compared to all recipients of a message. This defined event is determined when you build the campaign.
Assim que determinarmos o vencedor, poderemos interromper essa campanha e aumentar a porcentagem de implementação do recurso para 100% para todos os usuários, enquanto nossa equipe de engenharia codifica isso em nossa próxima versão do app.
Segmentação
Use o filtro Feature Flag para criar um segmento ou direcionar o envio de mensagens aos usuários com base no fato de eles terem ou não uma feature flag ativada. Por exemplo, digamos que temos um sinalizador de recurso que controla o conteúdo premium em nosso app. Poderíamos criar um segmento que filtrasse os usuários que não tivessem a Feature Flag ativada e, em seguida, enviar a esse segmento uma mensagem pedindo que fizessem upgrade da conta para ver o conteúdo premium.
Para saber mais sobre filtragem em segmentos, consulte Criação de um segmento.
Para evitar segmentos recursivos, não é possível criar um segmento que faça referência a outros feature flags.
Limitações
A tabela a seguir descreve as limitações que se aplicam em um nível de sinalizador de recurso. Para adquirir a versão paga dos sinalizadores de recursos, entre em contato com o gerente da sua conta Braze ou solicite um upgrade no dashboard do Braze.
Área de limitação | Versão gratuita | Versão paga |
---|---|---|
Feature Flags ativos | 10 por espaço de trabalho | 110 por espaço de trabalho |
Experimentos de campanha ativos | 1 por espaço de trabalho | 100 por espaço de trabalho |
Etapas do canva do Feature Flag | Ilimitado | Ilimitado |
Feature Flags ativos
Uma feature flag é considerada ativa e contará para o seu limite se qualquer uma das seguintes situações se aplicar:
- A implementação é superior a 0%
- Usado em uma tela ativa
- Usado em um experimento ativo
Mesmo que o mesmo sinalizador de recurso corresponda a vários critérios, por exemplo, se for usado em uma tela e a implementação for de 50%, ele contará apenas como 1 sinalizador de recurso ativo para o seu limite.