Data

18 nov, 2016

Projetando o Euclid para tornar a engenharia de marketing do Uber mais sábia

Publicidade

Rápido, granular e com ROI confiável no desempenho de anúncios foram o nosso estopim para construir Euclid, a plataforma de marketing interno do Uber. No início deste ano, a Euclid substituiu um sistema legado que processava os dados do ROI manualmente, enquanto lutava para se manter escalável com o Uber e a complexidade dos dados.

Ao contrário de qualquer solução fora da caixa, o Hadoop, ecossistema Euclid baseado em Spark, nos permite escalar o crescimento do Uber com uma arquitetura de plugin de API agnóstico de canal chamada MaRS, bem como um pipeline ETL personalizado que cede dados heterogêneos em um único esquema para uma consulta simples. Uma camada visual em cima da Euclid permite que os profissionais de marketing tirem métricas de ROI para otimizar o gasto com anúncios. As capacidades de reconhecimento de padrões da Euclid fortalecem ainda mais a inteligência de marketing. Com essas capacidades, os profissionais de marketing podem detectar fraudes, alocar automaticamente o orçamento do anúncio (por canal/país/cidade/produto), automatizar o gasto com anúncios, gerenciar campanhas, focar em perfis de público-alvo em nível granular e ofertar anúncios em tempo real.

Solucionando o problema com Euclid

A razão pela qual Euclid é o que é hoje, deve-se à causa de problemas de longa data que abordamos no mundo dos dados de marketing:

Automatizando anúncios caros.

Para acabar com a coleta e o processamento de dados manualmente, precisávamos de um sistema não apenas para analisar dados confiáveis e em alta velocidade, mas mostrar gastos em níveis granulares específicos de eventos, como impressões, cliques, instalações de centenas de redes de publicidade externas em todo o mundo.

Lidando com a complexidade dos dados.

Os dados do Uber são provenientes de uma centena de canais por rede de anúncios, cada um com mais de dez mil campanhas, milhões de palavras-chave e muita criatividade. Agora coloque-os em várias moedas correntes e inúmeros tipos de produtos do Uber em cima disso. Além da escala, a variedade de dados também tem um papel – diferentes tipos de anúncios (social, exibição, pesquisa, placas de trabalho e assim por diante) – que resulta em um esquema complexo e mapeamento de dados. Ao entregar dados complexos a tal escala e volume, o SLA importa. Tivemos de garantir que forneceríamos dados em intervalos de horários prometidos, diariamente.

Relatando o ROI preciso.

No passado, as equipes mediam o nível de canal ROI com atrasos. O desafio da Euclid seria não apenas acabar com o atraso, mas também em medir o ROI em um nível granular – no nível do anúncio, criativo e de palavras-chave, por exemplo. Para chegar lá, precisávamos juntar as fontes de dados internas e externas e aplicar análises preditivas para relatar tendências futuras e atribuição multitouch.

Arquitetura Euclid

O sistema Euclid tem três partes principais: MaRS (Marketing Report Service), um serviço de e-mail e o pipeline de dados ETL.

euclidarchdiagram

MaRS (Marketing Report Service)

Um plugin baseado em um relatório de ingestão de microsserviços, MaRS é a razão pela qual podemos escalar mais rápido, mais de 80 canais em dois meses. Antes de Euclid, os gerentes de marketing geravam manualmente um alto gasto de dados semanais para centenas de canais em todo o mundo. Os dados eram não-granulares, o erro humano tinha um potencial, e as equipes de marketing não podiam agir rapidamente devido à meta de gastos, nem otimizar o gasto do anúncio com precisão.

O MaRS resolveu esse problema com uma interface padrão de API para importar dados de campanhas publicitárias através de plugins. Os plugins isolavam a lógica da rede de anúncios do restante do pipeline de dados ETL. Esse isolamento nos permitiu desenvolver e testar a lógica dependente da rede de anúncios independentemente do pipeline ETL Hadoop. O pipeline de dados ETL chama a API MaRS, ele passa um ID de rede como um parâmetro para obter vários dados de gastos de anúncio sem conhecer qualquer lógica específica de rede de anúncios.

