Ir para o console

Experimento com estratégias de promoção usando o Firebase Previsões

Com o Firebase Previsões, otimize as promoções no seu app para cada um dos usuários com base na probabilidade de eles fazerem uma compra nele. Por exemplo, promova um pacote "premium" mais caro para usuários inclinados a gastar mais e promova um pacote básico mais barato para outros usuários.

Em seguida, usando o Teste A/B do Firebase, faça um experimento para ver como essa estratégia com base em uma previsão afeta a receita de compras no app em comparação com promover o pacote básico ou sempre oferecer o pacote premium.

Antes de começar

Antes de começar a usar as previsões para determinar a estratégia de promoção do seu aplicativo, é necessário usar o Google Analytics no app. Para isso, é necessário fazer o seguinte:

  • Ativar o compartilhamento de dados do Analytics no Console do Firebase.
  • Registrar explicitamente eventos relacionados a gastos que não são coletados automaticamente, como ecommerce_purchase. O Firebase registra automaticamente o evento in_app_purchase para compras no app processadas pela App Store e Play Store. Geralmente, também é preciso registrar quaisquer outros eventos que sejam relevantes para o app, para maximizar os dados disponíveis e possibilitar a geração de classificações.
  • Ter volume de dados de eventos suficiente para o Firebase fazer previsões significativas. Normalmente, 10.000 usuários ativos mensais, 500 exemplos positivos e 500 negativos oferecem dados suficientes ao Firebase Previsões.

Possibilitar a configuração remota das suas promoções

Primeiro, configure seu aplicativo para promover o pacote básico ou premium de acordo com o valor de um parâmetro do Configuração remota. Nas etapas a seguir, configuramos o Previsões e o Teste A/B para definir o parâmetro remotamente com base em vários critérios. Por enquanto, seu aplicativo sempre promoverá o pacote básico.

Exemplo:

  1. Importe os SDKs do Analytics e do Configuração remota:

    iOS (Swift)

    Adicione os SDKs ao seu Podfile:

    pod 'Firebase/Analytics'
    pod 'Firebase/RemoteConfig'
    

    Então, importe-os:

    import Firebase
    

    Android

    implementation 'com.google.firebase:firebase-core:17.2.0'
    implementation 'com.google.firebase:firebase-config:19.0.1'
    
  2. Inicialize o Configuração remota e defina o valor padrão da variável promoted_bundle como basic. Mais tarde, você configurará o Previsões e o Teste A/B para definir remotamente essa variável, mas definir um valor padrão no aplicativo garante que ele funcione corretamente antes de recuperar as variáveis configuradas remotamente.

    iOS (Swift)

    self.remoteConfig = RemoteConfig.remoteConfig()
    self.remoteConfig.setDefaults(["promoted_bundle": "basic"])
    

    Java

    mConfig = FirebaseRemoteConfig.getInstance();
    
    Map<String, Object> remoteConfigDefaults = new HashMap<>();
    remoteConfigDefaults.put("promoted_bundle", "basic");
    mConfig.setDefaults(remoteConfigDefaults);

    Kotlin

    config = FirebaseRemoteConfig.getInstance()
    
    val remoteConfigDefaults = HashMap<String, Any>()
    remoteConfigDefaults["promoted_bundle"] = "basic"
    config.setDefaults(remoteConfigDefaults)
  3. Promova o pacote especificado pelo valor de promoted_bundle. O valor sempre será basic até que você configure o Previsões.

    iOS (Swift)

    self.remoteConfig.fetch() { (status, error) -> Void in
        if status == .success {
          self.remoteConfig.activateFetched()
        }
    
        // Act on the retrieved parameters
    
        // Set the bundle to promote based on parameters retrieved with Remote
        // Config. This depends entirely on your app, but, for example, you might
        // retrieve and use image assets based on the specified bundle name.
        self.promotedBundle = self.remoteConfig.getString("promoted_bundle")
    
        // ...
    }
    

    Java

    mConfig.fetch(CACHE_EXPIRATION)
            .addOnCompleteListener(this, new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    if (task.isSuccessful()) {
                        mConfig.activateFetched();
                    }
    
                    // Act on the retrieved parameters
    
                    // Set the bundle to promote based on parameters retrieved with
                    // Remote Config. This depends entirely on your app, but for
                    // example, you might retrieve and use image assets based on the
                    // specified bundle name.
                    mPromotedBundle = mConfig.getString("promoted_bundle");
                    // ...
                }
            });

    Kotlin

    config.fetch(CACHE_EXPIRATION)
            .addOnCompleteListener(this) { task ->
                if (task.isSuccessful) {
                    config.activateFetched()
                }
    
                // Act on the retrieved parameters
    
                // Set the bundle to promote based on parameters retrieved with
                // Remote Config. This depends entirely on your app, but for
                // example, you might retrieve and use image assets based on the
                // specified bundle name.
                promotedBundle = config.getString("promoted_bundle")
                // ...
            }

