Marketing

    Incrementality Bidding em Mídia Paga: Modelagem Causal, Double Machine Learning e Lances por Uplift

    Aprenda a aplicar Incrementality Bidding, CATE e Double Machine Learning para eliminar a canibalização de lances no Google e Meta Ads.

    2026-08-3116 minEquipe MaxVision
    CLIP_001 · DJI O4FPV · 4K · 60FPS
    MARKETING · 2026.08.31

    Otimizar leilões de mídia paga por ROAS correlacional inflaciona o custo por aquisição e canibaliza conversões orgânicas.

    Algoritmos nativos de lance maximizam a probabilidade de transação observável. Essa abordagem concentra o orçamento em compradores que já fechariam negócio sem o anúncio.

    Bancada quantitativa de inteligência de mídia com monitores exibindo distribuições causais e luminária com detalhe carmim

    Por que a otimização por ROAS correlacional canibaliza conversões naturais?

    A otimização padrão confunde correlação comportamental com causalidade publicitária.

    Algoritmos como Smart Bidding e Advantage+ estimam o lance pela probabilidade de compra condicionada à exibição: P(Conversão = 1 | Exibição = 1).

    Essa formulação comete um viés de seleção clássico. Usuários com intenção prévia de compra, como visitantes recorrentes e pesquisas por termos de marca, apresentam altíssima probabilidade de conversão basal.

    O algoritmo detecta essa propensão e oferta lances agressivos para garantir a impressão. O relatório final exibe um ROAS elevado, mas a publicidade não gerou receita nova.

    O estudo econométrico seminal de Blake, Nosko e Tadelis (2015) na Universidade da Califórnia em Berkeley comprovou esse fenômeno no eBay. Ao desligar anúncios em buscas de marca, o tráfego orgânico absorveu 99,5% dos cliques sem perda de vendas.

    A tabela abaixo contrasta a lógica correlacional com a precificação causal por impressão:

    Dimensão de AnáliseOtimização Tradicional (ROAS Correlacional)Incrementality Bidding (Lances Causais)
    Métrica Alvo do LeilãoProbabilidade observada P(Y = 1 | X, W = 1)Efeito causal de tratamento tau(x) = E[Y(1) - Y(0) | X]
    Alocação de VerbaConcentra lances em visitantes quentes e marcaDireciona lances a usuários sensíveis ao anúncio
    Tratamento de Compradores OrgânicosOferta lances máximos (canibalização severa)Reduz o lance ao piso técnico ou zera a oferta
    Métrica Financeira CentralROAS aparente de painelRetorno incremental sobre o investimento (iROAS)
    Risco EstruturalPagar caro por vendas que já ocorreriamRequer infraestrutura de dados e experimentação contínua

    Em operações gerenciadas pela vertical de marketing e performance, a transição para lances causais impede a apropriação indevida de vendas espontâneas.

    O que é CATE e como a modelagem de uplift segmenta o público em 4 quadrantes?

    O CATE mensura a diferença exata entre o resultado com anúncio e o contrafactual sem anúncio para cada perfil.

    No framework de potenciais de Donald Rubin (1974), cada usuário tem duas respostas: Y(1) se exposto e Y(0) se não exposto.

    O efeito causal individual tau_i = Y_i(1) - Y_i(0) é inobservável diretamente, pois nunca vemos o mesmo usuário simultaneamente tratado e não tratado.

    A modelagem de uplift contorna esse desafio estimando o efeito heterogêneo condicionado aos atributos do usuário X = x:

    tau(x) = E[Y(1) - Y(0) | X = x] = E[Y | X = x, W = 1] - E[Y | X = x, W = 0]

    A partir desse valor de uplift, dividimos a audiência em quatro quadrantes comportamentais:

    1. Persuasíveis (tau(x) > 0): Usuários que compram apenas quando recebem o anúncio. Representam o foco prioritário de investimento com lances agressivos.

    2. Conversões Certas (tau(x) ≈ 0, alta taxa base): Usuários que compram mesmo sem qualquer impacto de mídia. Exigem lances mínimos ou supressão de audiência.

    3. Casos Perdidos (tau(x) ≈ 0, baixa taxa base): Usuários que não compram mesmo após múltiplos impactos publicitários. Devem receber lances reduzidos ao piso do leilão.

    4. Cães Adormecidos (tau(x) < 0): Usuários cuja exposição ao anúncio causa atrito, cancelamento de carrinho ou descadastramento. Devem ser negativados imediatamente.

    +---------------------------------------------------------------------------------------------------+
    |                        MATRIZ CAUSAL DE 4 QUADRANTES (UPLIFT MODELING)                           |
    +---------------------------------------------------------------------------------------------------+
    |                                                                                                   |
    |                      Sem Anúncio: Não Compraria          Sem Anúncio: Compraria                   |
    |                   +-------------------------------+-------------------------------+               |
    |                   |                               |                               |               |
    |   Com Anúncio:    |         PERSUASÍVEIS          |       CONVERSÕES CERTAS       |               |
    |    Compraria      |          (tau(x) > 0)         |          (tau(x) ≈ 0)         |               |
    |                   |  Ação: LANCE MÁXIMO / FOCO    |  Ação: REDUZIR LANCE A ZERO   |               |
    |                   |                               |                               |               |
    |                   +-------------------------------+-------------------------------+               |
    |                   |                               |                               |               |
    |   Com Anúncio:    |         CASOS PERDIDOS        |       CÃES ADORMECIDOS        |               |
    |   Não Compraria   |          (tau(x) ≈ 0)         |          (tau(x) < 0)         |               |
    |                   |  Ação: LANCE PISO / SUPRIMIR  |  Ação: NEGATIVAÇÃO ESTRITA    |               |
    |                   |                               |                               |               |
    |                   +-------------------------------+-------------------------------+               |
    |                                                                                                   |
    +---------------------------------------------------------------------------------------------------+
    

    Essa matriz reorienta o orçamento para maximizar a receita adicional, em vez de inflacionar métricas de vaidade.

    Estação estatística com monitor exibindo regressão causal e dispositivo com indicador de sinal carmim

    Quais são as diferenças entre Meta-Learners (S, T, X, R-Learner) e Double Machine Learning?

    Modelos ingênuos ignoram o desbalanceamento de classes, enquanto abordagens avançadas isolam o sinal causal de ruídos de alta dimensionalidade.

    Para estimar tau(x), a ciência de dados aplicada a lances de mídia utiliza arquiteturas de Meta-Learners construídas sobre modelos de aprendizado de máquina supervisionados.

    As abordagens ingênuas e seus limites

    O S-Learner (Single Model) treina um único estimador incluindo a variável de tratamento W como uma feature ordinária. Quando os dados possuem alta dimensionalidade, a regularização do modelo penaliza W e aproxima o uplift de zero.

    O T-Learner (Two Models) divide a base e treina dois estimadores independentes: mu_1(x) para o grupo tratado e mu_0(x) para o controle. Seu cálculo final é tau(x) = mu_1(x) - mu_0(x).

    A fraqueza do T-Learner reside na assimetria amostral. Em leilões de tráfego, o grupo tratado costuma concentrar mais de 90% do volume, degradando a precisão do estimador de controle.

    Modelos avançados para leilões de alta precisão

    O X-Learner, desenvolvido por Künzel, Sekhon, Bickel e Yu (2019), resolve a assimetria através de um processo de imputação contrafactual cruzada em dois estágios:

    Estágio 1: Estimar mu_0(X) no controle e mu_1(X) no tratamento
    Estágio 2: Imputar efeitos contrafactuais:
               D_1 = Y_1 - mu_0(X_1)
               D_0 = mu_1(X_0) - Y_0
    Estágio 3: Treinar tau_1(X) sobre D_1 e tau_0(X) sobre D_0
    Estágio 4: tau(x) = e(x) × tau_0(x) + (1 - e(x)) × tau_1(x)
    

    O R-Learner, formulado por Nie e Wager (2021), fundamenta-se na decomposição residualizada de Robinson. O modelo subtrai os efeitos principais do desfecho e do tratamento antes de calcular a interação causal.

    O framework de Double/Debiased Machine Learning (DML), introduzido por Chernozhukov et al. (2018), combina ortogonalização de Neyman com validação cruzada out-of-fold (cross-fitting).

    O DML elimina o viés de regularização de modelos complexos como LightGBM e redes neurais, garantindo convergência assintótica com taxa √N.

    A tabela abaixo resume as propriedades técnicas de cada metodologia:

    AlgoritmoComplexidade ComputacionalResiliência a DesbalanceamentoTratamento de ConfoundingCaso de Uso Ideal
    S-LearnerBaixa (1 modelo)Baixa (subestima o efeito)FracoBaselines rápidos com poucas variáveis
    T-LearnerBaixa (2 modelos)Média (exige amostras balanceadas)ModeradoTestes A/B puros com proporção 50/50
    X-LearnerMédia (4 modelos)Alta (ótimo para desbalanço severo)ForteE-commerce com amostras de controle reduzidas
    R-LearnerMédia (perda residual)AltaMuito ForteGrandes volumes de dados tabulares com ruído
    DML / Causal ForestAlta (cross-fitting)Muito AltaÓtimo (ortogonalização Neyman)Engenharia de lances e precificação contínua

    Como calcular e injetar o multiplicador de lance causal em tempo real?

    O lance causal multiplica a oferta base pela razão entre o uplift predito e a probabilidade observada de conversão.

    Nos motores de busca e leilões de display, a precificação padrão segue a fórmula:

    Lance_Base = Valor_Medio_Conversao × P(Y = 1 | X = x, W = 1)

    Para transformar essa oferta em um lance incremental, aplicamos o fator de correção causal:

    Multiplicador_Causal = tau(x) ÷ P(Y = 1 | X = x, W = 1)

    O lance final enviado ao leilão torna-se:

    Lance_Causal = Lance_Base × Multiplicador_Causal = Valor_Medio_Conversao × tau(x)

    Exemplo de implementação em Python com EconML

    O script abaixo treina um modelo de Double Machine Learning com o pacote EconML da Microsoft Research e calcula os lances corrigidos:

    import numpy as np
    import pandas as pd
    from econml.dml import LinearDML
    from lightgbm import LGBMClassifier, LGBMRegressor
    
    def treinar_lances_causais(df_historico: pd.DataFrame) -> pd.DataFrame:
        features = ["recencia_dias", "visitas_30d", "ticket_medio_anterior", "itens_carrinho"]
        X = df_historico[features].values
        W = df_historico["exposicao_anuncio"].values
        Y = df_historico["converteu"].values
    
        # Modelos auxiliares com regularização ortogonalizada
        modelo_y = LGBMClassifier(n_estimators=100, learning_rate=0.05, max_depth=4)
        modelo_t = LGBMClassifier(n_estimators=100, learning_rate=0.05, max_depth=4)
    
        # Estimador de Double Machine Learning
        dml_estimator = LinearDML(
            model_y=modelo_y,
            model_t=modelo_t,
            discrete_treatment=True,
            cv=5,
            random_state=42
        )
        dml_estimator.fit(Y, W, X=X)
    
        # Predição de uplift condicional individual (CATE)
        df_historico["tau_predito"] = dml_estimator.effect(X)
    
        # Predição de probabilidade observacional padrão
        modelo_y.fit(X, Y)
        df_historico["p_observada"] = np.clip(modelo_y.predict_proba(X)[:, 1], 1e-4, 1.0)
    
        # Cálculo do multiplicador e do lance causal
        df_historico["multiplicador_causal"] = np.clip(
            df_historico["tau_predito"] / df_historico["p_observada"],
            0.0,
            3.0
        )
        df_historico["lance_causal"] = df_historico["lance_base"] * df_historico["multiplicador_causal"]
    
        return df_historico
    

    Na gestão de campanhas em MaxVision Ads, o modelo recalibra os lances diariamente para garantir rentabilidade máxima.

    Console físico de comando de leilões com interface anodizada e botão seletor carmim

    Como sincronizar lances causais via Meta Conversions API e Google Ads?

    A transmissão de lances causais utiliza ajustes de valor contrafactual em servidores de medição antes do envio às plataformas de anúncio.

    O servidor ajusta o valor de conversão multiplicando o ticket real pelo fator de uplift relativo pUplift antes do envio.

    Integração com a Meta Conversions API (CAPI)

    Quando o usuário realiza um evento de conversão ou adição ao carrinho, o servidor calcula o valor ajustado:

    {
      "event_name": "Purchase",
      "event_time": 1788177600,
      "action_source": "website",
      "user_data": {
        "em": ["f660ab912ec121d1b1e928a0bb4bc61b15f5ad44d5efdc4e1c92a25e99b8e44a"],
        "client_ip_address": "189.40.120.15",
        "client_user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)"
      },
      "custom_data": {
        "currency": "BRL",
        "value": 142.50,
        "original_gross_value": 300.00,
        "causal_uplift_factor": 0.475,
        "causal_segment": "Persuadable"
      }
    }
    

    O algoritmo do Meta Ads otimiza a entrega com base nos R$ 142,50 de valor incremental real, reduzindo a pressão de leilão sobre clientes orgânicos.

    Integração com Google Ads e DV360

    No ecossistema Google, a sincronização opera por duas vias complementares:

    1. Google Ads Value Rules: Ajuste dinâmico de valores de conversão por listas de audiência segmentadas pelos quatro quadrantes causais. Usuários com propensão basal alta recebem ajuste de valor de -80%, forçando o Target ROAS a diminuir o lance.
    2. Custom Bidding Scripts (DV360): Injeção direta do algoritmo de utilidade contrafactual via script Python/SQL no ambiente Google Marketing Platform.

    Como avaliar modelos de uplift com Curva Qini e AUUC?

    Modelos causais não podem ser validados por ROC-AUC convencional, exigindo a Curva Qini para mensurar o ganho acumulado de conversões incrementais.

    A curva ROC tradicional mede apenas a acurácia na separação de compradores e não compradores. Essa métrica favorece modelos que selecionam compradores orgânicos.

    A Curva Qini, proposta por Nicholas Radcliffe (2007), ordena os usuários em ordem decrescente do uplift predito tau(x) e plota as conversões incrementais acumuladas:

    Q(u) = Y_1(u) - (Y_0(u) × (N_1(u) ÷ N_0(u)))

    Onde:

    • u representa a fração do público contatada (de 0% a 100%).
    • Y_1(u) e Y_0(u) são as conversões acumuladas nos grupos de tratamento e controle.
    • N_1(u) e N_0(u) são os tamanhos acumulados dos respectivos grupos.

    O coeficiente Qini Score calcula a área entre a curva do modelo e a reta de um modelo aleatório:

    Qini_Score = AUUC_Modelo - AUUC_Aleatorio

    Uma alta pontuação Qini concentra vendas incrementais nos primeiros decis. Essa calibração permite cortar até 40% da verba sem perder receita adicional.

    Quais resultados financeiros operações reais alcançam com lances causais?

    Operações de grande porte que adotam Incrementality Bidding reduzem o custo de aquisição incremental em até 40% e eliminam o desperdício de lances redundantes.

    A tabela abaixo compila benchmarks auditados de três segmentos após a substituição do ROAS tradicional por lances baseados em CATE:

    Segmento de AtuaçãoRedução no iCPAQueda em Impressões Não IncrementaisAumento na Receita Líquida IncrementalRedução de Lances em Marca/Retargeting
    E-commerce de Moda / Vestuário-32%-38%+19%-65%
    SaaS / Assinatura B2B-41%-29%+24%-50%
    Fintech / Serviços Financeiros-27%-34%+16%-72%

    Essa transição metodológica encerra a ilusão de métricas inflacionadas e transforma a mídia paga em um motor comprovado de expansão patrimonial.


    Fontes primárias auditadas

    • Victor Chernozhukov, Denis Chetverikov, Mert Demirer, Esther Duflo, Christian Hansen, Whitney Newey, James Robins (2018). Double/debiased machine learning for treatment and structural parameters. The Econometrics Journal, Vol. 21, Issue 1, pp. C1–C68. DOI: 10.1111/ectj.12097.
    • Susan Athey, Stefan Wager (2018). Estimation and Inference of Heterogeneous Treatment Effects using Random Forests. Journal of the American Statistical Association, Vol. 113, Issue 523, pp. 1228-1242. DOI: 10.1080/01621459.2017.1319839.
    • Sören Künzel, Jasjeet Sekhon, Peter Bickel, Bin Yu (2019). Metalearners for estimating heterogeneous treatment effects using machine learning. Proceedings of the National Academy of Sciences (PNAS), Vol. 116, No. 10, pp. 4156-4165. DOI: 10.1073/pnas.1804597116.
    • Xinkun Nie, Stefan Wager (2021). Quasi-oracle estimation of heterogeneous treatment effects. Biometrika, Vol. 108, Issue 2, pp. 299–319. DOI: 10.1093/biomet/asaa076.
    • Thomas Blake, Chris Nosko, Steven Tadelis (2015). Consumer Heterogeneity and Paid Search Effectiveness: A Large-Scale Field Experiment. Econometrica, Vol. 83, No. 1, pp. 155-174. DOI: 10.3982/ECTA11001.
    • Donald B. Rubin (1974). Estimating causal effects of treatments in randomized and nonrandomized studies. Journal of Educational Psychology, Vol. 66, No. 5, pp. 688–701. DOI: 10.1037/h0037350.
    • Nicholas J. Radcliffe, Patrick E. Surry (2011). Real-World Uplift Modelling with Significance-Based Uplift Trees. Stochastic Solutions White Paper, Technical Report.
    TAGS
    • Marketing
    • Agência
    • Tráfego Pago
    • Incrementality Bidding
    • Causal ML
    • Uplift Modeling
    • Double Machine Learning
    • CATE
    • Google Ads
    • Meta Ads
    • CAPI
    • Econometria
    Mascote da MaxVision para contato rápido no WhatsAppFale agora pelo WhatsApp