Esse projeto nos dá a vantagem de terceirizar o desenvolvimento de plugins para fornecedores externos que podem adicionar plugins para muitas outras redes de anúncios. É uma das maneiras como escalamos o número de importações de canais API para a Euclid. Atualmente, Euclid suporta mais de 30 plugins, incluindo Facebook, Twitter e AdWords.

É simples implementar um plugin. Tudo o que um desenvolvedor de plugins externo precisa fazer é herdar três classes básicas, definir o esquema Avro e aplicar uma regra de normalização:

  • Auth class: Controla a autenticação da API de rede.
  • Extractor class: Extrai dados através de uma API de rede de anúncios.
  • Transform class: Converte o formato de dados da API em Avro.
  • Avro schema: Armazena o esquema de dados da rede bruta de anúncios.
  • Regra de normalização: Aplica uma regra de mapeamento para converter campos do esquema Avro bruto para uma tabela de modelo uniforme.

Engenheiros implementam os plugins independentemente, sem se preocupar com as alterações subjacentes no ambiente de serviço ou na infraestrutura de dados. O projeto baseado em configurações do Hadoop Hive Pipeline, combinado com o plugin de API baseado na arquitetura MaRS, nos permite adicionar novos plugins de canal rapidamente, sem fazer alterações de código.

Serviço de e-mail Euclid

Para canais que carecem de APIs, a Euclid fornece um framework de ingestão baseada em anexos de e-mail. Usando esse sistema, os canais de anúncio podem enviar diretamente anexos CSV em um formato esperado. Incluído na arquitetura MaRS, o serviço permite que as redes de anúncios empurrem seus gastos diários como anexos de e-mail para um ponto de coleta predefinido. Euclid então automaticamente valida e aloca os dados no pipeline da ETL. É assim que a Euclid importa dados de dezenas de pequenos canais todos os dias.

Fluxo de trabalho do pipeline de dados ETL

O pipeline de dados ETL da Euclid, que é baseado em Hive, usa uma ferramenta de gerenciamento de fluxo de trabalho para extrair, normalizar e unir dados ingeridos:

  • Extractor: Solicita que MaRS ingira dados das APIs da rede de publicidade.
  • Normalizer: Normaliza os dados de gastos brutos específicos da rede de anúncios em uma tabela Hive unificada chamada fact_marketing_spend_ad.
  • ROI Joiner: associa o gasto com dados de conversão, como inscrições no nível do usuário e primeiras viagens, para obter métricas ROI granulares.

Com o MaRS lidando com a lógica da rede de anúncios, o pipeline agnóstico de canal ETL permite que nós façamos a engenharia dos dados de marketing do Uber em escala, enquanto minimizamos os custos para operar e manter o pipeline. Como cada canal difere em seu esquema de campanha e relatório, é difícil consultar e analisar os dados diretamente. Mas a etapa de normalização baseada em configuração na Euclid alinha dados heterogêneos em vários esquemas Avro em uma única tabela de modelo no Parquet, o que torna os dados fáceis de agregar, comparar e analisar em dimensões e fatias.

Dito isso, a ingestão diária ainda é um processo complicado, dado o esquema de dados variados e as SLAs de prontidão. Por exemplo, as APIs podem quebrar quando uma versão é reprovada, quando as credenciais ou o formato de dados do canal upstream são alterados ou se os dados upstream se corrompem. Para contornar esse problema, o acompanhamento e os alertas personalizados do MySQL da Euclid fazem todos os tipos de verificações de integridade dos dados. Sua política de preenchimento automatizada, registro de falhas e alerta on-call identificam a causa dos problemas de integridade dos dados. Dessa forma, o pipeline da Euclid faz a ingestão de centenas de milhões de registros diários para o Hadoop.

Antes e depois que a Euclid otimizou o marketing ROI do Uber

how_euclid_calculates_roi 

Métricas de anúncio de ROI granular