Neste ponto, implante o aplicativo na App Store ou na Play Store. Os usuários receberão o comportamento promocional padrão (promoção do pacote básico), mas como as promoções são controladas por uma variável que pode ser configurada remotamente, é possível alterar e testar o comportamento das promoções usando apenas o Console do Firebase. Tudo sem precisar publicar atualizações do aplicativo para os usuários.

Começar a prever os gastos dos usuários

Em seguida, configure seu projeto do Firebase para começar a prever o comportamento dos gastos dos usuários.

No Console do Firebase, abra a seção Previsões. Se você ainda não concordou com os termos de serviço do Previsões, faça isso.

Depois de ter concordado com os termos de serviço, o Previsões será ativado para o projeto. A seção Previsões do Console do Firebase permite definir previsões personalizadas. No entanto, para a previsão de gastos é possível usar as previsões integradas spend e not_spend. Elas usam uma agregação de eventos do Google Analytics para prever se um usuário fará uma compra no aplicativo ou uma compra de comércio eletrônico (no momento, compras de assinatura não são consideradas nesta previsão). Essas previsões ficarão disponíveis depois que você tiver ativado o Previsões e registrado eventos de gastos por algumas semanas.

Criar um experimento de estratégia de promoções

Agora, crie um experimento de teste A/B para comparar as estratégias de sempre promover o pacote básico e sempre promover o pacote premium e verificar o efeito sobre a geração de receita com base em previsões.

Os experimentos funcionam melhor com três variantes: um grupo de controle, um grupo em que o parâmetro é definido incondicionalmente e um grupo com base em previsões. Dessa forma, o experimento pode determinar se as previsões apresentam um benefício maior do que simplesmente aplicar o tratamento a todos. No entanto, um experimento com três variantes precisa de mais participantes para gerar dados suficientes para coleta. Se o seu aplicativo não tiver usuários suficientes para um experimento com três variantes, você usará apenas duas variantes e excluir do experimento a opção em que todos os usuários recebem o mesmo tratamento.

Para criar o experimento:

  1. No Console do Firebase, abra a seção Teste A/B.

  2. Crie um novo experimento:

    1. Clique em Criar experimento > Configuração remota.

    2. Escolha seu app na lista e especifique quantos usuários você quer incluir no experimento. Você também pode optar por excluir determinadas categorias de usuários do experimento, como pessoas que gastam muito.

    3. Escolha Receita de compra na lista de métricas de objetivo e selecione outras métricas que você quer rastrear, como engajamento de usuários, retenção, remoções do aplicativo e cliques em anúncios.

    4. Defina três variantes:

      • sempre promover o pacote básico (grupo de controle)
      • sempre promover o pacote premium
      • promover o pacote básico ou o premium, dependendo da previsão de gastos

      No grupo de controle, crie um parâmetro promoted_bundle e defina-o como (no change) Os usuários atribuídos ao grupo de controle receberão o comportamento padrão, ou seja, sempre verão a promoção básica.

      No grupo de promoção da variante premium, defina o parâmetro promoted_bundle como premium. Os usuários atribuídos a essa variante sempre verão a promoção premium.

      Na variante de promoção do pacote premium para usuários que provavelmente farão compras, defina o parâmetro promoted_bundle como premium. Além disso, defina o subconjunto de usuários como Prever: gasto (tolerância de risco média). Os usuários atribuídos a essa variante verão a promoção premium se a previsão determinar a alta probabilidade de gastos.

Inicie e execute o experimento por vários dias ou mais, até que o teste A/B apresente um líder. Poderá ser necessário expandir a experiência para mais usuários se o experimento não determinar um líder.

Distribuir a variante vencedora para todos os usuários

Depois que o teste A/B coletar informações suficientes para apresentar um líder (neste caso, a variante que maximizou a receita de compra), será possível decidir se você quer distribuir a variante vencedora, ou qualquer outra, para todos os usuários.

Na seção Teste A/B do Console do Firebase, abra a visualização de detalhes do experimento concluído. Nela, você verá o desempenho de cada variante de acordo com a métrica do objetivo e outras métricas secundárias selecionadas. Com essas informações, decida pela distribuição da variante líder ou de outra variante.

Para distribuir uma variante a todos os usuários, clique em more_vert > Implantar líder na página de detalhes do experimento.