Além das métricas de aquisição padrão, o custo de um usuário fazer sua primeira viagem no Uber é uma métrica de ROI de desempenho de anúncios importante. Anteriormente, quando as equipes mediram o ROI do anúncio, havia intervalos de tempo. Agora, com a Euclid, os profissionais de marketing acessam dados de anúncio ROI granular de forma rápida e confiável. Reforçados com o conjunto de dados hierárquico da campanha da Euclid, os profissionais de marketing se aprofundam muito mais – no nível de criação de anúncios gráficos nos canais sociais, no nível de palavra-chave para canais de pesquisa, no nível de quadro de emprego para canais de quadro de empregos, e assim por diante.

Aqui temos três anúncios gráficos criados para a mesma campanha. Qual anúncio você acha que foi melhor?

euclid_experiment_example

Para ver qual anúncio resulta em uma taxa de cliques (CTR) melhor, os profissionais de marketing detalham os dados de desempenho do nível criativo através da camada de visualização da Euclid. Eles veem os dados de gastos granulares ROI que a Euclid ingeriu e juntou às métricas de conversão do usuário. Neste exemplo, a versão ampliada, a variável B, com sua CTR significativamente maior, funciona melhor do que a versão Control ou a peça criativa ampliada (variável A).

Dado que milhares de anúncios são exibidos em centenas de canais, onde agências externas mantêm muitos deles, é humanamente impossível verificar o status de cada anúncio. Para tais casos, a Euclid permite que os gerentes de canal do Uber facilmente exibam anúncios de baixo desempenho.

Prevendo primeiras viagens

A jornada de conversão da instalação do aplicativo do Uber para a primeira viagem geralmente envolve intervalos de tempo e, se não sabemos quando uma primeira viagem ocorre, não podemos atribuir uma atividade de marketing específica como o gatilho motivador. O gasto de publicidade de ontem pode resultar em cliques ou instalações, mas ainda não em inscrições ou primeiras viagens. Como então podemos medir o ROI de marketing? Após a Euclid ingerir dados de impressões, cliques e instalações, ela aplica padrões de onde e quando os parceiros e os passageiros se inscreveram, os tipos de dispositivos que eles usam, os canais de anúncios em que participam, e assim por diante. Ao mapear esse tipo de informação para dados de conversão histórica, a Euclid prevê estatisticamente quando e se um usuário provavelmente fará sua primeira viagem. Como a Euclid continua acumulando mais dados em seus modelos de treinamento dessa forma, a precisão de previsão aumenta.

Solução de atribuição multitouch

Quando um usuário visualiza um anúncio de rede social e, em seguida, pesquisa “Uber” na web, clica em um anúncio de pesquisa e depois se inscreve no Uber, não é justo dar todo o crédito ao anúncio de pesquisa. A atribuição multitouch é outro desafio que a Euclid aborda e envolve a análise dos dados no nível de impressão, a análise da viagem completa de conversão do usuário e, depois, a atribuição do peso correto do crédito para cada conversão em vários canais. Claramente, a atribuição multitouch permite que os profissionais de marketing aloquem o orçamento certo para os canais certos. Euclid ingere dados de nível de impressão todos os dias e, em seguida, analisa e treina o modelo de atribuição multitouch usando seu mecanismo de previsão. Desenvolvido por Hadoop e Spark, a Euclid logo planeja implementar modelos de atribuição multitouch de marketing no pipeline de dados de produção.

Próximos passos

euclid_tech_stack

O que desenvolvemos até agora na tecnologia Euclid ajudou os profissionais de marketing a entender quais insights, palavras-chave de pesquisa e campanhas de anuncio funcionam melhor para um determinado canal. Nós queremos fazer da próxima encarnação da Euclid um motor de marketing ainda mais avançado, envolvendo plataformas de gerenciamento de dados (DMP) e plataformas de demanda (DSP). Portanto, se você tem experiência com Hadoop, Hive, Spark, Kafka, Vertica ou uma compreensão de bancos de dados SQL para implementar pipelines ETL, confira o enginnergin talent, pois queremos contratar para o próximo desenvolvimento da Euclid. Venha fazer parte da nossa história!

***

Este artigo é do Uber Engineering. Ele foi escrito por Mrina Natarajan. A tradução foi feita pela Redação iMasters com autorização. Você pode conferir o original em: https://eng.uber.com/euclid/.